Struct virtual_net::server::RemoteNetworkingServer
source · pub struct RemoteNetworkingServer { /* private fields */ }
Available on crate feature
remote
only.Implementations§
source§impl RemoteNetworkingServer
impl RemoteNetworkingServer
sourcepub fn new_from_mpsc(
tx: Sender<MessageResponse>,
rx: Receiver<MessageRequest>,
inner: Arc<dyn VirtualNetworking + Send + Sync + 'static>,
) -> (Self, RemoteNetworkingServerDriver)
pub fn new_from_mpsc( tx: Sender<MessageResponse>, rx: Receiver<MessageRequest>, inner: Arc<dyn VirtualNetworking + Send + Sync + 'static>, ) -> (Self, RemoteNetworkingServerDriver)
Creates a new interface on the remote location using a unique interface ID and a pair of channels
sourcepub fn new_from_async_io<TX, RX>(
tx: TX,
rx: RX,
format: FrameSerializationFormat,
inner: Arc<dyn VirtualNetworking + Send + Sync + 'static>,
) -> (Self, RemoteNetworkingServerDriver)
pub fn new_from_async_io<TX, RX>( tx: TX, rx: RX, format: FrameSerializationFormat, inner: Arc<dyn VirtualNetworking + Send + Sync + 'static>, ) -> (Self, RemoteNetworkingServerDriver)
Creates a new interface on the remote location using a unique interface ID and a pair of channels
sourcepub fn new_from_hyper_ws_io(
tx: SplitSink<WebSocketStream<TokioIo<Upgraded>>, Message>,
rx: SplitStream<WebSocketStream<TokioIo<Upgraded>>>,
format: FrameSerializationFormat,
inner: Arc<dyn VirtualNetworking + Send + Sync + 'static>,
) -> (Self, RemoteNetworkingServerDriver)
Available on crate feature hyper
only.
pub fn new_from_hyper_ws_io( tx: SplitSink<WebSocketStream<TokioIo<Upgraded>>, Message>, rx: SplitStream<WebSocketStream<TokioIo<Upgraded>>>, format: FrameSerializationFormat, inner: Arc<dyn VirtualNetworking + Send + Sync + 'static>, ) -> (Self, RemoteNetworkingServerDriver)
hyper
only.Creates a new interface on the remote location using a unique interface ID and a pair of channels
Trait Implementations§
source§impl Clone for RemoteNetworkingServer
impl Clone for RemoteNetworkingServer
source§fn clone(&self) -> RemoteNetworkingServer
fn clone(&self) -> RemoteNetworkingServer
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for RemoteNetworkingServer
impl Debug for RemoteNetworkingServer
source§impl VirtualNetworking for RemoteNetworkingServer
impl VirtualNetworking for RemoteNetworkingServer
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
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: '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
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: '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
Self: 'async_trait,
'life0: 'async_trait,
fn unbridge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn dhcp_acquire<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpAddr>, NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn ip_remove<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn ip_clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn ip_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpCidr>, NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn mac<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<[u8; 6], NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn gateway_set<'life0, 'async_trait>(
&'life0 self,
ip: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn route_remove<'life0, 'async_trait>(
&'life0 self,
cidr: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn route_clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
fn route_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IpRoute>, NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
Creates a low level socket that can read and write Ethernet packets
directly to the interface
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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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 bind_icmp<'life0, 'async_trait>(
&'life0 self,
addr: IpAddr,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn VirtualIcmpSocket + Sync>, NetworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
Creates a socket that can be used to send and receive ICMP packets
from a paritcular IP address
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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: '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
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Performs DNS resolution for a specific hostname
Auto Trait Implementations§
impl Freeze for RemoteNetworkingServer
impl !RefUnwindSafe for RemoteNetworkingServer
impl Send for RemoteNetworkingServer
impl Sync for RemoteNetworkingServer
impl Unpin for RemoteNetworkingServer
impl !UnwindSafe for RemoteNetworkingServer
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)