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.
Ambient Authority
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.
Ambient Authority
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.