Struct SslStreamBuilder

pub struct SslStreamBuilder<S> { /* private fields */ }
Expand description

A partially constructed SslStream, useful for unusual handshakes.

Implementations§

§

impl<S> SslStreamBuilder<S>
where S: Read + Write,

pub fn new(ssl: Ssl, stream: S) -> SslStreamBuilder<S>

Begin creating an SslStream atop stream

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)

Configure as an incoming stream to a server.

This corresponds to SSL_set_accept_state.

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

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>

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

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

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>

pub fn get_ref(&self) -> &S

Returns a shared reference to the underlying stream.

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

Returns a shared reference to the Ssl object associated with this builder.

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

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§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
§

impl<T, U> RamaInto<U> for T
where U: RamaFrom<T>,

§

fn rama_into(self) -> U

§

impl<T, U> RamaInto<U> for T
where U: RamaFrom<T>,

§

fn rama_into(self) -> U

§

impl<T, U> RamaTryInto<U> for T
where U: RamaTryFrom<T>,

§

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

§

fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T>>::Error>

§

impl<T, U> RamaTryInto<U> for T
where U: RamaTryFrom<T>,

§

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

§

fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T>>::Error>

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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,