-Options other than SO_LINGER take an
-.I int
-parameter, which should non-zero if the option is to be
-enabled, or zero if it is to be disabled; SO_LINGER
-uses a
-.I struct linger
-parameter, defined in
-.RI < sys/socket.h >,
-which specifies the desired state of the option and the
-linger interval (see below).
-.PP
-.RS
-.DT
-.nf
-SO_DEBUG turn on recording of debugging information
-SO_REUSEADDR allow local address reuse
-SO_KEEPALIVE keep connections alive
-SO_DONTROUTE do not route outgoing messages
-SO_LINGER linger on close if data present
-SO_BROADCAST permit transmission of broadcast messages
-.fi
-.RE
-.PP
-SO_DEBUG enables debugging in the underlying protocol modules.
-SO_REUSEADDR indicates the rules used in validating addresses supplied
-in a
-.IR bind (2)
-call should allow reuse of local addresses. SO_KEEPALIVE enables the
-periodic transmission of messages on a connected socket. Should the
-connected party fail to respond to these messages, the connection is
-considered broken and processes using the socket are notified via a
-SIGPIPE signal. SO_DONTROUTE indicates that outgoing messages should
-bypass the standard routing facilities. Instead, messages are directed
-to the appropriate network interface according to the network portion
-of the destination address. SO_LINGER
-controls the action taken when unsent messags
-are queued on socket and a
-.IR close (2)
-is performed.
-If the socket promises reliable delivery of data and SO_LINGER is set,
-the system will block the process on the
-.I close
-attempt until it is able to transmit the data or until it decides it
-is unable to deliver the information (a timeout period, termed the
-linger interval, is specified in the
-.IR setsockopt
-call when SO_LINGER is requested).
-If SO_LINGER is disabled and a
-.I close
-is issued, the system will process the close in a manner that allows
-the process to continue as quickly as possible.
-.SH "RETURN VALUE
-A \-1 is returned if an error occurs, otherwise the return