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).awaitSimilarly 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>
impl<T: AsyncRead + Unpin, S: AsyncWrite + Unpin> PassiveSecuritySetup<'_, T, S>
Sourcepub async fn handle(
reader: &mut SilkroadStreamRead<T>,
writer: &mut SilkroadStreamWrite<S>,
) -> Result<(), HandshakeError>
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>where
T: RefUnwindSafe,
S: RefUnwindSafe,
impl<'a, T, S> Send for PassiveSecuritySetup<'a, T, S>
impl<'a, T, S> Sync for PassiveSecuritySetup<'a, T, S>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more