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