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.
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.
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.
If dontroute-flag is non-nil
, the process can only send
to hosts on the same network as the local host.
If keepalive-flag is non-nil
for a stream connection,
enable exchange of low-level keep-alive messages.
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.
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.
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.
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.
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.