Struct PassiveSecuritySetup

Source
pub struct PassiveSecuritySetup<'a, T: AsyncRead + Unpin, S: AsyncWrite + Unpin> { /* private fields */ }
Expand description

Passive part of a Silkroad Online connection handshake.

The passive part of the handshake simply accepts the settings the active part suggests to use and there is no negotiation happening. Right now, we expect the other part of the connection to be the active part and also that it will want to do a handshake. We do not yet account for both sides to be passive.

Since we’re play not active role in choosing which features are available, there’s only one way to perform the handshake:

PassiveSecuritySetup::handle(&mut reader, &mut writer).await

Similarly to the active setup, this will configure the security context in the reader & writer according to the features set by the active part.

Implementations§

Source§

impl<T: AsyncRead + Unpin, S: AsyncWrite + Unpin> PassiveSecuritySetup<'_, T, S>

Source

pub async fn handle( reader: &mut SilkroadStreamRead<T>, writer: &mut SilkroadStreamWrite<S>, ) -> Result<(), HandshakeError>

Perform the handshake with the features decided by the active part.

Auto Trait Implementations§

§

impl<'a, T, S> Freeze for PassiveSecuritySetup<'a, T, S>

§

impl<'a, T, S> RefUnwindSafe for PassiveSecuritySetup<'a, T, S>

§

impl<'a, T, S> Send for PassiveSecuritySetup<'a, T, S>
where T: Send, S: Send,

§

impl<'a, T, S> Sync for PassiveSecuritySetup<'a, T, S>
where T: Sync, S: Sync,

§

impl<'a, T, S> Unpin for PassiveSecuritySetup<'a, T, S>

§

impl<'a, T, S> !UnwindSafe for PassiveSecuritySetup<'a, T, S>

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> 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, 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