Skip to main content

SimpleDecoyProvider

Struct SimpleDecoyProvider 

Source
pub struct SimpleDecoyProvider;
Expand description

Simple mode does not spawn any coroutines and does not send any packets.

Trait Implementations§

Source§

impl<T: IdentityType + Clone, AE: AsyncExecutor> DecoyCommunicationMode<T, AE> for SimpleDecoyProvider

Source§

fn new( _manager: Weak<dyn DecoyFlowSender>, _settings: Arc<Settings<AE>>, _identity: DerivedValue<T>, _counter: Arc<AtomicU32>, _fallthrough_probability: Option<f64>, ) -> Self

Create a new decoy provider; counter is the per-session monotonic packet-number counter shared with the session manager and the health-check provider; every emitted decoy packet advances it. fallthrough_probability pins the per-flow fallthrough rate, None samples from the settings keys.
Source§

fn name() -> &'static str

Short name of this provider, derived from the type name (no path, no generics).
Source§

impl DecoyProvider for SimpleDecoyProvider

Source§

fn name(&self) -> &'static str

Short display name of this provider (e.g. “SparseDecoyProvider”).
Source§

fn start<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Start the background decoy generation timer.
Source§

fn feed_input<'life0, 'async_trait>( &'life0 self, packet: DynamicByteBuffer, _tailer_buf: DynamicByteBuffer, ) -> Pin<Box<dyn Future<Output = Option<DynamicByteBuffer>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Process an incoming packet, updating internal rate tracking. tailer_buf is the deobfuscated tailer for the packet (flags, packet number, etc.).
Source§

fn feed_output<'life0, 'async_trait>( &'life0 self, body: DynamicByteBuffer, _tailer_buf: DynamicByteBuffer, ) -> Pin<Box<dyn Future<Output = Option<DynamicByteBuffer>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Process an outgoing packet body and its plaintext tailer, updating internal rate tracking. Returns the (possibly modified) body, or None to suppress the packet entirely.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V