Source code
Revision control
Copy as Markdown
Other Tools
PRSocketOptionData
==================
Type for structure used with :ref:`PR_GetSocketOption` and
:ref:`PR_SetSocketOption` to specify options for file descriptors that
represent sockets.
Syntax
------
.. code::
#include <prio.h>
typedef struct PRSocketOptionData
{
PRSockOption option;
union
{
PRUintn ip_ttl;
PRUintn mcast_ttl;
PRUintn tos;
PRBool non_blocking;
PRBool reuse_addr;
PRBool keep_alive;
PRBool mcast_loopback;
PRBool no_delay;
PRSize max_segment;
PRSize recv_buffer_size;
PRSize send_buffer_size;
PRLinger linger;
PRMcastRequest add_member;
PRMcastRequest drop_member;
PRNetAddr mcast_if;
} value;
} PRSocketOptionData;
Fields
~~~~~~
The structure has the following fields:
``ip_ttl``
IP time-to-live.
``mcast_ttl``
IP multicast time-to-live.
``tos``
IP type-of-service and precedence.
``non_blocking``
Nonblocking (network) I/O.
``reuse_addr``
Allow local address reuse.
``keep_alive``
Periodically test whether connection is still alive.
``mcast_loopback``
IP multicast loopback.
``no_delay``
Disable Nagle algorithm. Don't delay send to coalesce packets.
``max_segment``
TCP maximum segment size.
``recv_buffer_size``
Receive buffer size.
``send_buffer_size``
Send buffer size.
``linger``
Time to linger on close if data are present in socket send buffer.
``add_member``
Join an IP multicast group.
``drop_member``
Leave an IP multicast group.
``mcast_if``
IP multicast interface address.
Description
~~~~~~~~~~~
:ref:`PRSocketOptionData` is a name-value pair for a socket option. The
``option`` field (of enumeration type :ref:`PRSockOption`) specifies the
name of the socket option, and the ``value`` field (a union of all
possible values) specifies the value of the option.