pub struct Reader<'a> { /* private fields */ }
Expand description
A structure that implements std::io::Read
for reading plaintext.
Trait Implementations
sourceimpl<'a> Read for Reader<'a>
impl<'a> Read for Reader<'a>
sourcefn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Obtain plaintext data received from the peer over this TLS connection.
If the peer closes the TLS session cleanly, this returns Ok(0)
once all
the pending data has been read. No further data can be received on that
connection, so the underlying TCP connection should be half-closed too.
If the peer closes the TLS session uncleanly (a TCP EOF without sending a
close_notify
alert) this function returns Err(ErrorKind::UnexpectedEof.into())
once any pending data has been read.
Note that support for close_notify
varies in peer TLS libraries: many do not
support it and uncleanly close the TCP connection (this might be
vulnerable to truncation attacks depending on the application protocol).
This means applications using rustls must both handle EOF
from this function, and unexpected EOF of the underlying TCP connection.
If there are no bytes to read, this returns Err(ErrorKind::WouldBlock.into())
.
You may learn the number of bytes available at any time by inspecting
the return of Connection::process_new_packets
.
1.36.0 · sourcefn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
read
, except that it reads into a slice of buffers. Read moresourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)1.0.0 · sourcefn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
buf
. Read more1.0.0 · sourcefn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
buf
. Read more1.6.0 · sourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf
. Read moresourcefn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)sourcefn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
Read
. Read more