pub struct SocketSynchronousProxy { /* private fields */ }
Implementations§
Source§impl SocketSynchronousProxy
impl SocketSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<SocketEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<SocketEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
pub fn clone2(&self, request: ServerEnd<CloneableMarker>) -> Result<(), Error>
Sourcepub fn close(
&self,
___deadline: MonotonicInstant,
) -> Result<CloseableCloseResult, Error>
pub fn close( &self, ___deadline: MonotonicInstant, ) -> Result<CloseableCloseResult, Error>
Terminates the connection.
After calling Close
, the client must not send any other requests.
Servers, after sending the status response, should close the connection regardless of status and without sending an epitaph.
Closing the client end of the channel should be semantically equivalent
to calling Close
without knowing when the close has completed or its
status.
pub fn query(&self, ___deadline: MonotonicInstant) -> Result<Vec<u8>, Error>
Sourcepub fn set_reuse_address(
&self,
value: bool,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetReuseAddressResult, Error>
pub fn set_reuse_address( &self, value: bool, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetReuseAddressResult, Error>
Set SOL_SOCKET
-> SO_REUSEADDR
.
Sourcepub fn get_reuse_address(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetReuseAddressResult, Error>
pub fn get_reuse_address( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetReuseAddressResult, Error>
Get SOL_SOCKET
-> SO_REUSEADDR
.
Sourcepub fn get_error(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetErrorResult, Error>
pub fn get_error( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetErrorResult, Error>
Get SOL_SOCKET
-> SO_ERROR
.
Returns the last error if there is an error set on the socket.
Sourcepub fn set_broadcast(
&self,
value: bool,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetBroadcastResult, Error>
pub fn set_broadcast( &self, value: bool, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetBroadcastResult, Error>
Set SOL_SOCKET
-> SO_BROADCAST
.
Sourcepub fn get_broadcast(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetBroadcastResult, Error>
pub fn get_broadcast( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetBroadcastResult, Error>
Get SOL_SOCKET
-> SO_BROADCAST
.
Sourcepub fn set_send_buffer(
&self,
value_bytes: u64,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetSendBufferResult, Error>
pub fn set_send_buffer( &self, value_bytes: u64, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetSendBufferResult, Error>
Set SOL_SOCKET
-> SO_SNDBUF
.
Sourcepub fn get_send_buffer(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetSendBufferResult, Error>
pub fn get_send_buffer( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetSendBufferResult, Error>
Get SOL_SOCKET
-> SO_SNDBUF
.
Sourcepub fn set_receive_buffer(
&self,
value_bytes: u64,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetReceiveBufferResult, Error>
pub fn set_receive_buffer( &self, value_bytes: u64, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetReceiveBufferResult, Error>
Set SOL_SOCKET
-> SO_RCVBUF
.
Sourcepub fn get_receive_buffer(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetReceiveBufferResult, Error>
pub fn get_receive_buffer( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetReceiveBufferResult, Error>
Get SOL_SOCKET
-> SO_RCVBUF
.
Sourcepub fn set_keep_alive(
&self,
value: bool,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetKeepAliveResult, Error>
pub fn set_keep_alive( &self, value: bool, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetKeepAliveResult, Error>
Set SOL_SOCKET
-> SO_KEEPALIVE
.
Sourcepub fn get_keep_alive(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetKeepAliveResult, Error>
pub fn get_keep_alive( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetKeepAliveResult, Error>
Get SOL_SOCKET
-> SO_KEEPALIVE
.
Sourcepub fn set_out_of_band_inline(
&self,
value: bool,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetOutOfBandInlineResult, Error>
pub fn set_out_of_band_inline( &self, value: bool, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetOutOfBandInlineResult, Error>
Set SOL_SOCKET
-> SO_OOBINLINE
.
Sourcepub fn get_out_of_band_inline(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetOutOfBandInlineResult, Error>
pub fn get_out_of_band_inline( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetOutOfBandInlineResult, Error>
Get SOL_SOCKET
-> SO_OOBINLINE
.
Sourcepub fn set_no_check(
&self,
value: bool,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetNoCheckResult, Error>
pub fn set_no_check( &self, value: bool, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetNoCheckResult, Error>
Set SOL_SOCKET
-> SO_NO_CHECK
.
Sourcepub fn get_no_check(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetNoCheckResult, Error>
pub fn get_no_check( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetNoCheckResult, Error>
Get SOL_SOCKET
-> SO_NO_CHECK
.
Sourcepub fn set_linger(
&self,
linger: bool,
length_secs: u32,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetLingerResult, Error>
pub fn set_linger( &self, linger: bool, length_secs: u32, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetLingerResult, Error>
Set SOL_SOCKET
-> SO_LINGER
.
Sourcepub fn get_linger(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetLingerResult, Error>
pub fn get_linger( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetLingerResult, Error>
Get SOL_SOCKET
-> SO_LINGER
.
Sourcepub fn set_reuse_port(
&self,
value: bool,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetReusePortResult, Error>
pub fn set_reuse_port( &self, value: bool, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetReusePortResult, Error>
Set SOL_SOCKET
-> SO_REUSEPORT
.
Sourcepub fn get_reuse_port(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetReusePortResult, Error>
pub fn get_reuse_port( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetReusePortResult, Error>
Get SOL_SOCKET
-> SO_REUSEPORT
.
Sourcepub fn get_accept_conn(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetAcceptConnResult, Error>
pub fn get_accept_conn( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetAcceptConnResult, Error>
Get SOL_SOCKET
-> SO_ACCEPTCONN
.
Sourcepub fn set_bind_to_device(
&self,
value: &str,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetBindToDeviceResult, Error>
pub fn set_bind_to_device( &self, value: &str, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetBindToDeviceResult, Error>
Set SOL_SOCKET
-> SO_BINDTODEVICE
.
Sourcepub fn get_bind_to_device(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetBindToDeviceResult, Error>
pub fn get_bind_to_device( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetBindToDeviceResult, Error>
Get SOL_SOCKET
-> SO_BINDTODEVICE
.
Sourcepub fn set_bind_to_interface_index(
&self,
value: u64,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetBindToInterfaceIndexResult, Error>
pub fn set_bind_to_interface_index( &self, value: u64, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetBindToInterfaceIndexResult, Error>
Set SOL_SOCKET
-> SO_BINDTOIFINDEX
.
If value
is 0, this clears the bound interface.
Sourcepub fn get_bind_to_interface_index(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetBindToInterfaceIndexResult, Error>
pub fn get_bind_to_interface_index( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetBindToInterfaceIndexResult, Error>
Get SOL_SOCKET
-> SO_BINDTOIFINDEX
.
Sourcepub fn set_timestamp(
&self,
value: TimestampOption,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetTimestampResult, Error>
pub fn set_timestamp( &self, value: TimestampOption, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetTimestampResult, Error>
Set SOL_SOCKET
-> SO_TIMESTAMP
or SO_TIMESTAMPNS
.
Sourcepub fn get_timestamp(
&self,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetTimestampResult, Error>
pub fn get_timestamp( &self, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetTimestampResult, Error>
Get SOL_SOCKET
-> SO_TIMESTAMP
or SO_TIMESTAMPNS
.
Sourcepub fn set_mark(
&self,
domain: MarkDomain,
mark: &OptionalUint32,
___deadline: MonotonicInstant,
) -> Result<BaseSocketSetMarkResult, Error>
pub fn set_mark( &self, domain: MarkDomain, mark: &OptionalUint32, ___deadline: MonotonicInstant, ) -> Result<BaseSocketSetMarkResult, Error>
Like setting SOL_SOCKET
-> SO_MARK
. The major difference is that
unlike the standard SO_MARK, this API has multiple mark domains and each
mark can be set independently in each domain.
Sourcepub fn get_mark(
&self,
domain: MarkDomain,
___deadline: MonotonicInstant,
) -> Result<BaseSocketGetMarkResult, Error>
pub fn get_mark( &self, domain: MarkDomain, ___deadline: MonotonicInstant, ) -> Result<BaseSocketGetMarkResult, Error>
Like getting SOL_SOCKET
-> SO_MARK
. The major difference is that
unlike the standard SO_MARK, this API has multiple mark domains and each
mark can be retrieved independently in each domain.
pub fn describe( &self, ___deadline: MonotonicInstant, ) -> Result<SocketDescribeResponse, Error>
Sourcepub fn bind(
&self,
protocol: Option<&ProtocolAssociation>,
bound_interface_id: &BoundInterfaceId,
___deadline: MonotonicInstant,
) -> Result<SocketBindResult, Error>
pub fn bind( &self, protocol: Option<&ProtocolAssociation>, bound_interface_id: &BoundInterfaceId, ___deadline: MonotonicInstant, ) -> Result<SocketBindResult, Error>
Bind the socket to a protocol and/or interface.
- request
protocol
the socket’s new protocol association. - request
bound_interface_id
the socket’s new interface binding.
Sourcepub fn get_info(
&self,
___deadline: MonotonicInstant,
) -> Result<SocketGetInfoResult, Error>
pub fn get_info( &self, ___deadline: MonotonicInstant, ) -> Result<SocketGetInfoResult, Error>
Returns the the socket’s properties.
- response
kind
the socket’sKind
. - response
protocol
the socket’s protocol association, if associated. - response
bound_interface
properties of the socket’s interface binding.
Sourcepub fn recv_msg(
&self,
want_packet_info: bool,
data_len: u32,
want_control: bool,
flags: RecvMsgFlags,
___deadline: MonotonicInstant,
) -> Result<SocketRecvMsgResult, Error>
pub fn recv_msg( &self, want_packet_info: bool, data_len: u32, want_control: bool, flags: RecvMsgFlags, ___deadline: MonotonicInstant, ) -> Result<SocketRecvMsgResult, Error>
Receives a message from the socket.
- request
want_packet_info
request information about the packet to be returned. - request
data_len
the maximum allowed length of the response data buffer. - request
want_control
request ancillary data to be returned. - request
flags
flags for the receive request.
- response
packet_info
information about the packet, if requested. - response
data
the message. - response
control
control messages, if requested. - response
truncated
indicates whether or not the returned message was truncated.
Sourcepub fn send_msg(
&self,
packet_info: Option<&PacketInfo>,
data: &[u8],
control: &SendControlData,
flags: SendMsgFlags,
___deadline: MonotonicInstant,
) -> Result<SocketSendMsgResult, Error>
pub fn send_msg( &self, packet_info: Option<&PacketInfo>, data: &[u8], control: &SendControlData, flags: SendMsgFlags, ___deadline: MonotonicInstant, ) -> Result<SocketSendMsgResult, Error>
Sends a message on the socket.
- request
packet_info
information about the packet. - request
data
the message. - request
control
ancillary data. - request
flags
flags for the send request.
Sourcepub fn attach_bpf_filter_unsafe(
&self,
code: &[u64],
___deadline: MonotonicInstant,
) -> Result<SocketAttachBpfFilterUnsafeResult, Error>
pub fn attach_bpf_filter_unsafe( &self, code: &[u64], ___deadline: MonotonicInstant, ) -> Result<SocketAttachBpfFilterUnsafeResult, Error>
Attaches the specified eBPF filter. The filter is assumed to be verified with 2 arguments
- Pointer to the packet of size 0, i.e. not accessed directly (only using cBPF packet load instructions).
- Packet size (BPF_LOAD). Helper functions and maps are not supported.
Trait Implementations§
Source§impl Debug for SocketSynchronousProxy
impl Debug for SocketSynchronousProxy
Source§impl SynchronousProxy for SocketSynchronousProxy
impl SynchronousProxy for SocketSynchronousProxy
Source§type Proxy = SocketProxy
type Proxy = SocketProxy
Source§type Protocol = SocketMarker
type Protocol = SocketMarker
Proxy
controls.