pub struct DtlsStream<S>(pub SslStream<S>);
Expand description
A stream managing a DTLS session.
A DtlsStream<S>
represents a handshake that has been completed successfully
and both the server and the client are ready for receiving and sending
data. Bytes read from a DtlsStream
are decrypted from S
and bytes written
to a DtlsStream
are encrypted when passing through to S
.
Tuple Fields§
§0: SslStream<S>
Implementations§
Source§impl<S: Read + Write> DtlsStream<S>
impl<S: Read + Write> DtlsStream<S>
Sourcepub fn selected_srtp_profile(&self) -> Result<Option<SrtpProfile>, Error>
pub fn selected_srtp_profile(&self) -> Result<Option<SrtpProfile>, Error>
Gets the SRTP profile selected by handshake.
§Underlying SSL
DTLS extension “use_srtp” as defined in RFC5764 has to be enabled.
This corresponds to SSL_get_selected_srtp_profile
.
Sourcepub fn buffered_read_size(&self) -> Result<usize, Error>
pub fn buffered_read_size(&self) -> Result<usize, Error>
Returns the number of bytes remaining in the currently processed TLS record.
If this is greater than 0, the next call to read
will not call down to the underlying
stream.
§Underlying SSL
This corresponds to SSL_pending
.
Sourcepub fn peer_certificate(&self) -> Result<Option<Certificate>, Error>
pub fn peer_certificate(&self) -> Result<Option<Certificate>, Error>
Returns the peer’s certificate, if present.
§Underlying SSL
This corresponds to SSL_get_peer_certificate
.
Sourcepub fn shutdown(&mut self) -> Result<()>
pub fn shutdown(&mut self) -> Result<()>
Shuts down the session.
The shutdown process consists of two steps. The first step sends a close notify message to
the peer, after which ShutdownResult::Sent
is returned. The second step awaits the receipt
of a close notify message from the peer, after which ShutdownResult::Received
is returned.
While the connection may be closed after the first step, it is recommended to fully shut the session down. In particular, it must be fully shut down if the connection is to be used for further communication in the future.
§Underlying SSL
This corresponds to SSL_shutdown
.
Trait Implementations§
Source§impl<S: Debug> Debug for DtlsStream<S>
impl<S: Debug> Debug for DtlsStream<S>
Source§impl<S: Read + Write> Read for DtlsStream<S>
impl<S: Read + Write> Read for DtlsStream<S>
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
1.36.0 · Source§fn 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 moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
buf
. Read more1.0.0 · Source§fn 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 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf
. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)Source§fn 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 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read
. Read moreSource§impl<S: Read + Write> Write for DtlsStream<S>
impl<S: Read + Write> Write for DtlsStream<S>
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)