Struct SslStreamBuilder
pub struct SslStreamBuilder<S> { /* private fields */ }
Expand description
A partially constructed SslStream
, useful for unusual handshakes.
Implementations§
§impl<S> SslStreamBuilder<S>
impl<S> SslStreamBuilder<S>
pub fn new(ssl: Ssl, stream: S) -> SslStreamBuilder<S>
pub fn new(ssl: Ssl, stream: S) -> SslStreamBuilder<S>
Begin creating an SslStream
atop stream
pub fn set_connect_state(&mut self)
pub fn set_connect_state(&mut self)
Configure as an outgoing stream from a client.
This corresponds to SSL_set_connect_state
.
pub fn set_accept_state(&mut self)
pub fn set_accept_state(&mut self)
Configure as an incoming stream to a server.
This corresponds to SSL_set_accept_state
.
pub fn setup_connect(self) -> MidHandshakeSslStream<S>
pub fn setup_connect(self) -> MidHandshakeSslStream<S>
Initiates a client-side TLS handshake, returning a MidHandshakeSslStream
.
This method calls Self::set_connect_state
and returns without actually
initiating the handshake. The caller is then free to call
MidHandshakeSslStream
and loop on HandshakeError::WouldBlock
.
pub fn connect(self) -> Result<SslStream<S>, HandshakeError<S>>
pub fn connect(self) -> Result<SslStream<S>, HandshakeError<S>>
Attempts a client-side TLS handshake.
This is a convenience method which combines Self::setup_connect
and
MidHandshakeSslStream::handshake
.
pub fn setup_accept(self) -> MidHandshakeSslStream<S>
pub fn setup_accept(self) -> MidHandshakeSslStream<S>
Initiates a server-side TLS handshake, returning a MidHandshakeSslStream
.
This method calls Self::set_accept_state
and returns without actually
initiating the handshake. The caller is then free to call
MidHandshakeSslStream
and loop on HandshakeError::WouldBlock
.
pub fn accept(self) -> Result<SslStream<S>, HandshakeError<S>>
pub fn accept(self) -> Result<SslStream<S>, HandshakeError<S>>
Attempts a server-side TLS handshake.
This is a convenience method which combines Self::setup_accept
and
MidHandshakeSslStream::handshake
.
pub fn handshake(self) -> Result<SslStream<S>, HandshakeError<S>>
pub fn handshake(self) -> Result<SslStream<S>, HandshakeError<S>>
Initiates the handshake.
This will fail if set_accept_state
or set_connect_state
was not called first.
This corresponds to SSL_do_handshake
.
§impl<S> SslStreamBuilder<S>
impl<S> SslStreamBuilder<S>
pub fn get_mut(&mut self) -> &mut S
pub fn get_mut(&mut self) -> &mut S
Returns a mutable reference to the underlying stream.
§Warning
It is inadvisable to read from or write to the underlying stream as it will most likely corrupt the SSL session.
pub fn ssl(&self) -> &SslRef
pub fn ssl(&self) -> &SslRef
Returns a shared reference to the Ssl
object associated with this builder.
pub fn ssl_mut(&mut self) -> &mut SslRef
pub fn ssl_mut(&mut self) -> &mut SslRef
Returns a mutable reference to the Ssl
object associated with this builder.
pub fn set_dtls_mtu_size(&mut self, mtu_size: usize)
👎Deprecated since 0.10.30: Use SslRef::set_mtu instead
pub fn set_dtls_mtu_size(&mut self, mtu_size: usize)
Set the DTLS MTU size.
It will be ignored if the value is smaller than the minimum packet size the DTLS protocol requires.
§Panics
This function panics if the given mtu size can’t be represented in a positive c_long
range
Auto Trait Implementations§
impl<S> Freeze for SslStreamBuilder<S>
impl<S> RefUnwindSafe for SslStreamBuilder<S>where
S: RefUnwindSafe,
impl<S> Send for SslStreamBuilder<S>where
S: Send,
impl<S> Sync for SslStreamBuilder<S>where
S: Sync,
impl<S> Unpin for SslStreamBuilder<S>where
S: Unpin,
impl<S> UnwindSafe for SslStreamBuilder<S>where
S: UnwindSafe,
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more