pub struct LocalNetworking { /* private fields */ }
Available on crate feature
host-vnet
only.Implementations§
Source§impl LocalNetworking
impl LocalNetworking
pub fn new() -> LocalNetworking
Trait Implementations§
Source§impl Debug for LocalNetworking
impl Debug for LocalNetworking
Source§impl Default for LocalNetworking
impl Default for LocalNetworking
Source§fn default() -> LocalNetworking
fn default() -> LocalNetworking
Returns the “default value” for a type. Read more
Source§impl Drop for LocalNetworking
impl Drop for LocalNetworking
Source§impl VirtualNetworking for LocalNetworking
impl VirtualNetworking for LocalNetworking
Source§fn listen_tcp<'life0, 'async_trait>(
&'life0 self,
addr: SocketAddr,
only_v6: bool,
reuse_port: bool,
reuse_addr: bool,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualTcpListener + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalNetworking: 'async_trait,
fn listen_tcp<'life0, 'async_trait>(
&'life0 self,
addr: SocketAddr,
only_v6: bool,
reuse_port: bool,
reuse_addr: bool,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualTcpListener + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalNetworking: 'async_trait,
Lists for TCP connections on a specific IP and Port combination
Multiple servers (processes or threads) can bind to the same port if they each set
the reuse-port and-or reuse-addr flags
Source§fn bind_udp<'life0, 'async_trait>(
&'life0 self,
addr: SocketAddr,
_reuse_port: bool,
_reuse_addr: bool,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualUdpSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalNetworking: 'async_trait,
fn bind_udp<'life0, 'async_trait>(
&'life0 self,
addr: SocketAddr,
_reuse_port: bool,
_reuse_addr: bool,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualUdpSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalNetworking: 'async_trait,
Opens a UDP socket that listens on a specific IP and Port combination
Multiple servers (processes or threads) can bind to the same port if they each set
the reuse-port and-or reuse-addr flags
Source§fn connect_tcp<'life0, 'async_trait>(
&'life0 self,
_addr: SocketAddr,
peer: SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualTcpSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalNetworking: 'async_trait,
fn connect_tcp<'life0, 'async_trait>(
&'life0 self,
_addr: SocketAddr,
peer: SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualTcpSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalNetworking: 'async_trait,
Opens a TCP connection to a particular destination IP address and port
Source§fn resolve<'life0, 'life1, 'async_trait>(
&'life0 self,
host: &'life1 str,
port: Option<u16>,
dns_server: Option<IpAddr>,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpAddr>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalNetworking: 'async_trait,
fn resolve<'life0, 'life1, 'async_trait>(
&'life0 self,
host: &'life1 str,
port: Option<u16>,
dns_server: Option<IpAddr>,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpAddr>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalNetworking: 'async_trait,
Performs DNS resolution for a specific hostname
Source§fn bridge<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
network: &'life1 str,
access_token: &'life2 str,
security: StreamSecurity,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn bridge<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
network: &'life1 str,
access_token: &'life2 str,
security: StreamSecurity,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Bridges this local network with a remote network, which is required in
order to make lower level networking calls (such as UDP/TCP)
Source§fn unbridge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn unbridge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Disconnects from the remote network essentially unbridging it
Source§fn dhcp_acquire<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpAddr>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn dhcp_acquire<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpAddr>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Acquires an IP address on the network and configures the routing tables
Source§fn ip_add<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
prefix: u8,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn ip_add<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
prefix: u8,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Adds a static IP address to the interface with a netmask prefix
Source§fn ip_remove<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn ip_remove<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Removes a static (or dynamic) IP address from the interface
Source§fn ip_clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn ip_clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Clears all the assigned IP addresses for this interface
Source§fn ip_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpCidr>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn ip_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpCidr>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Lists all the IP addresses currently assigned to this interface
Source§fn mac<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<[u8; 6], NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn mac<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<[u8; 6], NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns the hardware MAC address for this interface
Source§fn gateway_set<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn gateway_set<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Adds a default gateway to the routing table
Source§fn route_add<'life0, 'async_trait>(
&'life0 self,
cidr: IpCidr,
via_router: IpAddr,
preferred_until: Option<Duration>,
expires_at: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn route_add<'life0, 'async_trait>(
&'life0 self,
cidr: IpCidr,
via_router: IpAddr,
preferred_until: Option<Duration>,
expires_at: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Adds a specific route to the routing table
Source§fn route_remove<'life0, 'async_trait>(
&'life0 self,
cidr: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn route_remove<'life0, 'async_trait>(
&'life0 self,
cidr: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Removes a routing rule from the routing table
Source§fn route_clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn route_clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Clears the routing table for this interface
Source§fn route_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpRoute>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn route_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpRoute>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Lists all the routes defined in the routing table for this interface
Source§fn bind_raw<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualRawSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn bind_raw<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualRawSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Creates a low level socket that can read and write Ethernet packets
directly to the interface
Source§fn bind_icmp<'life0, 'async_trait>(
&'life0 self,
addr: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualIcmpSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn bind_icmp<'life0, 'async_trait>(
&'life0 self,
addr: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualIcmpSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Creates a socket that can be used to send and receive ICMP packets
from a paritcular IP address
Auto Trait Implementations§
impl Freeze for LocalNetworking
impl !RefUnwindSafe for LocalNetworking
impl Send for LocalNetworking
impl Sync for LocalNetworking
impl Unpin for LocalNetworking
impl !UnwindSafe for LocalNetworking
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§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.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
Source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
Source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref