pub struct Pool { /* private fields */ }
Expand description
A pool of network addresses.
This does not directly correspond to anything in std
, however its methods
correspond to the several functions in std::net
.
Pool
implements Clone
, which creates new independent entities that
carry the full authority of the originals. This means that in a borrow
of a Pool
, the scope of the authority is not necessarily limited to
the scope of the borrow.
Similarly, the cap_net_ext::PoolExt
class allows creating “binder”
and “connecter” objects which represent capabilities to bind and
connect to addresses.
Implementations§
source§impl Pool
impl Pool
sourcepub fn insert<A: ToSocketAddrs>(
&mut self,
addrs: A,
ambient_authority: AmbientAuthority
) -> Result<()>
pub fn insert<A: ToSocketAddrs>( &mut self, addrs: A, ambient_authority: AmbientAuthority ) -> Result<()>
sourcepub fn insert_socket_addr(
&mut self,
addr: SocketAddr,
ambient_authority: AmbientAuthority
)
pub fn insert_socket_addr( &mut self, addr: SocketAddr, ambient_authority: AmbientAuthority )
Add a specific net::SocketAddr
to the pool.
AmbientAuthority
This function allows ambient access to any IP address.
sourcepub fn insert_ip_net_port_any(
&mut self,
ip_net: IpNet,
ambient_authority: AmbientAuthority
)
pub fn insert_ip_net_port_any( &mut self, ip_net: IpNet, ambient_authority: AmbientAuthority )
Add a range of network addresses, accepting any port, to the pool.
Unlike insert_ip_net
, this function grants access to any requested
port.
Ambient Authority
This function allows ambient access to any IP address.
sourcepub fn insert_ip_net_port_range(
&mut self,
ip_net: IpNet,
ports_start: u16,
ports_end: Option<u16>,
ambient_authority: AmbientAuthority
)
pub fn insert_ip_net_port_range( &mut self, ip_net: IpNet, ports_start: u16, ports_end: Option<u16>, ambient_authority: AmbientAuthority )
Add a range of network addresses, accepting a range of ports, to the pool.
This grants access to the port range starting at ports_start
and,
if ports_end
is provided, ending before ports_end
.
Ambient Authority
This function allows ambient access to any IP address.
sourcepub fn insert_ip_net(
&mut self,
ip_net: IpNet,
port: u16,
ambient_authority: AmbientAuthority
)
pub fn insert_ip_net( &mut self, ip_net: IpNet, port: u16, ambient_authority: AmbientAuthority )
Add a range of network addresses with a specific port to the pool.
AmbientAuthority
This function allows ambient access to any IP address.
sourcepub fn bind_tcp_listener<A: ToSocketAddrs>(
&self,
addr: A
) -> Result<TcpListener>
pub fn bind_tcp_listener<A: ToSocketAddrs>( &self, addr: A ) -> Result<TcpListener>
Creates a new TcpListener
which will be bound to the specified
address.
This corresponds to std::net::TcpListener::bind
.
sourcepub fn connect_tcp_stream<A: ToSocketAddrs>(&self, addr: A) -> Result<TcpStream>
pub fn connect_tcp_stream<A: ToSocketAddrs>(&self, addr: A) -> Result<TcpStream>
Opens a TCP connection to a remote host.
This corresponds to std::net::TcpStream::connect
.
sourcepub fn connect_timeout_tcp_stream(
&self,
addr: &SocketAddr,
timeout: Duration
) -> Result<TcpStream>
pub fn connect_timeout_tcp_stream( &self, addr: &SocketAddr, timeout: Duration ) -> Result<TcpStream>
Opens a TCP connection to a remote host with a timeout.
This corresponds to std::net::TcpStream::connect_timeout
.
sourcepub fn bind_udp_socket<A: ToSocketAddrs>(&self, addr: A) -> Result<UdpSocket>
pub fn bind_udp_socket<A: ToSocketAddrs>(&self, addr: A) -> Result<UdpSocket>
Creates a UDP socket from the given address.
This corresponds to std::net::UdpSocket::bind
.
sourcepub fn send_to_udp_socket_addr<A: ToSocketAddrs>(
&self,
udp_socket: &UdpSocket,
buf: &[u8],
addr: A
) -> Result<usize>
pub fn send_to_udp_socket_addr<A: ToSocketAddrs>( &self, udp_socket: &UdpSocket, buf: &[u8], addr: A ) -> Result<usize>
Sends data on the socket to the given address. On success, returns the number of bytes written.
This corresponds to std::net::UdpSocket::send_to
.
sourcepub fn connect_udp_socket<A: ToSocketAddrs>(
&self,
udp_socket: &UdpSocket,
addr: A
) -> Result<()>
pub fn connect_udp_socket<A: ToSocketAddrs>( &self, udp_socket: &UdpSocket, addr: A ) -> Result<()>
Connects this UDP socket to a remote address, allowing the send
and
recv
syscalls to be used to send data and also applies filters to
only receive data from the specified address.
This corresponds to std::net::UdpSocket::connect
.