struct LoopbackConnectedSocket {
inner: TcpSocketHalf,
networking: LoopbackNetworking,
reservation_key: Option<SocketAddr>,
}Expand description
A connected TCP socket that keeps its local-port reservation in
LoopbackNetworkingState::tcp_bound until it is explicitly closed or
dropped, matching POSIX/Linux semantics where a connected socket holds
its local port for its entire lifetime.
Fields§
§inner: TcpSocketHalf§networking: LoopbackNetworking§reservation_key: Option<SocketAddr>None once the reservation has been released (after close() or drop).
Implementations§
Source§impl LoopbackConnectedSocket
impl LoopbackConnectedSocket
fn release_reservation(&mut self)
Trait Implementations§
Source§impl Debug for LoopbackConnectedSocket
impl Debug for LoopbackConnectedSocket
Source§impl Drop for LoopbackConnectedSocket
impl Drop for LoopbackConnectedSocket
Source§impl VirtualConnectedSocket for LoopbackConnectedSocket
impl VirtualConnectedSocket for LoopbackConnectedSocket
Source§fn set_linger(&mut self, linger: Option<Duration>) -> Result<()>
fn set_linger(&mut self, linger: Option<Duration>) -> Result<()>
Determines how long the socket will remain in a TIME_WAIT
after it disconnects (only the one that initiates the close will
be in a TIME_WAIT state thus the clients should always do this rather
than the server)
Source§fn linger(&self) -> Result<Option<Duration>>
fn linger(&self) -> Result<Option<Duration>>
Returns how long the socket will remain in a TIME_WAIT
after it disconnects
Source§fn try_send(&mut self, data: &[u8]) -> Result<usize>
fn try_send(&mut self, data: &[u8]) -> Result<usize>
Tries to send out a datagram or stream of bytes on this socket
fn try_flush(&mut self) -> Result<()>
Source§impl VirtualIoSource for LoopbackConnectedSocket
impl VirtualIoSource for LoopbackConnectedSocket
Source§fn remove_handler(&mut self)
fn remove_handler(&mut self)
Removes a previously registered waker using a token
Source§impl VirtualSocket for LoopbackConnectedSocket
impl VirtualSocket for LoopbackConnectedSocket
Source§fn set_ttl(&mut self, ttl: u32) -> Result<()>
fn set_ttl(&mut self, ttl: u32) -> Result<()>
Sets how many network hops the packets are permitted for new connections
Source§fn ttl(&self) -> Result<u32>
fn ttl(&self) -> Result<u32>
Returns the maximum number of network hops before packets are dropped
Source§fn addr_local(&self) -> Result<SocketAddr>
fn addr_local(&self) -> Result<SocketAddr>
Returns the local address for this socket
Source§fn status(&self) -> Result<SocketStatus>
fn status(&self) -> Result<SocketStatus>
Returns the status/state of the socket
Source§fn set_handler(
&mut self,
handler: Box<dyn InterestHandler + Send + Sync>,
) -> Result<()>
fn set_handler( &mut self, handler: Box<dyn InterestHandler + Send + Sync>, ) -> Result<()>
Registers a waker for when this connection is ready to receive
more data. Uses a stack machine which means more than one waker
can be registered
Source§impl VirtualTcpSocket for LoopbackConnectedSocket
impl VirtualTcpSocket for LoopbackConnectedSocket
Source§fn set_recv_buf_size(&mut self, size: usize) -> Result<()>
fn set_recv_buf_size(&mut self, size: usize) -> Result<()>
Sets the receive buffer size which acts as a throttle for how
much data is buffered on this side of the pipe
Source§fn recv_buf_size(&self) -> Result<usize>
fn recv_buf_size(&self) -> Result<usize>
Size of the receive buffer that holds all data that has not
yet been read
Source§fn set_send_buf_size(&mut self, size: usize) -> Result<()>
fn set_send_buf_size(&mut self, size: usize) -> Result<()>
Sets the size of the send buffer which will hold the bytes of
data while they are being sent over to the peer
Source§fn send_buf_size(&self) -> Result<usize>
fn send_buf_size(&self) -> Result<usize>
Size of the send buffer that holds all data that is currently
being transmitted.
Source§fn set_nodelay(&mut self, reuse: bool) -> Result<()>
fn set_nodelay(&mut self, reuse: bool) -> Result<()>
When NO_DELAY is set the data that needs to be transmitted to
the peer is sent immediately rather than waiting for a bigger
batch of data, this reduces latency but increases encapsulation
overhead.
Source§fn nodelay(&self) -> Result<bool>
fn nodelay(&self) -> Result<bool>
Indicates if the NO_DELAY flag is set which means that data
is immediately sent to the peer without waiting. This reduces
latency but increases encapsulation overhead.
Source§fn set_keepalive(&mut self, keepalive: bool) -> Result<()>
fn set_keepalive(&mut self, keepalive: bool) -> Result<()>
When KEEP_ALIVE is set the connection will periodically send
an empty data packet to the server to make sure the connection
stays alive.
Source§fn keepalive(&self) -> Result<bool>
fn keepalive(&self) -> Result<bool>
Indicates if the KEEP_ALIVE flag is set which means that the
socket will periodically send an empty data packet to keep
the connection alive.
Source§fn set_dontroute(&mut self, dontroute: bool) -> Result<()>
fn set_dontroute(&mut self, dontroute: bool) -> Result<()>
When DONT_ROUTE is set the packet will be sent directly
to the interface without passing through the routing logic.
Source§fn dontroute(&self) -> Result<bool>
fn dontroute(&self) -> Result<bool>
Indicates if the packet will pass straight through to
the interface bypassing the routing logic.
Source§fn addr_peer(&self) -> Result<SocketAddr>
fn addr_peer(&self) -> Result<SocketAddr>
Returns the address (IP and Port) of the peer socket that this
is connected to
Auto Trait Implementations§
impl Freeze for LoopbackConnectedSocket
impl RefUnwindSafe for LoopbackConnectedSocket
impl Send for LoopbackConnectedSocket
impl Sync for LoopbackConnectedSocket
impl Unpin for LoopbackConnectedSocket
impl UnwindSafe for LoopbackConnectedSocket
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.