pub struct MessageDeframer {
    pub frames: VecDeque<OpaqueMessage>,
    pub desynced: bool,
    buf: Box<[u8; 18437]>,
    used: usize,
}
Expand description

This deframer works to reconstruct TLS messages from arbitrary-sized reads, buffering as necessary. The input is read(), the output is the frames deque.

Fields§

§frames: VecDeque<OpaqueMessage>

Completed frames for output.

§desynced: bool

Set to true if the peer is not talking TLS, but some other protocol. The caller should abort the connection, because the deframer cannot recover.

§buf: Box<[u8; 18437]>

A fixed-size buffer containing the currently-accumulating TLS message.

§used: usize

What size prefix of buf is used.

Implementations§

Read some bytes from rd, and add them to our internal buffer. If this means our internal buffer contains full messages, decode them all.

Returns true if we have messages for the caller to process, either whole messages in our output queue or partial messages in our buffer.

Does our buf contain a full message? It does if it is big enough to contain a header, and that header has a length which falls within buf. If so, deframe it and place the message onto the frames output queue.

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The Resulting [TupleList], of an [Prepend::prepend()] call, including the prepended entry.
Prepend a value to this tuple, returning a new tuple with prepended value.
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.