Expand description
A safer abstraction for setsockopt
and getsockopt
.
These system calls are very open-ended, supporting a variety of different operations with different argument and result types. Passing the wrong kind of value to the wrong command can cause memory corruption.
To make these a little safer to use, this module provides option
constants that also include information about the argument and result
types, so that the super::File::setsockopt
and
super::File::getsockopt
methods can then provide a type-safe interface
as long as these constants are defined correctly.
This module defines constants for the main sockets API options. Protocol-specific options might also be available in other modules, or potentially in other crates.
Structs
Implementation of both
SetSockOpt
and GetSockOpt
with fixed level
and optname
values, passing the arg type directly through to the
underlying system calls.Implementation of just
GetSockOpt
with fixed level
and optname
values, similar to DirectSockOpt
but for read-only options.Constants
The sockopt “level” for general socket options that are not protocol-specific.
Indicates whether or not this socket has been marked to accept connections
e.g. using
super::File::listen
.Returns the protocol/address family for this socket.
Send only to directly-connected hosts, ignoring any configured gateway.
Send period keepalive messages on connection-oriented sockets.
Traits
Implemented by options that can be used with
getsockopt
.Implemented by options that can be used with
setsockopt
.Functions
Constructs a new “simple” socket option whose safe-facing argument
type is the same as its internal type and whose level and option name
are fixed.
Constructs a new “simple” socket option that is read-only.