Skip to main content

InboundVerdict

Enum InboundVerdict 

Source
pub enum InboundVerdict {
    Accept(Vec<u8>),
    Malformed,
    LegacyBlocked,
    PolicyViolation(String),
    CryptoError(String),
}
Expand description

Ergebnis einer classify_inbound-Entscheidung.

Die Enum-Varianten trennen die moeglichen Gruende sauber, damit der Caller (dcps-Runtime) pro Grund einen passenden LogLevel an das zerodds_security::logging::LoggingPlugin weiterreichen kann.

Der Interface-Kontext (NetInterface) wird vom Caller mit uebergeben und findet sich in [InboundVerdict::iface] wieder — damit Log-Events pro Interface attributierbar sind.

Variants§

§

Accept(Vec<u8>)

Paket ist zulaessig — bytes ist das dekodierte RTPS-Datagram, das an den SPDP/SEDP/User-Dispatch weitergegeben wird.

§

Malformed

Paket ist zu kurz fuer einen RTPS-Header (< 20 Byte). Das ist eigentlich ein Transport-Bug oder ein Fuzz-Probe. Severity sollte Error sein.

§

LegacyBlocked

Paket kam von einem unauth-Peer auf einer Domain, die Authentication verlangt (allow_unauthenticated_participants = false). Severity sollte Error sein.

§

PolicyViolation(String)

Policy-Violation: die Domain verlangt Protection, das Paket ist aber plain (oder umgekehrt). Severity sollte Warning sein — ggf. Tampering-Versuch.

§

CryptoError(String)

Cryptographischer Fehler beim Unwrap (Tag-Mismatch, falscher Key, replay-Attack etc.). Severity Warning.

Implementations§

Source§

impl InboundVerdict

Source

pub const fn is_accept(&self) -> bool

Kurzform: true wenn Paket weitergegeben wird.

Source

pub fn category(&self) -> &'static str

Log-Kategorie (OMG §8.6.3) — freier String, der den Drop-Grund identifiziert. Hilfreich wenn ein LoggingPlugin nach Kategorien filtert.

Trait Implementations§

Source§

impl Clone for InboundVerdict

Source§

fn clone(&self) -> InboundVerdict

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for InboundVerdict

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for InboundVerdict

Source§

fn eq(&self, other: &InboundVerdict) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for InboundVerdict

Source§

impl StructuralPartialEq for InboundVerdict

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.