pub struct MessageDeframer {
pub frames: VecDeque<Message>,
pub desynced: bool,
// some fields omitted
}
This deframer works to reconstruct TLS messages
from arbitrary-sized reads, buffering as necessary.
The input is read()
, the output is the frames
deque.
Completed frames for output.
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.
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.