elisp: Network Options
36.17.2 Network Options
-----------------------
The following network options can be specified when you create a network
process. Except for ‘:reuseaddr’, you can also set or modify these
options later, using ‘set-network-process-option’.
For a server process, the options specified with
‘make-network-process’ are not inherited by the client connections, so
you will need to set the necessary options for each child connection as
it is created.
:bindtodevice DEVICE-NAME
If DEVICE-NAME is a non-empty string identifying a network
interface name (see ‘network-interface-list’), only handle packets
received on that interface. If DEVICE-NAME is ‘nil’ (the default),
handle packets received on any interface.
Using this option may require special privileges on some systems.
:broadcast BROADCAST-FLAG
If BROADCAST-FLAG is non-‘nil’ for a datagram process, the process
will receive datagram packet sent to a broadcast address, and be
able to send packets to a broadcast address. This is ignored for a
stream connection.
:dontroute DONTROUTE-FLAG
If DONTROUTE-FLAG is non-‘nil’, the process can only send to hosts
on the same network as the local host.
:keepalive KEEPALIVE-FLAG
If KEEPALIVE-FLAG is non-‘nil’ for a stream connection, enable
exchange of low-level keep-alive messages.
:linger LINGER-ARG
If LINGER-ARG is non-‘nil’, wait for successful transmission of all
queued packets on the connection before it is deleted (see
‘delete-process’). If LINGER-ARG is an integer, it specifies the
maximum time in seconds to wait for queued packets to be sent
before closing the connection. The default is ‘nil’, which means
to discard unsent queued packets when the process is deleted.
:oobinline OOBINLINE-FLAG
If OOBINLINE-FLAG is non-‘nil’ for a stream connection, receive
out-of-band data in the normal data stream. Otherwise, ignore
out-of-band data.
:priority PRIORITY
Set the priority for packets sent on this connection to the integer
PRIORITY. The interpretation of this number is protocol specific;
such as setting the TOS (type of service) field on IP packets sent
on this connection. It may also have system dependent effects,
such as selecting a specific output queue on the network interface.
:reuseaddr REUSEADDR-FLAG
If REUSEADDR-FLAG is non-‘nil’ (the default) for a stream server
process, allow this server to reuse a specific port number (see
‘:service’), unless another process on this host is already
listening on that port. If REUSEADDR-FLAG is ‘nil’, there may be a
period of time after the last use of that port (by any process on
the host) where it is not possible to make a new server on that
port.
-- Function: set-network-process-option process option value &optional
no-error
This function sets or modifies a network option for network process
PROCESS. The accepted options and values are as for
‘make-network-process’. If NO-ERROR is non-‘nil’, this function
returns ‘nil’ instead of signaling an error if OPTION is not a
supported option. If the function successfully completes, it
returns ‘t’.
The current setting of an option is available via the
‘process-contact’ function.