mirror of https://github.com/mkerrisk/man-pages
688 lines
18 KiB
Groff
688 lines
18 KiB
Groff
'\" t
|
|
.\" Don't change the first line, it tells man that we need tbl.
|
|
.\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
|
|
.\" and copyright (c) 1999 Matthew Wilcox.
|
|
.\" Permission is granted to distribute possibly modified copies
|
|
.\" of this page provided the header is included verbatim,
|
|
.\" and in case of nontrivial modification author and date
|
|
.\" of the modification is added to the header.
|
|
.\"
|
|
.\" 2002-10-30, Michael Kerrisk, <mtk-manpages@gmx.net>
|
|
.\" Added description of SO_ACCEPTCONN
|
|
.\" 2004-05-20, aeb, added SO_RCVTIMEO/SO_SNDTIMEO text.
|
|
.\" Modified, 27 May 2004, Michael Kerrisk <mtk-manpages@gmx.net>
|
|
.\" Added notes on capability requirements
|
|
.\" A few small grammar fixes
|
|
.\"
|
|
.\" FIXME probably all PF_* should be AF_* in this page, since
|
|
.\" POSIX only specifies the latter values.
|
|
.\"
|
|
.TH SOCKET 7 2004-05-27 "Linux 2.6.6" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
socket \- Linux socket interface
|
|
.SH SYNOPSIS
|
|
.B #include <sys/socket.h>
|
|
.br
|
|
.IB mysocket " = socket(int " socket_family ", int " socket_type ", int " protocol );
|
|
|
|
.SH DESCRIPTION
|
|
This manual page describes the Linux networking socket layer user
|
|
interface. The BSD compatible sockets
|
|
are the uniform interface
|
|
between the user process and the network protocol stacks in the kernel.
|
|
The protocol modules are grouped into
|
|
.I protocol families
|
|
like
|
|
.BR PF_INET ", " PF_IPX ", " PF_PACKET
|
|
and
|
|
.I socket types
|
|
like
|
|
.B SOCK_STREAM
|
|
or
|
|
.BR SOCK_DGRAM .
|
|
See
|
|
.BR socket (2)
|
|
for more information on families and types.
|
|
|
|
.SH "SOCKET LAYER FUNCTIONS"
|
|
These functions are used by the user process to send or receive packets
|
|
and to do other socket operations.
|
|
For more information see their respective manual pages.
|
|
|
|
.BR socket (2)
|
|
creates a socket,
|
|
.BR connect (2)
|
|
connects a socket to a remote socket address,
|
|
the
|
|
.BR bind (2)
|
|
function binds a socket to a local socket address,
|
|
.BR listen (2)
|
|
tells the socket that new connections shall be accepted, and
|
|
.BR accept (2)
|
|
is used to get a new socket with a new incoming connection.
|
|
.BR socketpair (2)
|
|
returns two connected anonymous sockets (only implemented for a few
|
|
local families like
|
|
.BR PF_UNIX )
|
|
.PP
|
|
.BR send (2),
|
|
.BR sendto (2),
|
|
and
|
|
.BR sendmsg (2)
|
|
send data over a socket, and
|
|
.BR recv (2),
|
|
.BR recvfrom (2),
|
|
.BR recvmsg (2)
|
|
receive data from a socket.
|
|
.BR poll (2)
|
|
and
|
|
.BR select (2)
|
|
wait for arriving data or a readiness to send data.
|
|
In addition, the standard I/O operations like
|
|
.BR write (2),
|
|
.BR writev (2),
|
|
.BR sendfile (2),
|
|
.BR read (2),
|
|
and
|
|
.BR readv (2)
|
|
can be used to read and write data.
|
|
.PP
|
|
.BR getsockname (2)
|
|
returns the local socket address and
|
|
.BR getpeername (2)
|
|
returns the remote socket address.
|
|
.BR getsockopt (2)
|
|
and
|
|
.BR setsockopt (2)
|
|
are used to set or get socket layer or protocol options.
|
|
.BR ioctl (2)
|
|
can be used to set or read some other options.
|
|
.PP
|
|
.BR close (2)
|
|
is used to close a socket.
|
|
.BR shutdown (2)
|
|
closes parts of a full duplex socket connection.
|
|
.PP
|
|
Seeking, or calling
|
|
.BR pread (2)
|
|
or
|
|
.BR pwrite (2)
|
|
with a non-zero position is not supported on sockets.
|
|
.PP
|
|
It is possible to do non-blocking I/O on sockets by setting the
|
|
.B O_NONBLOCK
|
|
flag on a socket file descriptor using
|
|
.BR fcntl (2).
|
|
Then all operations that would block will (usually)
|
|
return with
|
|
.B EAGAIN
|
|
(operation should be retried later);
|
|
.BR connect (2)
|
|
will return
|
|
.B EINPROGRESS
|
|
error.
|
|
The user can then wait for various events via
|
|
.BR poll (2)
|
|
or
|
|
.BR select (2).
|
|
.PP
|
|
.TS
|
|
tab(:) allbox;
|
|
c s s
|
|
l l l.
|
|
I/O events
|
|
Event:Poll flag:Occurrence
|
|
Read:POLLIN:T{
|
|
New data arrived.
|
|
T}
|
|
Read:POLLIN:T{
|
|
A connection setup has been completed
|
|
(for connection-oriented sockets)
|
|
T}
|
|
Read:POLLHUP:T{
|
|
A disconnection request has been initiated by the other end.
|
|
T}
|
|
Read:POLLHUP:T{
|
|
A connection is broken (only for connection-oriented protocols).
|
|
When the socket is written
|
|
.B SIGPIPE
|
|
is also sent.
|
|
T}
|
|
Write:POLLOUT:T{
|
|
Socket has enough send buffer space for writing new data.
|
|
T}
|
|
Read/Write:T{
|
|
POLLIN|
|
|
.br
|
|
POLLOUT
|
|
T}:T{
|
|
An outgoing
|
|
.BR connect (2)
|
|
finished.
|
|
T}
|
|
Read/Write:POLLERR:An asynchronous error occurred.
|
|
Read/Write:POLLHUP:The other end has shut down one direction.
|
|
Exception:POLLPRI:T{
|
|
Urgent data arrived.
|
|
.B SIGURG
|
|
is sent then.
|
|
T}
|
|
.\" FIXME The following is not true currently:
|
|
.\" It is no I/O event when the connection
|
|
.\" is broken from the local end using
|
|
.\" .BR shutdown (2)
|
|
.\" or
|
|
.\" .BR close (2).
|
|
.TE
|
|
|
|
.PP
|
|
An alternative to
|
|
.BR poll ()
|
|
and
|
|
.BR select ()
|
|
is to let the kernel inform the application about events
|
|
via a
|
|
.B SIGIO
|
|
signal. For that the
|
|
.B FASYNC
|
|
flag must be set on a socket file descriptor via
|
|
.BR fcntl (2)
|
|
and a valid signal handler for
|
|
.B SIGIO
|
|
must be installed via
|
|
.BR sigaction (2).
|
|
See the
|
|
.I SIGNALS
|
|
discussion below.
|
|
.SH "SOCKET OPTIONS"
|
|
These socket options can be set by using
|
|
.BR setsockopt (2)
|
|
and read with
|
|
.BR getsockopt (2)
|
|
with the socket level set to
|
|
.B SOL_SOCKET
|
|
for all sockets:
|
|
.\" SO_ACCEPTCONN is in POSIX.1-2001, and its origin is explained in
|
|
.\" W R Stevens, UNPv1
|
|
.TP
|
|
.B SO_ACCEPTCONN
|
|
Returns a value indicating whether or not this socket has been marked
|
|
to accept connections with
|
|
.BR listen ().
|
|
The value 0 indicates that this is not a listening socket,
|
|
the value 1 indicates that this is a listening socket.
|
|
Can only be read
|
|
with
|
|
.BR getsockopt ().
|
|
.TP
|
|
.B SO_BSDCOMPAT
|
|
Enable BSD bug-to-bug compatibility.
|
|
This is used by the UDP protocol module in Linux 2.0 and 2.2.
|
|
If enabled ICMP errors received for a UDP socket will not be passed
|
|
to the user program.
|
|
In later kernel versions, support for this option has been phased out:
|
|
Linux 2.4 silently ignores it, and Linux 2.6 generates a kernel warning
|
|
(printk()) if a program uses this option.
|
|
Linux 2.0 also enabled BSD bug-to-bug compatibility
|
|
options (random header changing, skipping of the broadcast flag) for raw
|
|
sockets with this option, but that was removed in Linux 2.2.
|
|
.TP
|
|
.B SO_BINDTODEVICE
|
|
Bind this socket to a particular device like \(lqeth0\(rq,
|
|
as specified in the passed interface name. If the
|
|
name is an empty string or the option length is zero, the socket device
|
|
binding is removed. The passed option is a variable-length null terminated
|
|
interface name string with the maximum size of
|
|
.BR IFNAMSIZ .
|
|
If a socket is bound to an interface,
|
|
only packets received from that particular interface are processed by the
|
|
socket. Note that this only works for some socket types, particularly
|
|
.B AF_INET
|
|
sockets. It is not supported for packet sockets (use normal
|
|
.BR bind (8)
|
|
there).
|
|
.TP
|
|
.B SO_BROADCAST
|
|
Set or get the broadcast flag. When enabled, datagram sockets
|
|
receive packets sent to a broadcast address and they are allowed to send
|
|
packets to a broadcast address.
|
|
This option has no effect on stream-oriented sockets.
|
|
.TP
|
|
.B SO_DEBUG
|
|
Enable socket debugging. Only allowed for processes with the
|
|
.B CAP_NET_ADMIN
|
|
capability or an effective user ID of 0.
|
|
.TP
|
|
.B SO_ERROR
|
|
Get and clear the pending socket error. Only valid as a
|
|
.BR getsockopt ().
|
|
Expects an integer.
|
|
.TP
|
|
.B SO_DONTROUTE
|
|
Don't send via a gateway, only send to directly connected hosts.
|
|
The same effect can be achieved by setting the
|
|
.B MSG_DONTROUTE
|
|
flag on a socket
|
|
.BR send (2)
|
|
operation. Expects an integer boolean flag.
|
|
.TP
|
|
.B SO_KEEPALIVE
|
|
Enable sending of keep-alive messages on connection-oriented sockets.
|
|
Expects an integer boolean flag.
|
|
.TP
|
|
.B SO_LINGER
|
|
Sets or gets the
|
|
.B SO_LINGER
|
|
option. The argument is a
|
|
.I linger
|
|
structure.
|
|
.sp
|
|
.in +0.25i
|
|
.nf
|
|
struct linger {
|
|
int l_onoff; /* linger active */
|
|
int l_linger; /* how many seconds to linger for */
|
|
};
|
|
.fi
|
|
.in -0.25i
|
|
.IP
|
|
When enabled, a
|
|
.BR close (2)
|
|
or
|
|
.BR shutdown (2)
|
|
will not return until all queued messages for the socket have been
|
|
successfully sent or the linger timeout has been reached. Otherwise,
|
|
the call returns immediately and the closing is done in the background.
|
|
When the socket is closed as part of
|
|
.BR exit (2),
|
|
it always lingers in the background.
|
|
.TP
|
|
.B SO_OOBINLINE
|
|
If this option is enabled,
|
|
out-of-band data is directly placed into the receive data stream.
|
|
Otherwise out-of-band data is only passed when the
|
|
.B MSG_OOB
|
|
flag is set during receiving.
|
|
.\" don't document it because it can do too much harm.
|
|
.\".B SO_NO_CHECK
|
|
.TP
|
|
.B SO_PASSCRED
|
|
Enable or disable the receiving of the
|
|
.B SCM_CREDENTIALS
|
|
control message. For more information see
|
|
.BR unix (7).
|
|
.TP
|
|
.B SO_PEERCRED
|
|
Return the credentials of the foreign process connected to this socket.
|
|
This is only possible for connected
|
|
.B PF_UNIX
|
|
stream sockets and
|
|
.B PF_UNIX
|
|
stream and datagram socket pairs created using
|
|
.BR socketpair (2);
|
|
see
|
|
.BR unix (7).
|
|
The returned credentials are those that were in effect at the time
|
|
of the call to
|
|
.BR connect (2)
|
|
or
|
|
.BR socketpair (2).
|
|
Argument is a
|
|
.I ucred
|
|
structure.
|
|
Only valid as a
|
|
.BR getsockopt ().
|
|
.TP
|
|
.B SO_PRIORITY
|
|
Set the protocol-defined priority for all packets to be sent on
|
|
this socket.
|
|
Linux uses this value to order the networking queues:
|
|
packets with a higher priority may be processed first depending
|
|
on the selected device queueing discipline.
|
|
For
|
|
.BR ip (7),
|
|
this also sets the IP type-of-service (TOS) field for outgoing packets.
|
|
Setting a priority outside the range 0 to 6 requires the
|
|
.B CAP_NET_ADMIN
|
|
capability.
|
|
.TP
|
|
.BR SO_RCVLOWAT " and " SO_SNDLOWAT
|
|
Specify the minimum number of bytes in the buffer until the socket layer
|
|
will pass the data to the protocol
|
|
.RB ( SO_SNDLOWAT )
|
|
or the user on receiving
|
|
.RB ( SO_RCVLOWAT ).
|
|
These two values are initialised to 1.
|
|
.B SO_SNDLOWAT
|
|
is not changeable on Linux
|
|
.RB ( setsockopt
|
|
fails with the error
|
|
.BR ENOPROTOOPT ).
|
|
.BR SO_RCVLOWAT
|
|
is changeable
|
|
only since Linux 2.4.
|
|
The
|
|
.BR select (2)
|
|
and
|
|
.BR poll (2)
|
|
system calls currently do not respect the
|
|
.B SO_RCVLOWAT
|
|
setting on Linux,
|
|
and mark a socket readable when even a single byte of data is available.
|
|
A subsequent read from the socket will block until
|
|
.BR SO_RCVLOWAT
|
|
bytes are available.
|
|
.\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=111049368106984&w=2
|
|
.\" Tested on kernel 2.6.14 -- mtk, 30 Nov 05
|
|
.TP
|
|
.BR SO_RCVTIMEO " and " SO_SNDTIMEO
|
|
.\" Not implemented in 2.0.
|
|
.\" Implemented in 2.1.11 for getsockopt: always return a zero struct.
|
|
.\" Implemented in 2.3.41 for setsockopt, and actually used.
|
|
Specify the receiving or sending timeouts until reporting an error.
|
|
The parameter is a
|
|
.IR "struct timeval" .
|
|
If an input or output function blocks for this period of time, and
|
|
data has been sent or received, the return value of that function
|
|
will be the amount of data transferred; if no data has been transferred
|
|
and the timeout has been reached then \-1 is returned with
|
|
.I errno
|
|
set to EAGAIN or EWOULDBLOCK
|
|
.\" in fact to EAGAIN
|
|
just as if the socket was specified to be nonblocking.
|
|
If the timeout is set to zero (the default)
|
|
then the operation will never timeout.
|
|
.TP
|
|
.B SO_RCVBUF
|
|
Sets or gets the maximum socket receive buffer in bytes.
|
|
The kernel doubles this value (to allow space for bookkeeping overhead)
|
|
when it is set using
|
|
.\" Most (all?) other implementations do not do this -- MTK, Dec 05
|
|
.BR setsockopt (),
|
|
and this doubled value is returned by
|
|
.BR getsockopt ().
|
|
The default value is set by the
|
|
.B rmem_default
|
|
sysctl and the maximum allowed value is set by the
|
|
.B rmem_max
|
|
sysctl.
|
|
The minimum (doubled) value for this option is 256.
|
|
.TP
|
|
.BR SO_RCVBUFFORCE " (since Linux 2.6.14")
|
|
Using this socket option, a privileged
|
|
.RB ( CAP_NET_ADMIN )
|
|
process can perform the same task as
|
|
.BR SO_RCVBUF ,
|
|
but the
|
|
.B rmem_max
|
|
limit can be overridden.
|
|
.TP
|
|
.B SO_REUSEADDR
|
|
Indicates that the rules used in validating addresses supplied in a
|
|
.BR bind (2)
|
|
call should allow reuse of local addresses. For
|
|
.B PF_INET
|
|
sockets this
|
|
means that a socket may bind, except when there
|
|
is an active listening socket bound to the address.
|
|
When the listening socket is bound to
|
|
.B INADDR_ANY
|
|
with a specific port then it is not possible
|
|
to bind to this port for any local address.
|
|
.TP
|
|
.B SO_SNDBUF
|
|
Sets or gets the maximum socket send buffer in bytes.
|
|
The kernel doubles this value (to allow space for bookkeeping overhead)
|
|
when it is set using
|
|
.\" Most (all?) other implementations do not do this -- MTK, Dec 05
|
|
.BR setsockopt (),
|
|
and this doubled value is returned by
|
|
.BR getsockopt ().
|
|
The default value is set by the
|
|
.B wmem_default
|
|
sysctl and the maximum allowed value is set by the
|
|
.B wmem_max
|
|
sysctl.
|
|
The minimum (doubled) value for this option is 2048.
|
|
.TP
|
|
.BR SO_SNDBUFFORCE " (since Linux 2.6.14")
|
|
Using this socket option, a privileged
|
|
.RB ( CAP_NET_ADMIN )
|
|
process can perform the same task as
|
|
.BR SO_SNDBUF ,
|
|
but the
|
|
.B wmem_max
|
|
limit can be overridden.
|
|
.TP
|
|
.B SO_TIMESTAMP
|
|
Enable or disable the receiving of the
|
|
.B SO_TIMESTAMP
|
|
control message.
|
|
The timestamp control message is sent with level
|
|
.B SOL_SOCKET
|
|
and the
|
|
.I cmsg_data
|
|
field is a
|
|
.I "struct timeval"
|
|
indicating the
|
|
reception time of the last packet passed to the user in this call.
|
|
See
|
|
.BR cmsg (3)
|
|
for details on control messages.
|
|
.TP
|
|
.B SO_TYPE
|
|
Gets the socket type as an integer (like
|
|
.BR SOCK_STREAM ).
|
|
Can only be read
|
|
with
|
|
.BR getsockopt ().
|
|
.SH SIGNALS
|
|
When writing onto a connection-oriented socket that has been shut down
|
|
(by the local or the remote end)
|
|
.B SIGPIPE
|
|
is sent to the writing process and
|
|
.B EPIPE
|
|
is returned.
|
|
The signal is not sent when the write call
|
|
specified the
|
|
.B MSG_NOSIGNAL
|
|
flag.
|
|
.PP
|
|
When requested with the
|
|
.B FIOSETOWN
|
|
.BR fcntl ()
|
|
or
|
|
.B SIOCSPGRP
|
|
.BR ioctl (),
|
|
.B SIGIO
|
|
is sent when an I/O event occurs. It is possible to use
|
|
.BR poll (2)
|
|
or
|
|
.BR select (2)
|
|
in the signal handler to find out which socket the event occurred on.
|
|
An alternative (in Linux 2.2) is to set a realtime signal using the
|
|
.B F_SETSIG
|
|
.BR fcntl ();
|
|
the handler of the real time signal will be called with
|
|
the file descriptor in the
|
|
.I si_fd
|
|
field of its
|
|
.IR siginfo_t .
|
|
See
|
|
.BR fcntl (2)
|
|
for more information.
|
|
.PP
|
|
Under some circumstances (e.g. multiple processes accessing a
|
|
single socket), the condition that caused the
|
|
.B SIGIO
|
|
may have already disappeared when the process reacts to the signal.
|
|
If this happens, the process should wait again because Linux
|
|
will resend the signal later.
|
|
.\" .SH ANCILLARY MESSAGES
|
|
.SH SYSCTLS
|
|
The core socket networking sysctls can be accessed using the
|
|
.I /proc/sys/net/core/*
|
|
files or with the
|
|
.BR sysctl (2)
|
|
interface.
|
|
.TP
|
|
.B rmem_default
|
|
contains the default setting in bytes of the socket receive buffer.
|
|
.TP
|
|
.B rmem_max
|
|
contains the maximum socket receive buffer size in bytes which a user may
|
|
set by using the
|
|
.B SO_RCVBUF
|
|
socket option.
|
|
.TP
|
|
.B wmem_default
|
|
contains the default setting in bytes of the socket send buffer.
|
|
.TP
|
|
.B wmem_max
|
|
contains the maximum socket send buffer size in bytes which a user may
|
|
set by using the
|
|
.B SO_SNDBUF
|
|
socket option.
|
|
.TP
|
|
.BR message_cost " and " message_burst
|
|
configure the token bucket filter used to load limit warning messages
|
|
caused by external network events.
|
|
.TP
|
|
.B netdev_max_backlog
|
|
Maximum number of packets in the global input queue.
|
|
.TP
|
|
.B optmem_max
|
|
Maximum length of ancillary data and user control data like the iovecs
|
|
per socket.
|
|
.\" netdev_fastroute is not documented because it is experimental
|
|
.SH IOCTLS
|
|
These operations can be accessed using
|
|
.BR ioctl (2):
|
|
|
|
.in +0.25i
|
|
.nf
|
|
.IB error " = ioctl(" ip_socket ", " ioctl_type ", " &value_result ");"
|
|
.fi
|
|
.in -0.25i
|
|
|
|
.TP
|
|
.B SIOCGSTAMP
|
|
Return a
|
|
.I struct timeval
|
|
with the receive timestamp of the last packet passed to the user.
|
|
This is useful for accurate round trip time measurements.
|
|
See
|
|
.BR setitimer (2)
|
|
for a description of
|
|
.IR "struct timeval" .
|
|
.\"
|
|
This ioctl should only be used if the socket option
|
|
.B SO_TIMESTAMP
|
|
is not set on the socket.
|
|
Otherwise, it returns the timestamp of the
|
|
last packet that was received while
|
|
.B SO_TIMESTAMP
|
|
was not set, or it fails if no such packet has been received,
|
|
(i.e.,
|
|
.BR ioctl ()
|
|
returns \-1 with
|
|
.I errno
|
|
set to
|
|
.BR ENOENT ).
|
|
.TP
|
|
.BR SIOCSPGRP
|
|
Set the process or process group to send
|
|
.B SIGIO
|
|
or
|
|
.B SIGURG
|
|
signals
|
|
to when an
|
|
asynchronous I/O operation has finished or urgent data is available.
|
|
The argument is a pointer to a
|
|
.BR pid_t .
|
|
If the argument is positive, send the signals to that process. If the
|
|
argument is negative, send the signals to the process group with the ID
|
|
of the absolute value of the argument.
|
|
The process may only choose itself or its own process group to receive
|
|
signals unless it has the
|
|
.B CAP_KILL
|
|
capability or an effective UID of 0.
|
|
.TP
|
|
.B FIOASYNC
|
|
Change the
|
|
.B O_ASYNC
|
|
flag to enable or disable asynchronous I/O mode of the socket.
|
|
Asynchronous I/O mode means that the
|
|
.B SIGIO
|
|
signal or the signal set with
|
|
.B F_SETSIG
|
|
is raised when a new I/O event occurs.
|
|
.IP
|
|
Argument is an integer boolean flag.
|
|
.\"
|
|
.TP
|
|
.BR SIOCGPGRP
|
|
Get the current process or process group that receives
|
|
.B SIGIO
|
|
or
|
|
.B SIGURG
|
|
signals,
|
|
or 0
|
|
when none is set.
|
|
.PP
|
|
Valid
|
|
.BR fcntl ()
|
|
operations:
|
|
.TP
|
|
.BR FIOGETOWN
|
|
The same as the SIOCGPGRP
|
|
.BR ioctl ().
|
|
.TP
|
|
.BR FIOSETOWN
|
|
The same as the SIOCSPGRP
|
|
.BR ioctl ().
|
|
.SH NOTES
|
|
Linux assumes that half of the send/receive buffer is used for internal
|
|
kernel structures; thus the sysctls are twice what can be observed
|
|
on the wire.
|
|
|
|
Linux will only allow port re-use with the SO_REUSEADDR option
|
|
when this option was set both in the previous program that performed a
|
|
.BR bind ()
|
|
to the port and in the program that wants to re-use the port.
|
|
This differs from some implementations (e.g., FreeBSD)
|
|
where only the later program needs to set the SO_REUSEADDR option.
|
|
Typically this difference is invisible, since, for example, a server
|
|
program is designed to always set this option.
|
|
.SH BUGS
|
|
The
|
|
.B CONFIG_FILTER
|
|
socket options
|
|
.B SO_ATTACH_FILTER
|
|
and
|
|
.B SO_DETACH_FILTER
|
|
are
|
|
not documented. The suggested interface to use them is via the libpcap
|
|
library.
|
|
.SH VERSIONS
|
|
.B SO_BINDTODEVICE
|
|
was introduced in Linux 2.0.30.
|
|
.B SO_PASSCRED
|
|
is new in Linux 2.2.
|
|
The sysctls are new in Linux 2.2.
|
|
.B SO_RCVTIMEO
|
|
and
|
|
.B SO_SNDTIMEO
|
|
are supported since Linux 2.3.41. Earlier, timeouts were fixed to
|
|
a protocol specific setting, and could not be read or written.
|
|
.\" .SH AUTHORS
|
|
.\" This man page was written by Andi Kleen.
|
|
.SH "SEE ALSO"
|
|
.BR getsockopt (2),
|
|
.BR setsockopt (2),
|
|
.BR socket (2),
|
|
.BR capabilities (7),
|
|
.BR ddp (7),
|
|
.BR ip (7),
|
|
.BR packet (7)
|