Type for structure used with PR_GetSocketOption and PR_SetSocketOption to specify options for file descriptors that represent sockets.

Syntax

#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

PRSocketOptionData is a name-value pair for a socket option. The option field (of enumeration type PRSockOption) specifies the name of the socket option, and the value field (a union of all possible values) specifies the value of the option.