Next: Network Feature Testing, Previous: Network Processes, Up: Low-Level Network [Contents][Index]

#### 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.

Next: Network Feature Testing, Previous: Network Processes, Up: Low-Level Network [Contents][Index]