pub struct SocketProxy { /* private fields */ }
Implementations§
Source§impl SocketProxy
impl SocketProxy
Sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.posix.socket.packet/Socket.
Sourcepub fn take_event_stream(&self) -> SocketEventStream
pub fn take_event_stream(&self) -> SocketEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
pub fn clone2(&self, request: ServerEnd<CloneableMarker>) -> Result<(), Error>
Sourcepub fn close(
&self,
) -> QueryResponseFut<CloseableCloseResult, DefaultFuchsiaResourceDialect>
pub fn close( &self, ) -> QueryResponseFut<CloseableCloseResult, DefaultFuchsiaResourceDialect>
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) -> QueryResponseFut<Vec<u8>, DefaultFuchsiaResourceDialect>
Sourcepub fn set_reuse_address(
&self,
value: bool,
) -> QueryResponseFut<BaseSocketSetReuseAddressResult, DefaultFuchsiaResourceDialect>
pub fn set_reuse_address( &self, value: bool, ) -> QueryResponseFut<BaseSocketSetReuseAddressResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_REUSEADDR
.
Sourcepub fn get_reuse_address(
&self,
) -> QueryResponseFut<BaseSocketGetReuseAddressResult, DefaultFuchsiaResourceDialect>
pub fn get_reuse_address( &self, ) -> QueryResponseFut<BaseSocketGetReuseAddressResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_REUSEADDR
.
Sourcepub fn get_error(
&self,
) -> QueryResponseFut<BaseSocketGetErrorResult, DefaultFuchsiaResourceDialect>
pub fn get_error( &self, ) -> QueryResponseFut<BaseSocketGetErrorResult, DefaultFuchsiaResourceDialect>
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,
) -> QueryResponseFut<BaseSocketSetBroadcastResult, DefaultFuchsiaResourceDialect>
pub fn set_broadcast( &self, value: bool, ) -> QueryResponseFut<BaseSocketSetBroadcastResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_BROADCAST
.
Sourcepub fn get_broadcast(
&self,
) -> QueryResponseFut<BaseSocketGetBroadcastResult, DefaultFuchsiaResourceDialect>
pub fn get_broadcast( &self, ) -> QueryResponseFut<BaseSocketGetBroadcastResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_BROADCAST
.
Sourcepub fn set_send_buffer(
&self,
value_bytes: u64,
) -> QueryResponseFut<BaseSocketSetSendBufferResult, DefaultFuchsiaResourceDialect>
pub fn set_send_buffer( &self, value_bytes: u64, ) -> QueryResponseFut<BaseSocketSetSendBufferResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_SNDBUF
.
Sourcepub fn get_send_buffer(
&self,
) -> QueryResponseFut<BaseSocketGetSendBufferResult, DefaultFuchsiaResourceDialect>
pub fn get_send_buffer( &self, ) -> QueryResponseFut<BaseSocketGetSendBufferResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_SNDBUF
.
Sourcepub fn set_receive_buffer(
&self,
value_bytes: u64,
) -> QueryResponseFut<BaseSocketSetReceiveBufferResult, DefaultFuchsiaResourceDialect>
pub fn set_receive_buffer( &self, value_bytes: u64, ) -> QueryResponseFut<BaseSocketSetReceiveBufferResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_RCVBUF
.
Sourcepub fn get_receive_buffer(
&self,
) -> QueryResponseFut<BaseSocketGetReceiveBufferResult, DefaultFuchsiaResourceDialect>
pub fn get_receive_buffer( &self, ) -> QueryResponseFut<BaseSocketGetReceiveBufferResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_RCVBUF
.
Sourcepub fn set_keep_alive(
&self,
value: bool,
) -> QueryResponseFut<BaseSocketSetKeepAliveResult, DefaultFuchsiaResourceDialect>
pub fn set_keep_alive( &self, value: bool, ) -> QueryResponseFut<BaseSocketSetKeepAliveResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_KEEPALIVE
.
Sourcepub fn get_keep_alive(
&self,
) -> QueryResponseFut<BaseSocketGetKeepAliveResult, DefaultFuchsiaResourceDialect>
pub fn get_keep_alive( &self, ) -> QueryResponseFut<BaseSocketGetKeepAliveResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_KEEPALIVE
.
Sourcepub fn set_out_of_band_inline(
&self,
value: bool,
) -> QueryResponseFut<BaseSocketSetOutOfBandInlineResult, DefaultFuchsiaResourceDialect>
pub fn set_out_of_band_inline( &self, value: bool, ) -> QueryResponseFut<BaseSocketSetOutOfBandInlineResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_OOBINLINE
.
Sourcepub fn get_out_of_band_inline(
&self,
) -> QueryResponseFut<BaseSocketGetOutOfBandInlineResult, DefaultFuchsiaResourceDialect>
pub fn get_out_of_band_inline( &self, ) -> QueryResponseFut<BaseSocketGetOutOfBandInlineResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_OOBINLINE
.
Sourcepub fn set_no_check(
&self,
value: bool,
) -> QueryResponseFut<BaseSocketSetNoCheckResult, DefaultFuchsiaResourceDialect>
pub fn set_no_check( &self, value: bool, ) -> QueryResponseFut<BaseSocketSetNoCheckResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_NO_CHECK
.
Sourcepub fn get_no_check(
&self,
) -> QueryResponseFut<BaseSocketGetNoCheckResult, DefaultFuchsiaResourceDialect>
pub fn get_no_check( &self, ) -> QueryResponseFut<BaseSocketGetNoCheckResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_NO_CHECK
.
Sourcepub fn set_linger(
&self,
linger: bool,
length_secs: u32,
) -> QueryResponseFut<BaseSocketSetLingerResult, DefaultFuchsiaResourceDialect>
pub fn set_linger( &self, linger: bool, length_secs: u32, ) -> QueryResponseFut<BaseSocketSetLingerResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_LINGER
.
Sourcepub fn get_linger(
&self,
) -> QueryResponseFut<BaseSocketGetLingerResult, DefaultFuchsiaResourceDialect>
pub fn get_linger( &self, ) -> QueryResponseFut<BaseSocketGetLingerResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_LINGER
.
Sourcepub fn set_reuse_port(
&self,
value: bool,
) -> QueryResponseFut<BaseSocketSetReusePortResult, DefaultFuchsiaResourceDialect>
pub fn set_reuse_port( &self, value: bool, ) -> QueryResponseFut<BaseSocketSetReusePortResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_REUSEPORT
.
Sourcepub fn get_reuse_port(
&self,
) -> QueryResponseFut<BaseSocketGetReusePortResult, DefaultFuchsiaResourceDialect>
pub fn get_reuse_port( &self, ) -> QueryResponseFut<BaseSocketGetReusePortResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_REUSEPORT
.
Sourcepub fn get_accept_conn(
&self,
) -> QueryResponseFut<BaseSocketGetAcceptConnResult, DefaultFuchsiaResourceDialect>
pub fn get_accept_conn( &self, ) -> QueryResponseFut<BaseSocketGetAcceptConnResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_ACCEPTCONN
.
Sourcepub fn set_bind_to_device(
&self,
value: &str,
) -> QueryResponseFut<BaseSocketSetBindToDeviceResult, DefaultFuchsiaResourceDialect>
pub fn set_bind_to_device( &self, value: &str, ) -> QueryResponseFut<BaseSocketSetBindToDeviceResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_BINDTODEVICE
.
Sourcepub fn get_bind_to_device(
&self,
) -> QueryResponseFut<BaseSocketGetBindToDeviceResult, DefaultFuchsiaResourceDialect>
pub fn get_bind_to_device( &self, ) -> QueryResponseFut<BaseSocketGetBindToDeviceResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_BINDTODEVICE
.
Sourcepub fn set_bind_to_interface_index(
&self,
value: u64,
) -> QueryResponseFut<BaseSocketSetBindToInterfaceIndexResult, DefaultFuchsiaResourceDialect>
pub fn set_bind_to_interface_index( &self, value: u64, ) -> QueryResponseFut<BaseSocketSetBindToInterfaceIndexResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_BINDTOIFINDEX
.
If value
is 0, this clears the bound interface.
Sourcepub fn get_bind_to_interface_index(
&self,
) -> QueryResponseFut<BaseSocketGetBindToInterfaceIndexResult, DefaultFuchsiaResourceDialect>
pub fn get_bind_to_interface_index( &self, ) -> QueryResponseFut<BaseSocketGetBindToInterfaceIndexResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_BINDTOIFINDEX
.
Sourcepub fn set_timestamp(
&self,
value: TimestampOption,
) -> QueryResponseFut<BaseSocketSetTimestampResult, DefaultFuchsiaResourceDialect>
pub fn set_timestamp( &self, value: TimestampOption, ) -> QueryResponseFut<BaseSocketSetTimestampResult, DefaultFuchsiaResourceDialect>
Set SOL_SOCKET
-> SO_TIMESTAMP
or SO_TIMESTAMPNS
.
Sourcepub fn get_timestamp(
&self,
) -> QueryResponseFut<BaseSocketGetTimestampResult, DefaultFuchsiaResourceDialect>
pub fn get_timestamp( &self, ) -> QueryResponseFut<BaseSocketGetTimestampResult, DefaultFuchsiaResourceDialect>
Get SOL_SOCKET
-> SO_TIMESTAMP
or SO_TIMESTAMPNS
.
Sourcepub fn set_mark(
&self,
domain: MarkDomain,
mark: &OptionalUint32,
) -> QueryResponseFut<BaseSocketSetMarkResult, DefaultFuchsiaResourceDialect>
pub fn set_mark( &self, domain: MarkDomain, mark: &OptionalUint32, ) -> QueryResponseFut<BaseSocketSetMarkResult, DefaultFuchsiaResourceDialect>
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,
) -> QueryResponseFut<BaseSocketGetMarkResult, DefaultFuchsiaResourceDialect>
pub fn get_mark( &self, domain: MarkDomain, ) -> QueryResponseFut<BaseSocketGetMarkResult, DefaultFuchsiaResourceDialect>
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, ) -> QueryResponseFut<SocketDescribeResponse, DefaultFuchsiaResourceDialect>
Sourcepub fn bind(
&self,
protocol: Option<&ProtocolAssociation>,
bound_interface_id: &BoundInterfaceId,
) -> QueryResponseFut<SocketBindResult, DefaultFuchsiaResourceDialect>
pub fn bind( &self, protocol: Option<&ProtocolAssociation>, bound_interface_id: &BoundInterfaceId, ) -> QueryResponseFut<SocketBindResult, DefaultFuchsiaResourceDialect>
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,
) -> QueryResponseFut<SocketGetInfoResult, DefaultFuchsiaResourceDialect>
pub fn get_info( &self, ) -> QueryResponseFut<SocketGetInfoResult, DefaultFuchsiaResourceDialect>
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,
) -> QueryResponseFut<SocketRecvMsgResult, DefaultFuchsiaResourceDialect>
pub fn recv_msg( &self, want_packet_info: bool, data_len: u32, want_control: bool, flags: RecvMsgFlags, ) -> QueryResponseFut<SocketRecvMsgResult, DefaultFuchsiaResourceDialect>
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,
) -> QueryResponseFut<SocketSendMsgResult, DefaultFuchsiaResourceDialect>
pub fn send_msg( &self, packet_info: Option<&PacketInfo>, data: &[u8], control: &SendControlData, flags: SendMsgFlags, ) -> QueryResponseFut<SocketSendMsgResult, DefaultFuchsiaResourceDialect>
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],
) -> QueryResponseFut<SocketAttachBpfFilterUnsafeResult, DefaultFuchsiaResourceDialect>
pub fn attach_bpf_filter_unsafe( &self, code: &[u64], ) -> QueryResponseFut<SocketAttachBpfFilterUnsafeResult, DefaultFuchsiaResourceDialect>
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 Clone for SocketProxy
impl Clone for SocketProxy
Source§fn clone(&self) -> SocketProxy
fn clone(&self) -> SocketProxy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SocketProxy
impl Debug for SocketProxy
Source§impl Proxy for SocketProxy
impl Proxy for SocketProxy
Source§type Protocol = SocketMarker
type Protocol = SocketMarker
Proxy
controls.Source§fn from_channel(inner: AsyncChannel) -> Self
fn from_channel(inner: AsyncChannel) -> Self
Source§fn into_channel(self) -> Result<AsyncChannel, Self>
fn into_channel(self) -> Result<AsyncChannel, Self>
Source§fn as_channel(&self) -> &AsyncChannel
fn as_channel(&self) -> &AsyncChannel
§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
Source§impl SocketProxyInterface for SocketProxy
impl SocketProxyInterface for SocketProxy
type CloseResponseFut = QueryResponseFut<Result<(), i32>>
type QueryResponseFut = QueryResponseFut<Vec<u8>>
type SetReuseAddressResponseFut = QueryResponseFut<Result<(), Errno>>
type GetReuseAddressResponseFut = QueryResponseFut<Result<bool, Errno>>
type GetErrorResponseFut = QueryResponseFut<Result<(), Errno>>
type SetBroadcastResponseFut = QueryResponseFut<Result<(), Errno>>
type GetBroadcastResponseFut = QueryResponseFut<Result<bool, Errno>>
type SetSendBufferResponseFut = QueryResponseFut<Result<(), Errno>>
type GetSendBufferResponseFut = QueryResponseFut<Result<u64, Errno>>
type SetReceiveBufferResponseFut = QueryResponseFut<Result<(), Errno>>
type GetReceiveBufferResponseFut = QueryResponseFut<Result<u64, Errno>>
type SetKeepAliveResponseFut = QueryResponseFut<Result<(), Errno>>
type GetKeepAliveResponseFut = QueryResponseFut<Result<bool, Errno>>
type SetOutOfBandInlineResponseFut = QueryResponseFut<Result<(), Errno>>
type GetOutOfBandInlineResponseFut = QueryResponseFut<Result<bool, Errno>>
type SetNoCheckResponseFut = QueryResponseFut<Result<(), Errno>>
type GetNoCheckResponseFut = QueryResponseFut<Result<bool, Errno>>
type SetLingerResponseFut = QueryResponseFut<Result<(), Errno>>
type GetLingerResponseFut = QueryResponseFut<Result<(bool, u32), Errno>>
type SetReusePortResponseFut = QueryResponseFut<Result<(), Errno>>
type GetReusePortResponseFut = QueryResponseFut<Result<bool, Errno>>
type GetAcceptConnResponseFut = QueryResponseFut<Result<bool, Errno>>
type SetBindToDeviceResponseFut = QueryResponseFut<Result<(), Errno>>
type GetBindToDeviceResponseFut = QueryResponseFut<Result<String, Errno>>
type SetBindToInterfaceIndexResponseFut = QueryResponseFut<Result<(), Errno>>
type GetBindToInterfaceIndexResponseFut = QueryResponseFut<Result<u64, Errno>>
type SetTimestampResponseFut = QueryResponseFut<Result<(), Errno>>
type GetTimestampResponseFut = QueryResponseFut<Result<TimestampOption, Errno>>
type SetMarkResponseFut = QueryResponseFut<Result<(), Errno>>
type GetMarkResponseFut = QueryResponseFut<Result<OptionalUint32, Errno>>
type DescribeResponseFut = QueryResponseFut<SocketDescribeResponse>
type BindResponseFut = QueryResponseFut<Result<(), Errno>>
type GetInfoResponseFut = QueryResponseFut<Result<(Kind, Option<Box<ProtocolAssociation>>, BoundInterface), Errno>>
type RecvMsgResponseFut = QueryResponseFut<Result<(Option<Box<RecvPacketInfo>>, Vec<u8>, RecvControlData, u32), Errno>>
type SendMsgResponseFut = QueryResponseFut<Result<(), Errno>>
type AttachBpfFilterUnsafeResponseFut = QueryResponseFut<Result<(), Errno>>
fn clone2(&self, request: ServerEnd<CloneableMarker>) -> Result<(), Error>
fn close(&self) -> Self::CloseResponseFut
fn query(&self) -> Self::QueryResponseFut
fn set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut
fn get_reuse_address(&self) -> Self::GetReuseAddressResponseFut
fn get_error(&self) -> Self::GetErrorResponseFut
fn set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut
fn get_broadcast(&self) -> Self::GetBroadcastResponseFut
fn set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut
fn get_send_buffer(&self) -> Self::GetSendBufferResponseFut
fn set_receive_buffer( &self, value_bytes: u64, ) -> Self::SetReceiveBufferResponseFut
fn get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut
fn set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut
fn get_keep_alive(&self) -> Self::GetKeepAliveResponseFut
fn set_out_of_band_inline( &self, value: bool, ) -> Self::SetOutOfBandInlineResponseFut
fn get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut
fn set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut
fn get_no_check(&self) -> Self::GetNoCheckResponseFut
fn set_linger( &self, linger: bool, length_secs: u32, ) -> Self::SetLingerResponseFut
fn get_linger(&self) -> Self::GetLingerResponseFut
fn set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut
fn get_reuse_port(&self) -> Self::GetReusePortResponseFut
fn get_accept_conn(&self) -> Self::GetAcceptConnResponseFut
fn set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut
fn get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut
fn set_bind_to_interface_index( &self, value: u64, ) -> Self::SetBindToInterfaceIndexResponseFut
fn get_bind_to_interface_index( &self, ) -> Self::GetBindToInterfaceIndexResponseFut
fn set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut
fn get_timestamp(&self) -> Self::GetTimestampResponseFut
fn set_mark( &self, domain: MarkDomain, mark: &OptionalUint32, ) -> Self::SetMarkResponseFut
fn get_mark(&self, domain: MarkDomain) -> Self::GetMarkResponseFut
fn describe(&self) -> Self::DescribeResponseFut
fn bind( &self, protocol: Option<&ProtocolAssociation>, bound_interface_id: &BoundInterfaceId, ) -> Self::BindResponseFut
fn get_info(&self) -> Self::GetInfoResponseFut
fn recv_msg( &self, want_packet_info: bool, data_len: u32, want_control: bool, flags: RecvMsgFlags, ) -> Self::RecvMsgResponseFut
fn send_msg( &self, packet_info: Option<&PacketInfo>, data: &[u8], control: &SendControlData, flags: SendMsgFlags, ) -> Self::SendMsgResponseFut
fn attach_bpf_filter_unsafe( &self, code: &[u64], ) -> Self::AttachBpfFilterUnsafeResponseFut
Auto Trait Implementations§
impl Freeze for SocketProxy
impl !RefUnwindSafe for SocketProxy
impl Send for SocketProxy
impl Sync for SocketProxy
impl Unpin for SocketProxy
impl !UnwindSafe for SocketProxy
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)