Skip to main content

Setup

Struct Setup 

Source
pub struct Setup<IO> { /* private fields */ }
Expand description

The setup type being used to configure the kTLS stream.

See Setup::execute for details.

Implementations§

Source§

impl<IO> Setup<IO>

Source

pub const fn new_client_stream(inner: TlsStream<CorkStream<IO>>) -> Self

Initialize a new setup with the socket (that client connects to).

Source

pub const fn new_server_stream<'a>(inner: TlsStream<CorkStream<IO>>) -> Self

Initialize a new setup with the socket (that server accepts).

Source

pub fn try_recover(&mut self) -> Option<(Option<Vec<u8>>, TlsStream<IO>)>

Try to recover from an error. This is used to allow the user to continue using the TLS stream after an error has occurred.

This returns the inner TLS stream and the drained data.

Source

pub async fn execute(&mut self) -> Result<KtlsStream<IO>, Error>

Execute kTLS configuration for this socket.

If this call succeeds, data can be written and read from this socket, and the kernel takes care of encryption (and key updates, etc.) transparently.

The inner IO type must be wrapped in CorkStream since it’s the only way to drain a rustls stream cleanly. See its documentation for details.

For server side, I’m not clear how rekeying is handled (probably via control messages, but can’t find a code sample for it).

Auto Trait Implementations§

§

impl<IO> Freeze for Setup<IO>
where IO: Freeze,

§

impl<IO> !RefUnwindSafe for Setup<IO>

§

impl<IO> Send for Setup<IO>
where IO: Send,

§

impl<IO> Sync for Setup<IO>
where IO: Sync,

§

impl<IO> Unpin for Setup<IO>
where IO: Unpin,

§

impl<IO> UnsafeUnpin for Setup<IO>
where IO: UnsafeUnpin,

§

impl<IO> !UnwindSafe for Setup<IO>

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

Source§

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

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

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, 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<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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