/* */
DEFINITIONS
This source file includes following definitions.
- init_constants
- rsock_family_to_int
- rsock_socktype_to_int
- rsock_ipproto_to_int
- rsock_unknown_level_to_int
- rsock_ip_level_to_int
- rsock_so_optname_to_int
- rsock_ip_optname_to_int
- rsock_ipv6_optname_to_int
- rsock_tcp_optname_to_int
- rsock_udp_optname_to_int
- rsock_shutdown_how_to_int
- rsock_scm_optname_to_int
- rsock_intern_family
- rsock_intern_family_noprefix
- rsock_intern_protocol_family
- rsock_intern_socktype
- rsock_intern_ipproto
- rsock_intern_iplevel
- rsock_intern_so_optname
- rsock_intern_ip_optname
- rsock_intern_ipv6_optname
- rsock_intern_tcp_optname
- rsock_intern_udp_optname
- rsock_intern_scm_optname
- rsock_intern_local_optname
/* autogenerated file */
static st_table *rsock_intern_family_hash;
static st_table *rsock_intern_family_noprefix_hash;
static st_table *rsock_intern_protocol_family_hash;
static st_table *rsock_intern_socktype_hash;
static st_table *rsock_intern_ipproto_hash;
static st_table *rsock_intern_iplevel_hash;
static st_table *rsock_intern_so_optname_hash;
static st_table *rsock_intern_ip_optname_hash;
static st_table *rsock_intern_ipv6_optname_hash;
static st_table *rsock_intern_tcp_optname_hash;
static st_table *rsock_intern_udp_optname_hash;
static st_table *rsock_intern_scm_optname_hash;
static st_table *rsock_intern_local_optname_hash;
#ifdef HAVE_LONG_LONG
#define INTEGER2NUM(n) \
(FIXNUM_MAX < (n) ? ULL2NUM(n) : \
FIXNUM_MIN > (LONG_LONG)(n) ? LL2NUM(n) : \
LONG2FIX(n))
#else
#define INTEGER2NUM(n) \
(FIXNUM_MAX < (n) ? ULONG2NUM(n) : \
FIXNUM_MIN > (long)(n) ? LONG2NUM(n) : \
LONG2FIX(n))
#endif
static void
init_constants(void)
{
/*
* Document-module: Socket::Constants
*
* Socket::Constants provides socket-related constants. All possible
* socket constants are listed in the documentation but they may not all
* be present on your platform.
*
* If the underlying platform doesn't define a constant the corresponding
* Ruby constant is not defined.
*
*/
rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants");
#if defined(SOCK_STREAM)
/* A stream socket provides a sequenced, reliable two-way connection for a byte stream */
rb_define_const(rb_cSocket, "SOCK_STREAM", INTEGER2NUM(SOCK_STREAM));
/* A stream socket provides a sequenced, reliable two-way connection for a byte stream */
rb_define_const(rb_mSockConst, "SOCK_STREAM", INTEGER2NUM(SOCK_STREAM));
#endif
#if defined(SOCK_DGRAM)
/* A datagram socket provides connectionless, unreliable messaging */
rb_define_const(rb_cSocket, "SOCK_DGRAM", INTEGER2NUM(SOCK_DGRAM));
/* A datagram socket provides connectionless, unreliable messaging */
rb_define_const(rb_mSockConst, "SOCK_DGRAM", INTEGER2NUM(SOCK_DGRAM));
#endif
#if defined(SOCK_RAW)
/* A raw socket provides low-level access for direct access or implementing network protocols */
rb_define_const(rb_cSocket, "SOCK_RAW", INTEGER2NUM(SOCK_RAW));
/* A raw socket provides low-level access for direct access or implementing network protocols */
rb_define_const(rb_mSockConst, "SOCK_RAW", INTEGER2NUM(SOCK_RAW));
#endif
#if defined(SOCK_RDM)
/* A reliable datagram socket provides reliable delivery of messages */
rb_define_const(rb_cSocket, "SOCK_RDM", INTEGER2NUM(SOCK_RDM));
/* A reliable datagram socket provides reliable delivery of messages */
rb_define_const(rb_mSockConst, "SOCK_RDM", INTEGER2NUM(SOCK_RDM));
#endif
#if defined(SOCK_SEQPACKET)
/* A sequential packet socket provides sequenced, reliable two-way connection for datagrams */
rb_define_const(rb_cSocket, "SOCK_SEQPACKET", INTEGER2NUM(SOCK_SEQPACKET));
/* A sequential packet socket provides sequenced, reliable two-way connection for datagrams */
rb_define_const(rb_mSockConst, "SOCK_SEQPACKET", INTEGER2NUM(SOCK_SEQPACKET));
#endif
#if defined(SOCK_PACKET)
/* Device-level packet access */
rb_define_const(rb_cSocket, "SOCK_PACKET", INTEGER2NUM(SOCK_PACKET));
/* Device-level packet access */
rb_define_const(rb_mSockConst, "SOCK_PACKET", INTEGER2NUM(SOCK_PACKET));
#endif
#if defined(AF_UNSPEC)
/* Unspecified protocol, any supported address family */
rb_define_const(rb_cSocket, "AF_UNSPEC", INTEGER2NUM(AF_UNSPEC));
/* Unspecified protocol, any supported address family */
rb_define_const(rb_mSockConst, "AF_UNSPEC", INTEGER2NUM(AF_UNSPEC));
#endif
#if defined(PF_UNSPEC)
/* Unspecified protocol, any supported address family */
rb_define_const(rb_cSocket, "PF_UNSPEC", INTEGER2NUM(PF_UNSPEC));
/* Unspecified protocol, any supported address family */
rb_define_const(rb_mSockConst, "PF_UNSPEC", INTEGER2NUM(PF_UNSPEC));
#endif
#if defined(AF_INET)
/* IPv4 protocol */
rb_define_const(rb_cSocket, "AF_INET", INTEGER2NUM(AF_INET));
/* IPv4 protocol */
rb_define_const(rb_mSockConst, "AF_INET", INTEGER2NUM(AF_INET));
#endif
#if defined(PF_INET)
/* IPv4 protocol */
rb_define_const(rb_cSocket, "PF_INET", INTEGER2NUM(PF_INET));
/* IPv4 protocol */
rb_define_const(rb_mSockConst, "PF_INET", INTEGER2NUM(PF_INET));
#endif
#if defined(INET6)
#if defined(AF_INET6)
/* IPv6 protocol */
rb_define_const(rb_cSocket, "AF_INET6", INTEGER2NUM(AF_INET6));
/* IPv6 protocol */
rb_define_const(rb_mSockConst, "AF_INET6", INTEGER2NUM(AF_INET6));
#endif
#endif
#if defined(INET6)
#if defined(PF_INET6)
/* IPv6 protocol */
rb_define_const(rb_cSocket, "PF_INET6", INTEGER2NUM(PF_INET6));
/* IPv6 protocol */
rb_define_const(rb_mSockConst, "PF_INET6", INTEGER2NUM(PF_INET6));
#endif
#endif
#if defined(AF_UNIX)
/* UNIX sockets */
rb_define_const(rb_cSocket, "AF_UNIX", INTEGER2NUM(AF_UNIX));
/* UNIX sockets */
rb_define_const(rb_mSockConst, "AF_UNIX", INTEGER2NUM(AF_UNIX));
#endif
#if defined(PF_UNIX)
/* UNIX sockets */
rb_define_const(rb_cSocket, "PF_UNIX", INTEGER2NUM(PF_UNIX));
/* UNIX sockets */
rb_define_const(rb_mSockConst, "PF_UNIX", INTEGER2NUM(PF_UNIX));
#endif
#if defined(AF_AX25)
/* AX.25 protocol */
rb_define_const(rb_cSocket, "AF_AX25", INTEGER2NUM(AF_AX25));
/* AX.25 protocol */
rb_define_const(rb_mSockConst, "AF_AX25", INTEGER2NUM(AF_AX25));
#endif
#if defined(PF_AX25)
/* AX.25 protocol */
rb_define_const(rb_cSocket, "PF_AX25", INTEGER2NUM(PF_AX25));
/* AX.25 protocol */
rb_define_const(rb_mSockConst, "PF_AX25", INTEGER2NUM(PF_AX25));
#endif
#if defined(AF_IPX)
/* IPX protocol */
rb_define_const(rb_cSocket, "AF_IPX", INTEGER2NUM(AF_IPX));
/* IPX protocol */
rb_define_const(rb_mSockConst, "AF_IPX", INTEGER2NUM(AF_IPX));
#endif
#if defined(PF_IPX)
/* IPX protocol */
rb_define_const(rb_cSocket, "PF_IPX", INTEGER2NUM(PF_IPX));
/* IPX protocol */
rb_define_const(rb_mSockConst, "PF_IPX", INTEGER2NUM(PF_IPX));
#endif
#if defined(AF_APPLETALK)
/* AppleTalk protocol */
rb_define_const(rb_cSocket, "AF_APPLETALK", INTEGER2NUM(AF_APPLETALK));
/* AppleTalk protocol */
rb_define_const(rb_mSockConst, "AF_APPLETALK", INTEGER2NUM(AF_APPLETALK));
#endif
#if defined(PF_APPLETALK)
/* AppleTalk protocol */
rb_define_const(rb_cSocket, "PF_APPLETALK", INTEGER2NUM(PF_APPLETALK));
/* AppleTalk protocol */
rb_define_const(rb_mSockConst, "PF_APPLETALK", INTEGER2NUM(PF_APPLETALK));
#endif
#if defined(AF_LOCAL)
/* Host-internal protocols */
rb_define_const(rb_cSocket, "AF_LOCAL", INTEGER2NUM(AF_LOCAL));
/* Host-internal protocols */
rb_define_const(rb_mSockConst, "AF_LOCAL", INTEGER2NUM(AF_LOCAL));
#endif
#if defined(PF_LOCAL)
/* Host-internal protocols */
rb_define_const(rb_cSocket, "PF_LOCAL", INTEGER2NUM(PF_LOCAL));
/* Host-internal protocols */
rb_define_const(rb_mSockConst, "PF_LOCAL", INTEGER2NUM(PF_LOCAL));
#endif
#if defined(AF_IMPLINK)
/* ARPANET IMP protocol */
rb_define_const(rb_cSocket, "AF_IMPLINK", INTEGER2NUM(AF_IMPLINK));
/* ARPANET IMP protocol */
rb_define_const(rb_mSockConst, "AF_IMPLINK", INTEGER2NUM(AF_IMPLINK));
#endif
#if defined(PF_IMPLINK)
/* ARPANET IMP protocol */
rb_define_const(rb_cSocket, "PF_IMPLINK", INTEGER2NUM(PF_IMPLINK));
/* ARPANET IMP protocol */
rb_define_const(rb_mSockConst, "PF_IMPLINK", INTEGER2NUM(PF_IMPLINK));
#endif
#if defined(AF_PUP)
/* PARC Universal Packet protocol */
rb_define_const(rb_cSocket, "AF_PUP", INTEGER2NUM(AF_PUP));
/* PARC Universal Packet protocol */
rb_define_const(rb_mSockConst, "AF_PUP", INTEGER2NUM(AF_PUP));
#endif
#if defined(PF_PUP)
/* PARC Universal Packet protocol */
rb_define_const(rb_cSocket, "PF_PUP", INTEGER2NUM(PF_PUP));
/* PARC Universal Packet protocol */
rb_define_const(rb_mSockConst, "PF_PUP", INTEGER2NUM(PF_PUP));
#endif
#if defined(AF_CHAOS)
/* MIT CHAOS protocols */
rb_define_const(rb_cSocket, "AF_CHAOS", INTEGER2NUM(AF_CHAOS));
/* MIT CHAOS protocols */
rb_define_const(rb_mSockConst, "AF_CHAOS", INTEGER2NUM(AF_CHAOS));
#endif
#if defined(PF_CHAOS)
/* MIT CHAOS protocols */
rb_define_const(rb_cSocket, "PF_CHAOS", INTEGER2NUM(PF_CHAOS));
/* MIT CHAOS protocols */
rb_define_const(rb_mSockConst, "PF_CHAOS", INTEGER2NUM(PF_CHAOS));
#endif
#if defined(AF_NS)
/* XEROX NS protocols */
rb_define_const(rb_cSocket, "AF_NS", INTEGER2NUM(AF_NS));
/* XEROX NS protocols */
rb_define_const(rb_mSockConst, "AF_NS", INTEGER2NUM(AF_NS));
#endif
#if defined(PF_NS)
/* XEROX NS protocols */
rb_define_const(rb_cSocket, "PF_NS", INTEGER2NUM(PF_NS));
/* XEROX NS protocols */
rb_define_const(rb_mSockConst, "PF_NS", INTEGER2NUM(PF_NS));
#endif
#if defined(AF_ISO)
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_cSocket, "AF_ISO", INTEGER2NUM(AF_ISO));
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_mSockConst, "AF_ISO", INTEGER2NUM(AF_ISO));
#endif
#if defined(PF_ISO)
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_cSocket, "PF_ISO", INTEGER2NUM(PF_ISO));
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_mSockConst, "PF_ISO", INTEGER2NUM(PF_ISO));
#endif
#if defined(AF_OSI)
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_cSocket, "AF_OSI", INTEGER2NUM(AF_OSI));
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_mSockConst, "AF_OSI", INTEGER2NUM(AF_OSI));
#endif
#if defined(PF_OSI)
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_cSocket, "PF_OSI", INTEGER2NUM(PF_OSI));
/* ISO Open Systems Interconnection protocols */
rb_define_const(rb_mSockConst, "PF_OSI", INTEGER2NUM(PF_OSI));
#endif
#if defined(AF_ECMA)
/* European Computer Manufacturers protocols */
rb_define_const(rb_cSocket, "AF_ECMA", INTEGER2NUM(AF_ECMA));
/* European Computer Manufacturers protocols */
rb_define_const(rb_mSockConst, "AF_ECMA", INTEGER2NUM(AF_ECMA));
#endif
#if defined(PF_ECMA)
/* European Computer Manufacturers protocols */
rb_define_const(rb_cSocket, "PF_ECMA", INTEGER2NUM(PF_ECMA));
/* European Computer Manufacturers protocols */
rb_define_const(rb_mSockConst, "PF_ECMA", INTEGER2NUM(PF_ECMA));
#endif
#if defined(AF_DATAKIT)
/* Datakit protocol */
rb_define_const(rb_cSocket, "AF_DATAKIT", INTEGER2NUM(AF_DATAKIT));
/* Datakit protocol */
rb_define_const(rb_mSockConst, "AF_DATAKIT", INTEGER2NUM(AF_DATAKIT));
#endif
#if defined(PF_DATAKIT)
/* Datakit protocol */
rb_define_const(rb_cSocket, "PF_DATAKIT", INTEGER2NUM(PF_DATAKIT));
/* Datakit protocol */
rb_define_const(rb_mSockConst, "PF_DATAKIT", INTEGER2NUM(PF_DATAKIT));
#endif
#if defined(AF_CCITT)
/* CCITT (now ITU-T) protocols */
rb_define_const(rb_cSocket, "AF_CCITT", INTEGER2NUM(AF_CCITT));
/* CCITT (now ITU-T) protocols */
rb_define_const(rb_mSockConst, "AF_CCITT", INTEGER2NUM(AF_CCITT));
#endif
#if defined(PF_CCITT)
/* CCITT (now ITU-T) protocols */
rb_define_const(rb_cSocket, "PF_CCITT", INTEGER2NUM(PF_CCITT));
/* CCITT (now ITU-T) protocols */
rb_define_const(rb_mSockConst, "PF_CCITT", INTEGER2NUM(PF_CCITT));
#endif
#if defined(AF_SNA)
/* IBM SNA protocol */
rb_define_const(rb_cSocket, "AF_SNA", INTEGER2NUM(AF_SNA));
/* IBM SNA protocol */
rb_define_const(rb_mSockConst, "AF_SNA", INTEGER2NUM(AF_SNA));
#endif
#if defined(PF_SNA)
/* IBM SNA protocol */
rb_define_const(rb_cSocket, "PF_SNA", INTEGER2NUM(PF_SNA));
/* IBM SNA protocol */
rb_define_const(rb_mSockConst, "PF_SNA", INTEGER2NUM(PF_SNA));
#endif
#if defined(AF_DEC)
/* DECnet protocol */
rb_define_const(rb_cSocket, "AF_DEC", INTEGER2NUM(AF_DEC));
/* DECnet protocol */
rb_define_const(rb_mSockConst, "AF_DEC", INTEGER2NUM(AF_DEC));
#endif
#if defined(PF_DEC)
/* DECnet protocol */
rb_define_const(rb_cSocket, "PF_DEC", INTEGER2NUM(PF_DEC));
/* DECnet protocol */
rb_define_const(rb_mSockConst, "PF_DEC", INTEGER2NUM(PF_DEC));
#endif
#if defined(AF_DLI)
/* DEC Direct Data Link Interface protocol */
rb_define_const(rb_cSocket, "AF_DLI", INTEGER2NUM(AF_DLI));
/* DEC Direct Data Link Interface protocol */
rb_define_const(rb_mSockConst, "AF_DLI", INTEGER2NUM(AF_DLI));
#endif
#if defined(PF_DLI)
/* DEC Direct Data Link Interface protocol */
rb_define_const(rb_cSocket, "PF_DLI", INTEGER2NUM(PF_DLI));
/* DEC Direct Data Link Interface protocol */
rb_define_const(rb_mSockConst, "PF_DLI", INTEGER2NUM(PF_DLI));
#endif
#if defined(AF_LAT)
/* Local Area Transport protocol */
rb_define_const(rb_cSocket, "AF_LAT", INTEGER2NUM(AF_LAT));
/* Local Area Transport protocol */
rb_define_const(rb_mSockConst, "AF_LAT", INTEGER2NUM(AF_LAT));
#endif
#if defined(PF_LAT)
/* Local Area Transport protocol */
rb_define_const(rb_cSocket, "PF_LAT", INTEGER2NUM(PF_LAT));
/* Local Area Transport protocol */
rb_define_const(rb_mSockConst, "PF_LAT", INTEGER2NUM(PF_LAT));
#endif
#if defined(AF_HYLINK)
/* NSC Hyperchannel protocol */
rb_define_const(rb_cSocket, "AF_HYLINK", INTEGER2NUM(AF_HYLINK));
/* NSC Hyperchannel protocol */
rb_define_const(rb_mSockConst, "AF_HYLINK", INTEGER2NUM(AF_HYLINK));
#endif
#if defined(PF_HYLINK)
/* NSC Hyperchannel protocol */
rb_define_const(rb_cSocket, "PF_HYLINK", INTEGER2NUM(PF_HYLINK));
/* NSC Hyperchannel protocol */
rb_define_const(rb_mSockConst, "PF_HYLINK", INTEGER2NUM(PF_HYLINK));
#endif
#if defined(AF_ROUTE)
/* Internal routing protocol */
rb_define_const(rb_cSocket, "AF_ROUTE", INTEGER2NUM(AF_ROUTE));
/* Internal routing protocol */
rb_define_const(rb_mSockConst, "AF_ROUTE", INTEGER2NUM(AF_ROUTE));
#endif
#if defined(PF_ROUTE)
/* Internal routing protocol */
rb_define_const(rb_cSocket, "PF_ROUTE", INTEGER2NUM(PF_ROUTE));
/* Internal routing protocol */
rb_define_const(rb_mSockConst, "PF_ROUTE", INTEGER2NUM(PF_ROUTE));
#endif
#if defined(AF_LINK)
/* Link layer interface */
rb_define_const(rb_cSocket, "AF_LINK", INTEGER2NUM(AF_LINK));
/* Link layer interface */
rb_define_const(rb_mSockConst, "AF_LINK", INTEGER2NUM(AF_LINK));
#endif
#if defined(PF_LINK)
/* Link layer interface */
rb_define_const(rb_cSocket, "PF_LINK", INTEGER2NUM(PF_LINK));
/* Link layer interface */
rb_define_const(rb_mSockConst, "PF_LINK", INTEGER2NUM(PF_LINK));
#endif
#if defined(AF_COIP)
/* Connection-oriented IP */
rb_define_const(rb_cSocket, "AF_COIP", INTEGER2NUM(AF_COIP));
/* Connection-oriented IP */
rb_define_const(rb_mSockConst, "AF_COIP", INTEGER2NUM(AF_COIP));
#endif
#if defined(PF_COIP)
/* Connection-oriented IP */
rb_define_const(rb_cSocket, "PF_COIP", INTEGER2NUM(PF_COIP));
/* Connection-oriented IP */
rb_define_const(rb_mSockConst, "PF_COIP", INTEGER2NUM(PF_COIP));
#endif
#if defined(AF_CNT)
/* Computer Network Technology */
rb_define_const(rb_cSocket, "AF_CNT", INTEGER2NUM(AF_CNT));
/* Computer Network Technology */
rb_define_const(rb_mSockConst, "AF_CNT", INTEGER2NUM(AF_CNT));
#endif
#if defined(PF_CNT)
/* Computer Network Technology */
rb_define_const(rb_cSocket, "PF_CNT", INTEGER2NUM(PF_CNT));
/* Computer Network Technology */
rb_define_const(rb_mSockConst, "PF_CNT", INTEGER2NUM(PF_CNT));
#endif
#if defined(AF_SIP)
/* Simple Internet Protocol */
rb_define_const(rb_cSocket, "AF_SIP", INTEGER2NUM(AF_SIP));
/* Simple Internet Protocol */
rb_define_const(rb_mSockConst, "AF_SIP", INTEGER2NUM(AF_SIP));
#endif
#if defined(PF_SIP)
/* Simple Internet Protocol */
rb_define_const(rb_cSocket, "PF_SIP", INTEGER2NUM(PF_SIP));
/* Simple Internet Protocol */
rb_define_const(rb_mSockConst, "PF_SIP", INTEGER2NUM(PF_SIP));
#endif
#if defined(AF_NDRV)
/* Network driver raw access */
rb_define_const(rb_cSocket, "AF_NDRV", INTEGER2NUM(AF_NDRV));
/* Network driver raw access */
rb_define_const(rb_mSockConst, "AF_NDRV", INTEGER2NUM(AF_NDRV));
#endif
#if defined(PF_NDRV)
/* Network driver raw access */
rb_define_const(rb_cSocket, "PF_NDRV", INTEGER2NUM(PF_NDRV));
/* Network driver raw access */
rb_define_const(rb_mSockConst, "PF_NDRV", INTEGER2NUM(PF_NDRV));
#endif
#if defined(AF_ISDN)
/* Integrated Services Digital Network */
rb_define_const(rb_cSocket, "AF_ISDN", INTEGER2NUM(AF_ISDN));
/* Integrated Services Digital Network */
rb_define_const(rb_mSockConst, "AF_ISDN", INTEGER2NUM(AF_ISDN));
#endif
#if defined(PF_ISDN)
/* Integrated Services Digital Network */
rb_define_const(rb_cSocket, "PF_ISDN", INTEGER2NUM(PF_ISDN));
/* Integrated Services Digital Network */
rb_define_const(rb_mSockConst, "PF_ISDN", INTEGER2NUM(PF_ISDN));
#endif
#if defined(AF_NATM)
/* Native ATM access */
rb_define_const(rb_cSocket, "AF_NATM", INTEGER2NUM(AF_NATM));
/* Native ATM access */
rb_define_const(rb_mSockConst, "AF_NATM", INTEGER2NUM(AF_NATM));
#endif
#if defined(PF_NATM)
/* Native ATM access */
rb_define_const(rb_cSocket, "PF_NATM", INTEGER2NUM(PF_NATM));
/* Native ATM access */
rb_define_const(rb_mSockConst, "PF_NATM", INTEGER2NUM(PF_NATM));
#endif
#if defined(AF_SYSTEM)
/* */
rb_define_const(rb_cSocket, "AF_SYSTEM", INTEGER2NUM(AF_SYSTEM));
/* */
rb_define_const(rb_mSockConst, "AF_SYSTEM", INTEGER2NUM(AF_SYSTEM));
#endif
#if defined(PF_SYSTEM)
/* */
rb_define_const(rb_cSocket, "PF_SYSTEM", INTEGER2NUM(PF_SYSTEM));
/* */
rb_define_const(rb_mSockConst, "PF_SYSTEM", INTEGER2NUM(PF_SYSTEM));
#endif
#if defined(AF_NETBIOS)
/* NetBIOS */
rb_define_const(rb_cSocket, "AF_NETBIOS", INTEGER2NUM(AF_NETBIOS));
/* NetBIOS */
rb_define_const(rb_mSockConst, "AF_NETBIOS", INTEGER2NUM(AF_NETBIOS));
#endif
#if defined(PF_NETBIOS)
/* NetBIOS */
rb_define_const(rb_cSocket, "PF_NETBIOS", INTEGER2NUM(PF_NETBIOS));
/* NetBIOS */
rb_define_const(rb_mSockConst, "PF_NETBIOS", INTEGER2NUM(PF_NETBIOS));
#endif
#if defined(AF_PPP)
/* Point-to-Point Protocol */
rb_define_const(rb_cSocket, "AF_PPP", INTEGER2NUM(AF_PPP));
/* Point-to-Point Protocol */
rb_define_const(rb_mSockConst, "AF_PPP", INTEGER2NUM(AF_PPP));
#endif
#if defined(PF_PPP)
/* Point-to-Point Protocol */
rb_define_const(rb_cSocket, "PF_PPP", INTEGER2NUM(PF_PPP));
/* Point-to-Point Protocol */
rb_define_const(rb_mSockConst, "PF_PPP", INTEGER2NUM(PF_PPP));
#endif
#if defined(AF_ATM)
/* Asynchronous Transfer Mode */
rb_define_const(rb_cSocket, "AF_ATM", INTEGER2NUM(AF_ATM));
/* Asynchronous Transfer Mode */
rb_define_const(rb_mSockConst, "AF_ATM", INTEGER2NUM(AF_ATM));
#endif
#if defined(PF_ATM)
/* Asynchronous Transfer Mode */
rb_define_const(rb_cSocket, "PF_ATM", INTEGER2NUM(PF_ATM));
/* Asynchronous Transfer Mode */
rb_define_const(rb_mSockConst, "PF_ATM", INTEGER2NUM(PF_ATM));
#endif
#if defined(AF_NETGRAPH)
/* Netgraph sockets */
rb_define_const(rb_cSocket, "AF_NETGRAPH", INTEGER2NUM(AF_NETGRAPH));
/* Netgraph sockets */
rb_define_const(rb_mSockConst, "AF_NETGRAPH", INTEGER2NUM(AF_NETGRAPH));
#endif
#if defined(PF_NETGRAPH)
/* Netgraph sockets */
rb_define_const(rb_cSocket, "PF_NETGRAPH", INTEGER2NUM(PF_NETGRAPH));
/* Netgraph sockets */
rb_define_const(rb_mSockConst, "PF_NETGRAPH", INTEGER2NUM(PF_NETGRAPH));
#endif
#if defined(AF_MAX)
/* Maximum address family for this platform */
rb_define_const(rb_cSocket, "AF_MAX", INTEGER2NUM(AF_MAX));
/* Maximum address family for this platform */
rb_define_const(rb_mSockConst, "AF_MAX", INTEGER2NUM(AF_MAX));
#endif
#if defined(PF_MAX)
/* Maximum address family for this platform */
rb_define_const(rb_cSocket, "PF_MAX", INTEGER2NUM(PF_MAX));
/* Maximum address family for this platform */
rb_define_const(rb_mSockConst, "PF_MAX", INTEGER2NUM(PF_MAX));
#endif
#if defined(AF_PACKET)
/* Direct link-layer access */
rb_define_const(rb_cSocket, "AF_PACKET", INTEGER2NUM(AF_PACKET));
/* Direct link-layer access */
rb_define_const(rb_mSockConst, "AF_PACKET", INTEGER2NUM(AF_PACKET));
#endif
#if defined(PF_PACKET)
/* Direct link-layer access */
rb_define_const(rb_cSocket, "PF_PACKET", INTEGER2NUM(PF_PACKET));
/* Direct link-layer access */
rb_define_const(rb_mSockConst, "PF_PACKET", INTEGER2NUM(PF_PACKET));
#endif
#if defined(AF_E164)
/* CCITT (ITU-T) E.164 recommendation */
rb_define_const(rb_cSocket, "AF_E164", INTEGER2NUM(AF_E164));
/* CCITT (ITU-T) E.164 recommendation */
rb_define_const(rb_mSockConst, "AF_E164", INTEGER2NUM(AF_E164));
#endif
#if defined(PF_XTP)
/* eXpress Transfer Protocol */
rb_define_const(rb_cSocket, "PF_XTP", INTEGER2NUM(PF_XTP));
/* eXpress Transfer Protocol */
rb_define_const(rb_mSockConst, "PF_XTP", INTEGER2NUM(PF_XTP));
#endif
#if defined(PF_RTIP)
/* */
rb_define_const(rb_cSocket, "PF_RTIP", INTEGER2NUM(PF_RTIP));
/* */
rb_define_const(rb_mSockConst, "PF_RTIP", INTEGER2NUM(PF_RTIP));
#endif
#if defined(PF_PIP)
/* */
rb_define_const(rb_cSocket, "PF_PIP", INTEGER2NUM(PF_PIP));
/* */
rb_define_const(rb_mSockConst, "PF_PIP", INTEGER2NUM(PF_PIP));
#endif
#if defined(PF_KEY)
/* */
rb_define_const(rb_cSocket, "PF_KEY", INTEGER2NUM(PF_KEY));
/* */
rb_define_const(rb_mSockConst, "PF_KEY", INTEGER2NUM(PF_KEY));
#endif
#if defined(MSG_OOB)
/* Process out-of-band data */
rb_define_const(rb_cSocket, "MSG_OOB", INTEGER2NUM(MSG_OOB));
/* Process out-of-band data */
rb_define_const(rb_mSockConst, "MSG_OOB", INTEGER2NUM(MSG_OOB));
#endif
#if defined(MSG_PEEK)
/* Peek at incoming message */
rb_define_const(rb_cSocket, "MSG_PEEK", INTEGER2NUM(MSG_PEEK));
/* Peek at incoming message */
rb_define_const(rb_mSockConst, "MSG_PEEK", INTEGER2NUM(MSG_PEEK));
#endif
#if defined(MSG_DONTROUTE)
/* Send without using the routing tables */
rb_define_const(rb_cSocket, "MSG_DONTROUTE", INTEGER2NUM(MSG_DONTROUTE));
/* Send without using the routing tables */
rb_define_const(rb_mSockConst, "MSG_DONTROUTE", INTEGER2NUM(MSG_DONTROUTE));
#endif
#if defined(MSG_EOR)
/* Data completes record */
rb_define_const(rb_cSocket, "MSG_EOR", INTEGER2NUM(MSG_EOR));
/* Data completes record */
rb_define_const(rb_mSockConst, "MSG_EOR", INTEGER2NUM(MSG_EOR));
#endif
#if defined(MSG_TRUNC)
/* Data discarded before delivery */
rb_define_const(rb_cSocket, "MSG_TRUNC", INTEGER2NUM(MSG_TRUNC));
/* Data discarded before delivery */
rb_define_const(rb_mSockConst, "MSG_TRUNC", INTEGER2NUM(MSG_TRUNC));
#endif
#if defined(MSG_CTRUNC)
/* Control data lost before delivery */
rb_define_const(rb_cSocket, "MSG_CTRUNC", INTEGER2NUM(MSG_CTRUNC));
/* Control data lost before delivery */
rb_define_const(rb_mSockConst, "MSG_CTRUNC", INTEGER2NUM(MSG_CTRUNC));
#endif
#if defined(MSG_WAITALL)
/* Wait for full request or error */
rb_define_const(rb_cSocket, "MSG_WAITALL", INTEGER2NUM(MSG_WAITALL));
/* Wait for full request or error */
rb_define_const(rb_mSockConst, "MSG_WAITALL", INTEGER2NUM(MSG_WAITALL));
#endif
#if defined(MSG_DONTWAIT)
/* This message should be non-blocking */
rb_define_const(rb_cSocket, "MSG_DONTWAIT", INTEGER2NUM(MSG_DONTWAIT));
/* This message should be non-blocking */
rb_define_const(rb_mSockConst, "MSG_DONTWAIT", INTEGER2NUM(MSG_DONTWAIT));
#endif
#if defined(MSG_EOF)
/* Data completes connection */
rb_define_const(rb_cSocket, "MSG_EOF", INTEGER2NUM(MSG_EOF));
/* Data completes connection */
rb_define_const(rb_mSockConst, "MSG_EOF", INTEGER2NUM(MSG_EOF));
#endif
#if defined(MSG_FLUSH)
/* Start of a hold sequence. Dumps to so_temp */
rb_define_const(rb_cSocket, "MSG_FLUSH", INTEGER2NUM(MSG_FLUSH));
/* Start of a hold sequence. Dumps to so_temp */
rb_define_const(rb_mSockConst, "MSG_FLUSH", INTEGER2NUM(MSG_FLUSH));
#endif
#if defined(MSG_HOLD)
/* Hold fragment in so_temp */
rb_define_const(rb_cSocket, "MSG_HOLD", INTEGER2NUM(MSG_HOLD));
/* Hold fragment in so_temp */
rb_define_const(rb_mSockConst, "MSG_HOLD", INTEGER2NUM(MSG_HOLD));
#endif
#if defined(MSG_SEND)
/* Send the packet in so_temp */
rb_define_const(rb_cSocket, "MSG_SEND", INTEGER2NUM(MSG_SEND));
/* Send the packet in so_temp */
rb_define_const(rb_mSockConst, "MSG_SEND", INTEGER2NUM(MSG_SEND));
#endif
#if defined(MSG_HAVEMORE)
/* Data ready to be read */
rb_define_const(rb_cSocket, "MSG_HAVEMORE", INTEGER2NUM(MSG_HAVEMORE));
/* Data ready to be read */
rb_define_const(rb_mSockConst, "MSG_HAVEMORE", INTEGER2NUM(MSG_HAVEMORE));
#endif
#if defined(MSG_RCVMORE)
/* Data remains in the current packet */
rb_define_const(rb_cSocket, "MSG_RCVMORE", INTEGER2NUM(MSG_RCVMORE));
/* Data remains in the current packet */
rb_define_const(rb_mSockConst, "MSG_RCVMORE", INTEGER2NUM(MSG_RCVMORE));
#endif
#if defined(MSG_COMPAT)
/* End of record */
rb_define_const(rb_cSocket, "MSG_COMPAT", INTEGER2NUM(MSG_COMPAT));
/* End of record */
rb_define_const(rb_mSockConst, "MSG_COMPAT", INTEGER2NUM(MSG_COMPAT));
#endif
#if defined(MSG_PROXY)
/* Wait for full request */
rb_define_const(rb_cSocket, "MSG_PROXY", INTEGER2NUM(MSG_PROXY));
/* Wait for full request */
rb_define_const(rb_mSockConst, "MSG_PROXY", INTEGER2NUM(MSG_PROXY));
#endif
#if defined(MSG_FIN)
/* */
rb_define_const(rb_cSocket, "MSG_FIN", INTEGER2NUM(MSG_FIN));
/* */
rb_define_const(rb_mSockConst, "MSG_FIN", INTEGER2NUM(MSG_FIN));
#endif
#if defined(MSG_SYN)
/* */
rb_define_const(rb_cSocket, "MSG_SYN", INTEGER2NUM(MSG_SYN));
/* */
rb_define_const(rb_mSockConst, "MSG_SYN", INTEGER2NUM(MSG_SYN));
#endif
#if defined(MSG_CONFIRM)
/* Confirm path validity */
rb_define_const(rb_cSocket, "MSG_CONFIRM", INTEGER2NUM(MSG_CONFIRM));
/* Confirm path validity */
rb_define_const(rb_mSockConst, "MSG_CONFIRM", INTEGER2NUM(MSG_CONFIRM));
#endif
#if defined(MSG_RST)
/* */
rb_define_const(rb_cSocket, "MSG_RST", INTEGER2NUM(MSG_RST));
/* */
rb_define_const(rb_mSockConst, "MSG_RST", INTEGER2NUM(MSG_RST));
#endif
#if defined(MSG_ERRQUEUE)
/* Fetch message from error queue */
rb_define_const(rb_cSocket, "MSG_ERRQUEUE", INTEGER2NUM(MSG_ERRQUEUE));
/* Fetch message from error queue */
rb_define_const(rb_mSockConst, "MSG_ERRQUEUE", INTEGER2NUM(MSG_ERRQUEUE));
#endif
#if defined(MSG_NOSIGNAL)
/* Do not generate SIGPIPE */
rb_define_const(rb_cSocket, "MSG_NOSIGNAL", INTEGER2NUM(MSG_NOSIGNAL));
/* Do not generate SIGPIPE */
rb_define_const(rb_mSockConst, "MSG_NOSIGNAL", INTEGER2NUM(MSG_NOSIGNAL));
#endif
#if defined(MSG_MORE)
/* Sender will send more */
rb_define_const(rb_cSocket, "MSG_MORE", INTEGER2NUM(MSG_MORE));
/* Sender will send more */
rb_define_const(rb_mSockConst, "MSG_MORE", INTEGER2NUM(MSG_MORE));
#endif
#if defined(MSG_FASTOPEN)
/* Reduce step of the handshake process */
rb_define_const(rb_cSocket, "MSG_FASTOPEN", INTEGER2NUM(MSG_FASTOPEN));
/* Reduce step of the handshake process */
rb_define_const(rb_mSockConst, "MSG_FASTOPEN", INTEGER2NUM(MSG_FASTOPEN));
#endif
#if defined(SOL_SOCKET)
/* Socket-level options */
rb_define_const(rb_cSocket, "SOL_SOCKET", INTEGER2NUM(SOL_SOCKET));
/* Socket-level options */
rb_define_const(rb_mSockConst, "SOL_SOCKET", INTEGER2NUM(SOL_SOCKET));
#endif
#if defined(SOL_IP)
/* IP socket options */
rb_define_const(rb_cSocket, "SOL_IP", INTEGER2NUM(SOL_IP));
/* IP socket options */
rb_define_const(rb_mSockConst, "SOL_IP", INTEGER2NUM(SOL_IP));
#endif
#if defined(SOL_IPX)
/* IPX socket options */
rb_define_const(rb_cSocket, "SOL_IPX", INTEGER2NUM(SOL_IPX));
/* IPX socket options */
rb_define_const(rb_mSockConst, "SOL_IPX", INTEGER2NUM(SOL_IPX));
#endif
#if defined(SOL_AX25)
/* AX.25 socket options */
rb_define_const(rb_cSocket, "SOL_AX25", INTEGER2NUM(SOL_AX25));
/* AX.25 socket options */
rb_define_const(rb_mSockConst, "SOL_AX25", INTEGER2NUM(SOL_AX25));
#endif
#if defined(SOL_ATALK)
/* AppleTalk socket options */
rb_define_const(rb_cSocket, "SOL_ATALK", INTEGER2NUM(SOL_ATALK));
/* AppleTalk socket options */
rb_define_const(rb_mSockConst, "SOL_ATALK", INTEGER2NUM(SOL_ATALK));
#endif
#if defined(SOL_TCP)
/* TCP socket options */
rb_define_const(rb_cSocket, "SOL_TCP", INTEGER2NUM(SOL_TCP));
/* TCP socket options */
rb_define_const(rb_mSockConst, "SOL_TCP", INTEGER2NUM(SOL_TCP));
#endif
#if defined(SOL_UDP)
/* UDP socket options */
rb_define_const(rb_cSocket, "SOL_UDP", INTEGER2NUM(SOL_UDP));
/* UDP socket options */
rb_define_const(rb_mSockConst, "SOL_UDP", INTEGER2NUM(SOL_UDP));
#endif
#if defined(IPPROTO_IP)
/* Dummy protocol for IP */
rb_define_const(rb_cSocket, "IPPROTO_IP", INTEGER2NUM(IPPROTO_IP));
/* Dummy protocol for IP */
rb_define_const(rb_mSockConst, "IPPROTO_IP", INTEGER2NUM(IPPROTO_IP));
#endif
#if defined(IPPROTO_ICMP)
/* Control message protocol */
rb_define_const(rb_cSocket, "IPPROTO_ICMP", INTEGER2NUM(IPPROTO_ICMP));
/* Control message protocol */
rb_define_const(rb_mSockConst, "IPPROTO_ICMP", INTEGER2NUM(IPPROTO_ICMP));
#endif
#if defined(IPPROTO_IGMP)
/* Group Management Protocol */
rb_define_const(rb_cSocket, "IPPROTO_IGMP", INTEGER2NUM(IPPROTO_IGMP));
/* Group Management Protocol */
rb_define_const(rb_mSockConst, "IPPROTO_IGMP", INTEGER2NUM(IPPROTO_IGMP));
#endif
#if defined(IPPROTO_GGP)
/* Gateway to Gateway Protocol */
rb_define_const(rb_cSocket, "IPPROTO_GGP", INTEGER2NUM(IPPROTO_GGP));
/* Gateway to Gateway Protocol */
rb_define_const(rb_mSockConst, "IPPROTO_GGP", INTEGER2NUM(IPPROTO_GGP));
#endif
#if defined(IPPROTO_TCP)
/* TCP */
rb_define_const(rb_cSocket, "IPPROTO_TCP", INTEGER2NUM(IPPROTO_TCP));
/* TCP */
rb_define_const(rb_mSockConst, "IPPROTO_TCP", INTEGER2NUM(IPPROTO_TCP));
#endif
#if defined(IPPROTO_EGP)
/* Exterior Gateway Protocol */
rb_define_const(rb_cSocket, "IPPROTO_EGP", INTEGER2NUM(IPPROTO_EGP));
/* Exterior Gateway Protocol */
rb_define_const(rb_mSockConst, "IPPROTO_EGP", INTEGER2NUM(IPPROTO_EGP));
#endif
#if defined(IPPROTO_PUP)
/* PARC Universal Packet protocol */
rb_define_const(rb_cSocket, "IPPROTO_PUP", INTEGER2NUM(IPPROTO_PUP));
/* PARC Universal Packet protocol */
rb_define_const(rb_mSockConst, "IPPROTO_PUP", INTEGER2NUM(IPPROTO_PUP));
#endif
#if defined(IPPROTO_UDP)
/* UDP */
rb_define_const(rb_cSocket, "IPPROTO_UDP", INTEGER2NUM(IPPROTO_UDP));
/* UDP */
rb_define_const(rb_mSockConst, "IPPROTO_UDP", INTEGER2NUM(IPPROTO_UDP));
#endif
#if defined(IPPROTO_IDP)
/* XNS IDP */
rb_define_const(rb_cSocket, "IPPROTO_IDP", INTEGER2NUM(IPPROTO_IDP));
/* XNS IDP */
rb_define_const(rb_mSockConst, "IPPROTO_IDP", INTEGER2NUM(IPPROTO_IDP));
#endif
#if defined(IPPROTO_HELLO)
/* "hello" routing protocol */
rb_define_const(rb_cSocket, "IPPROTO_HELLO", INTEGER2NUM(IPPROTO_HELLO));
/* "hello" routing protocol */
rb_define_const(rb_mSockConst, "IPPROTO_HELLO", INTEGER2NUM(IPPROTO_HELLO));
#endif
#if defined(IPPROTO_ND)
/* Sun net disk protocol */
rb_define_const(rb_cSocket, "IPPROTO_ND", INTEGER2NUM(IPPROTO_ND));
/* Sun net disk protocol */
rb_define_const(rb_mSockConst, "IPPROTO_ND", INTEGER2NUM(IPPROTO_ND));
#endif
#if defined(IPPROTO_TP)
/* ISO transport protocol class 4 */
rb_define_const(rb_cSocket, "IPPROTO_TP", INTEGER2NUM(IPPROTO_TP));
/* ISO transport protocol class 4 */
rb_define_const(rb_mSockConst, "IPPROTO_TP", INTEGER2NUM(IPPROTO_TP));
#endif
#if defined(IPPROTO_XTP)
/* Xpress Transport Protocol */
rb_define_const(rb_cSocket, "IPPROTO_XTP", INTEGER2NUM(IPPROTO_XTP));
/* Xpress Transport Protocol */
rb_define_const(rb_mSockConst, "IPPROTO_XTP", INTEGER2NUM(IPPROTO_XTP));
#endif
#if defined(IPPROTO_EON)
/* ISO cnlp */
rb_define_const(rb_cSocket, "IPPROTO_EON", INTEGER2NUM(IPPROTO_EON));
/* ISO cnlp */
rb_define_const(rb_mSockConst, "IPPROTO_EON", INTEGER2NUM(IPPROTO_EON));
#endif
#if defined(IPPROTO_BIP)
/* */
rb_define_const(rb_cSocket, "IPPROTO_BIP", INTEGER2NUM(IPPROTO_BIP));
/* */
rb_define_const(rb_mSockConst, "IPPROTO_BIP", INTEGER2NUM(IPPROTO_BIP));
#endif
#if defined(IPPROTO_AH)
/* IP6 auth header */
rb_define_const(rb_cSocket, "IPPROTO_AH", INTEGER2NUM(IPPROTO_AH));
/* IP6 auth header */
rb_define_const(rb_mSockConst, "IPPROTO_AH", INTEGER2NUM(IPPROTO_AH));
#endif
#if defined(IPPROTO_DSTOPTS)
/* IP6 destination option */
rb_define_const(rb_cSocket, "IPPROTO_DSTOPTS", INTEGER2NUM(IPPROTO_DSTOPTS));
/* IP6 destination option */
rb_define_const(rb_mSockConst, "IPPROTO_DSTOPTS", INTEGER2NUM(IPPROTO_DSTOPTS));
#endif
#if defined(IPPROTO_ESP)
/* IP6 Encapsulated Security Payload */
rb_define_const(rb_cSocket, "IPPROTO_ESP", INTEGER2NUM(IPPROTO_ESP));
/* IP6 Encapsulated Security Payload */
rb_define_const(rb_mSockConst, "IPPROTO_ESP", INTEGER2NUM(IPPROTO_ESP));
#endif
#if defined(IPPROTO_FRAGMENT)
/* IP6 fragmentation header */
rb_define_const(rb_cSocket, "IPPROTO_FRAGMENT", INTEGER2NUM(IPPROTO_FRAGMENT));
/* IP6 fragmentation header */
rb_define_const(rb_mSockConst, "IPPROTO_FRAGMENT", INTEGER2NUM(IPPROTO_FRAGMENT));
#endif
#if defined(IPPROTO_HOPOPTS)
/* IP6 hop-by-hop options */
rb_define_const(rb_cSocket, "IPPROTO_HOPOPTS", INTEGER2NUM(IPPROTO_HOPOPTS));
/* IP6 hop-by-hop options */
rb_define_const(rb_mSockConst, "IPPROTO_HOPOPTS", INTEGER2NUM(IPPROTO_HOPOPTS));
#endif
#if defined(IPPROTO_ICMPV6)
/* ICMP6 */
rb_define_const(rb_cSocket, "IPPROTO_ICMPV6", INTEGER2NUM(IPPROTO_ICMPV6));
/* ICMP6 */
rb_define_const(rb_mSockConst, "IPPROTO_ICMPV6", INTEGER2NUM(IPPROTO_ICMPV6));
#endif
#if defined(IPPROTO_IPV6)
/* IP6 header */
rb_define_const(rb_cSocket, "IPPROTO_IPV6", INTEGER2NUM(IPPROTO_IPV6));
/* IP6 header */
rb_define_const(rb_mSockConst, "IPPROTO_IPV6", INTEGER2NUM(IPPROTO_IPV6));
#endif
#if defined(IPPROTO_NONE)
/* IP6 no next header */
rb_define_const(rb_cSocket, "IPPROTO_NONE", INTEGER2NUM(IPPROTO_NONE));
/* IP6 no next header */
rb_define_const(rb_mSockConst, "IPPROTO_NONE", INTEGER2NUM(IPPROTO_NONE));
#endif
#if defined(IPPROTO_ROUTING)
/* IP6 routing header */
rb_define_const(rb_cSocket, "IPPROTO_ROUTING", INTEGER2NUM(IPPROTO_ROUTING));
/* IP6 routing header */
rb_define_const(rb_mSockConst, "IPPROTO_ROUTING", INTEGER2NUM(IPPROTO_ROUTING));
#endif
#if defined(IPPROTO_RAW)
/* Raw IP packet */
rb_define_const(rb_cSocket, "IPPROTO_RAW", INTEGER2NUM(IPPROTO_RAW));
/* Raw IP packet */
rb_define_const(rb_mSockConst, "IPPROTO_RAW", INTEGER2NUM(IPPROTO_RAW));
#endif
#if defined(IPPROTO_MAX)
/* Maximum IPPROTO constant */
rb_define_const(rb_cSocket, "IPPROTO_MAX", INTEGER2NUM(IPPROTO_MAX));
/* Maximum IPPROTO constant */
rb_define_const(rb_mSockConst, "IPPROTO_MAX", INTEGER2NUM(IPPROTO_MAX));
#endif
#if defined(IPPORT_RESERVED)
/* Default minimum address for bind or connect */
rb_define_const(rb_cSocket, "IPPORT_RESERVED", INTEGER2NUM(IPPORT_RESERVED));
/* Default minimum address for bind or connect */
rb_define_const(rb_mSockConst, "IPPORT_RESERVED", INTEGER2NUM(IPPORT_RESERVED));
#endif
#if defined(IPPORT_USERRESERVED)
/* Default maximum address for bind or connect */
rb_define_const(rb_cSocket, "IPPORT_USERRESERVED", INTEGER2NUM(IPPORT_USERRESERVED));
/* Default maximum address for bind or connect */
rb_define_const(rb_mSockConst, "IPPORT_USERRESERVED", INTEGER2NUM(IPPORT_USERRESERVED));
#endif
#if defined(INADDR_ANY)
/* A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address */
rb_define_const(rb_cSocket, "INADDR_ANY", INTEGER2NUM(INADDR_ANY));
/* A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address */
rb_define_const(rb_mSockConst, "INADDR_ANY", INTEGER2NUM(INADDR_ANY));
#endif
#if defined(INADDR_BROADCAST)
/* The network broadcast address */
rb_define_const(rb_cSocket, "INADDR_BROADCAST", INTEGER2NUM(INADDR_BROADCAST));
/* The network broadcast address */
rb_define_const(rb_mSockConst, "INADDR_BROADCAST", INTEGER2NUM(INADDR_BROADCAST));
#endif
#if defined(INADDR_LOOPBACK)
/* The loopback address */
rb_define_const(rb_cSocket, "INADDR_LOOPBACK", INTEGER2NUM(INADDR_LOOPBACK));
/* The loopback address */
rb_define_const(rb_mSockConst, "INADDR_LOOPBACK", INTEGER2NUM(INADDR_LOOPBACK));
#endif
#if defined(INADDR_UNSPEC_GROUP)
/* The reserved multicast group */
rb_define_const(rb_cSocket, "INADDR_UNSPEC_GROUP", INTEGER2NUM(INADDR_UNSPEC_GROUP));
/* The reserved multicast group */
rb_define_const(rb_mSockConst, "INADDR_UNSPEC_GROUP", INTEGER2NUM(INADDR_UNSPEC_GROUP));
#endif
#if defined(INADDR_ALLHOSTS_GROUP)
/* Multicast group for all systems on this subset */
rb_define_const(rb_cSocket, "INADDR_ALLHOSTS_GROUP", INTEGER2NUM(INADDR_ALLHOSTS_GROUP));
/* Multicast group for all systems on this subset */
rb_define_const(rb_mSockConst, "INADDR_ALLHOSTS_GROUP", INTEGER2NUM(INADDR_ALLHOSTS_GROUP));
#endif
#if defined(INADDR_MAX_LOCAL_GROUP)
/* The last local network multicast group */
rb_define_const(rb_cSocket, "INADDR_MAX_LOCAL_GROUP", INTEGER2NUM(INADDR_MAX_LOCAL_GROUP));
/* The last local network multicast group */
rb_define_const(rb_mSockConst, "INADDR_MAX_LOCAL_GROUP", INTEGER2NUM(INADDR_MAX_LOCAL_GROUP));
#endif
#if defined(INADDR_NONE)
/* A bitmask for matching no valid IP address */
rb_define_const(rb_cSocket, "INADDR_NONE", INTEGER2NUM(INADDR_NONE));
/* A bitmask for matching no valid IP address */
rb_define_const(rb_mSockConst, "INADDR_NONE", INTEGER2NUM(INADDR_NONE));
#endif
#if defined(IP_OPTIONS)
/* IP options to be included in packets */
rb_define_const(rb_cSocket, "IP_OPTIONS", INTEGER2NUM(IP_OPTIONS));
/* IP options to be included in packets */
rb_define_const(rb_mSockConst, "IP_OPTIONS", INTEGER2NUM(IP_OPTIONS));
#endif
#if defined(IP_HDRINCL)
/* Header is included with data */
rb_define_const(rb_cSocket, "IP_HDRINCL", INTEGER2NUM(IP_HDRINCL));
/* Header is included with data */
rb_define_const(rb_mSockConst, "IP_HDRINCL", INTEGER2NUM(IP_HDRINCL));
#endif
#if defined(IP_TOS)
/* IP type-of-service */
rb_define_const(rb_cSocket, "IP_TOS", INTEGER2NUM(IP_TOS));
/* IP type-of-service */
rb_define_const(rb_mSockConst, "IP_TOS", INTEGER2NUM(IP_TOS));
#endif
#if defined(IP_TTL)
/* IP time-to-live */
rb_define_const(rb_cSocket, "IP_TTL", INTEGER2NUM(IP_TTL));
/* IP time-to-live */
rb_define_const(rb_mSockConst, "IP_TTL", INTEGER2NUM(IP_TTL));
#endif
#if defined(IP_RECVOPTS)
/* Receive all IP options with datagram */
rb_define_const(rb_cSocket, "IP_RECVOPTS", INTEGER2NUM(IP_RECVOPTS));
/* Receive all IP options with datagram */
rb_define_const(rb_mSockConst, "IP_RECVOPTS", INTEGER2NUM(IP_RECVOPTS));
#endif
#if defined(IP_RECVRETOPTS)
/* Receive all IP options for response */
rb_define_const(rb_cSocket, "IP_RECVRETOPTS", INTEGER2NUM(IP_RECVRETOPTS));
/* Receive all IP options for response */
rb_define_const(rb_mSockConst, "IP_RECVRETOPTS", INTEGER2NUM(IP_RECVRETOPTS));
#endif
#if defined(IP_RECVDSTADDR)
/* Receive IP destination address with datagram */
rb_define_const(rb_cSocket, "IP_RECVDSTADDR", INTEGER2NUM(IP_RECVDSTADDR));
/* Receive IP destination address with datagram */
rb_define_const(rb_mSockConst, "IP_RECVDSTADDR", INTEGER2NUM(IP_RECVDSTADDR));
#endif
#if defined(IP_RETOPTS)
/* IP options to be included in datagrams */
rb_define_const(rb_cSocket, "IP_RETOPTS", INTEGER2NUM(IP_RETOPTS));
/* IP options to be included in datagrams */
rb_define_const(rb_mSockConst, "IP_RETOPTS", INTEGER2NUM(IP_RETOPTS));
#endif
#if defined(IP_MINTTL)
/* Minimum TTL allowed for received packets */
rb_define_const(rb_cSocket, "IP_MINTTL", INTEGER2NUM(IP_MINTTL));
/* Minimum TTL allowed for received packets */
rb_define_const(rb_mSockConst, "IP_MINTTL", INTEGER2NUM(IP_MINTTL));
#endif
#if defined(IP_DONTFRAG)
/* Don't fragment packets */
rb_define_const(rb_cSocket, "IP_DONTFRAG", INTEGER2NUM(IP_DONTFRAG));
/* Don't fragment packets */
rb_define_const(rb_mSockConst, "IP_DONTFRAG", INTEGER2NUM(IP_DONTFRAG));
#endif
#if defined(IP_SENDSRCADDR)
/* Source address for outgoing UDP datagrams */
rb_define_const(rb_cSocket, "IP_SENDSRCADDR", INTEGER2NUM(IP_SENDSRCADDR));
/* Source address for outgoing UDP datagrams */
rb_define_const(rb_mSockConst, "IP_SENDSRCADDR", INTEGER2NUM(IP_SENDSRCADDR));
#endif
#if defined(IP_ONESBCAST)
/* Force outgoing broadcast datagrams to have the undirected broadcast address */
rb_define_const(rb_cSocket, "IP_ONESBCAST", INTEGER2NUM(IP_ONESBCAST));
/* Force outgoing broadcast datagrams to have the undirected broadcast address */
rb_define_const(rb_mSockConst, "IP_ONESBCAST", INTEGER2NUM(IP_ONESBCAST));
#endif
#if defined(IP_RECVTTL)
/* Receive IP TTL with datagrams */
rb_define_const(rb_cSocket, "IP_RECVTTL", INTEGER2NUM(IP_RECVTTL));
/* Receive IP TTL with datagrams */
rb_define_const(rb_mSockConst, "IP_RECVTTL", INTEGER2NUM(IP_RECVTTL));
#endif
#if defined(IP_RECVIF)
/* Receive interface information with datagrams */
rb_define_const(rb_cSocket, "IP_RECVIF", INTEGER2NUM(IP_RECVIF));
/* Receive interface information with datagrams */
rb_define_const(rb_mSockConst, "IP_RECVIF", INTEGER2NUM(IP_RECVIF));
#endif
#if defined(IP_RECVSLLA)
/* Receive link-layer address with datagrams */
rb_define_const(rb_cSocket, "IP_RECVSLLA", INTEGER2NUM(IP_RECVSLLA));
/* Receive link-layer address with datagrams */
rb_define_const(rb_mSockConst, "IP_RECVSLLA", INTEGER2NUM(IP_RECVSLLA));
#endif
#if defined(IP_PORTRANGE)
/* Set the port range for sockets with unspecified port numbers */
rb_define_const(rb_cSocket, "IP_PORTRANGE", INTEGER2NUM(IP_PORTRANGE));
/* Set the port range for sockets with unspecified port numbers */
rb_define_const(rb_mSockConst, "IP_PORTRANGE", INTEGER2NUM(IP_PORTRANGE));
#endif
#if defined(IP_MULTICAST_IF)
/* IP multicast interface */
rb_define_const(rb_cSocket, "IP_MULTICAST_IF", INTEGER2NUM(IP_MULTICAST_IF));
/* IP multicast interface */
rb_define_const(rb_mSockConst, "IP_MULTICAST_IF", INTEGER2NUM(IP_MULTICAST_IF));
#endif
#if defined(IP_MULTICAST_TTL)
/* IP multicast TTL */
rb_define_const(rb_cSocket, "IP_MULTICAST_TTL", INTEGER2NUM(IP_MULTICAST_TTL));
/* IP multicast TTL */
rb_define_const(rb_mSockConst, "IP_MULTICAST_TTL", INTEGER2NUM(IP_MULTICAST_TTL));
#endif
#if defined(IP_MULTICAST_LOOP)
/* IP multicast loopback */
rb_define_const(rb_cSocket, "IP_MULTICAST_LOOP", INTEGER2NUM(IP_MULTICAST_LOOP));
/* IP multicast loopback */
rb_define_const(rb_mSockConst, "IP_MULTICAST_LOOP", INTEGER2NUM(IP_MULTICAST_LOOP));
#endif
#if defined(IP_ADD_MEMBERSHIP)
/* Add a multicast group membership */
rb_define_const(rb_cSocket, "IP_ADD_MEMBERSHIP", INTEGER2NUM(IP_ADD_MEMBERSHIP));
/* Add a multicast group membership */
rb_define_const(rb_mSockConst, "IP_ADD_MEMBERSHIP", INTEGER2NUM(IP_ADD_MEMBERSHIP));
#endif
#if defined(IP_DROP_MEMBERSHIP)
/* Drop a multicast group membership */
rb_define_const(rb_cSocket, "IP_DROP_MEMBERSHIP", INTEGER2NUM(IP_DROP_MEMBERSHIP));
/* Drop a multicast group membership */
rb_define_const(rb_mSockConst, "IP_DROP_MEMBERSHIP", INTEGER2NUM(IP_DROP_MEMBERSHIP));
#endif
#if defined(IP_DEFAULT_MULTICAST_TTL)
/* Default multicast TTL */
rb_define_const(rb_cSocket, "IP_DEFAULT_MULTICAST_TTL", INTEGER2NUM(IP_DEFAULT_MULTICAST_TTL));
/* Default multicast TTL */
rb_define_const(rb_mSockConst, "IP_DEFAULT_MULTICAST_TTL", INTEGER2NUM(IP_DEFAULT_MULTICAST_TTL));
#endif
#if defined(IP_DEFAULT_MULTICAST_LOOP)
/* Default multicast loopback */
rb_define_const(rb_cSocket, "IP_DEFAULT_MULTICAST_LOOP", INTEGER2NUM(IP_DEFAULT_MULTICAST_LOOP));
/* Default multicast loopback */
rb_define_const(rb_mSockConst, "IP_DEFAULT_MULTICAST_LOOP", INTEGER2NUM(IP_DEFAULT_MULTICAST_LOOP));
#endif
#if defined(IP_MAX_MEMBERSHIPS)
/* Maximum number multicast groups a socket can join */
rb_define_const(rb_cSocket, "IP_MAX_MEMBERSHIPS", INTEGER2NUM(IP_MAX_MEMBERSHIPS));
/* Maximum number multicast groups a socket can join */
rb_define_const(rb_mSockConst, "IP_MAX_MEMBERSHIPS", INTEGER2NUM(IP_MAX_MEMBERSHIPS));
#endif
#if defined(IP_ROUTER_ALERT)
/* Notify transit routers to more closely examine the contents of an IP packet */
rb_define_const(rb_cSocket, "IP_ROUTER_ALERT", INTEGER2NUM(IP_ROUTER_ALERT));
/* Notify transit routers to more closely examine the contents of an IP packet */
rb_define_const(rb_mSockConst, "IP_ROUTER_ALERT", INTEGER2NUM(IP_ROUTER_ALERT));
#endif
#if defined(IP_PKTINFO)
/* Receive packet information with datagrams */
rb_define_const(rb_cSocket, "IP_PKTINFO", INTEGER2NUM(IP_PKTINFO));
/* Receive packet information with datagrams */
rb_define_const(rb_mSockConst, "IP_PKTINFO", INTEGER2NUM(IP_PKTINFO));
#endif
#if defined(IP_PKTOPTIONS)
/* Receive packet options with datagrams */
rb_define_const(rb_cSocket, "IP_PKTOPTIONS", INTEGER2NUM(IP_PKTOPTIONS));
/* Receive packet options with datagrams */
rb_define_const(rb_mSockConst, "IP_PKTOPTIONS", INTEGER2NUM(IP_PKTOPTIONS));
#endif
#if defined(IP_MTU_DISCOVER)
/* Path MTU discovery */
rb_define_const(rb_cSocket, "IP_MTU_DISCOVER", INTEGER2NUM(IP_MTU_DISCOVER));
/* Path MTU discovery */
rb_define_const(rb_mSockConst, "IP_MTU_DISCOVER", INTEGER2NUM(IP_MTU_DISCOVER));
#endif
#if defined(IP_RECVERR)
/* Enable extended reliable error message passing */
rb_define_const(rb_cSocket, "IP_RECVERR", INTEGER2NUM(IP_RECVERR));
/* Enable extended reliable error message passing */
rb_define_const(rb_mSockConst, "IP_RECVERR", INTEGER2NUM(IP_RECVERR));
#endif
#if defined(IP_RECVTOS)
/* Receive TOS with incoming packets */
rb_define_const(rb_cSocket, "IP_RECVTOS", INTEGER2NUM(IP_RECVTOS));
/* Receive TOS with incoming packets */
rb_define_const(rb_mSockConst, "IP_RECVTOS", INTEGER2NUM(IP_RECVTOS));
#endif
#if defined(IP_MTU)
/* The Maximum Transmission Unit of the socket */
rb_define_const(rb_cSocket, "IP_MTU", INTEGER2NUM(IP_MTU));
/* The Maximum Transmission Unit of the socket */
rb_define_const(rb_mSockConst, "IP_MTU", INTEGER2NUM(IP_MTU));
#endif
#if defined(IP_FREEBIND)
/* Allow binding to nonexistent IP addresses */
rb_define_const(rb_cSocket, "IP_FREEBIND", INTEGER2NUM(IP_FREEBIND));
/* Allow binding to nonexistent IP addresses */
rb_define_const(rb_mSockConst, "IP_FREEBIND", INTEGER2NUM(IP_FREEBIND));
#endif
#if defined(IP_IPSEC_POLICY)
/* IPsec security policy */
rb_define_const(rb_cSocket, "IP_IPSEC_POLICY", INTEGER2NUM(IP_IPSEC_POLICY));
/* IPsec security policy */
rb_define_const(rb_mSockConst, "IP_IPSEC_POLICY", INTEGER2NUM(IP_IPSEC_POLICY));
#endif
#if defined(IP_XFRM_POLICY)
/* */
rb_define_const(rb_cSocket, "IP_XFRM_POLICY", INTEGER2NUM(IP_XFRM_POLICY));
/* */
rb_define_const(rb_mSockConst, "IP_XFRM_POLICY", INTEGER2NUM(IP_XFRM_POLICY));
#endif
#if defined(IP_PASSSEC)
/* Retrieve security context with datagram */
rb_define_const(rb_cSocket, "IP_PASSSEC", INTEGER2NUM(IP_PASSSEC));
/* Retrieve security context with datagram */
rb_define_const(rb_mSockConst, "IP_PASSSEC", INTEGER2NUM(IP_PASSSEC));
#endif
#if defined(IP_TRANSPARENT)
/* Transparent proxy */
rb_define_const(rb_cSocket, "IP_TRANSPARENT", INTEGER2NUM(IP_TRANSPARENT));
/* Transparent proxy */
rb_define_const(rb_mSockConst, "IP_TRANSPARENT", INTEGER2NUM(IP_TRANSPARENT));
#endif
#if defined(IP_PMTUDISC_DONT)
/* Never send DF frames */
rb_define_const(rb_cSocket, "IP_PMTUDISC_DONT", INTEGER2NUM(IP_PMTUDISC_DONT));
/* Never send DF frames */
rb_define_const(rb_mSockConst, "IP_PMTUDISC_DONT", INTEGER2NUM(IP_PMTUDISC_DONT));
#endif
#if defined(IP_PMTUDISC_WANT)
/* Use per-route hints */
rb_define_const(rb_cSocket, "IP_PMTUDISC_WANT", INTEGER2NUM(IP_PMTUDISC_WANT));
/* Use per-route hints */
rb_define_const(rb_mSockConst, "IP_PMTUDISC_WANT", INTEGER2NUM(IP_PMTUDISC_WANT));
#endif
#if defined(IP_PMTUDISC_DO)
/* Always send DF frames */
rb_define_const(rb_cSocket, "IP_PMTUDISC_DO", INTEGER2NUM(IP_PMTUDISC_DO));
/* Always send DF frames */
rb_define_const(rb_mSockConst, "IP_PMTUDISC_DO", INTEGER2NUM(IP_PMTUDISC_DO));
#endif
#if defined(IP_UNBLOCK_SOURCE)
/* Unblock IPv4 multicast packets with a give source address */
rb_define_const(rb_cSocket, "IP_UNBLOCK_SOURCE", INTEGER2NUM(IP_UNBLOCK_SOURCE));
/* Unblock IPv4 multicast packets with a give source address */
rb_define_const(rb_mSockConst, "IP_UNBLOCK_SOURCE", INTEGER2NUM(IP_UNBLOCK_SOURCE));
#endif
#if defined(IP_BLOCK_SOURCE)
/* Block IPv4 multicast packets with a give source address */
rb_define_const(rb_cSocket, "IP_BLOCK_SOURCE", INTEGER2NUM(IP_BLOCK_SOURCE));
/* Block IPv4 multicast packets with a give source address */
rb_define_const(rb_mSockConst, "IP_BLOCK_SOURCE", INTEGER2NUM(IP_BLOCK_SOURCE));
#endif
#if defined(IP_ADD_SOURCE_MEMBERSHIP)
/* Add a multicast group membership */
rb_define_const(rb_cSocket, "IP_ADD_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_ADD_SOURCE_MEMBERSHIP));
/* Add a multicast group membership */
rb_define_const(rb_mSockConst, "IP_ADD_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_ADD_SOURCE_MEMBERSHIP));
#endif
#if defined(IP_DROP_SOURCE_MEMBERSHIP)
/* Drop a multicast group membership */
rb_define_const(rb_cSocket, "IP_DROP_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_DROP_SOURCE_MEMBERSHIP));
/* Drop a multicast group membership */
rb_define_const(rb_mSockConst, "IP_DROP_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_DROP_SOURCE_MEMBERSHIP));
#endif
#if defined(IP_MSFILTER)
/* Multicast source filtering */
rb_define_const(rb_cSocket, "IP_MSFILTER", INTEGER2NUM(IP_MSFILTER));
/* Multicast source filtering */
rb_define_const(rb_mSockConst, "IP_MSFILTER", INTEGER2NUM(IP_MSFILTER));
#endif
#if defined(MCAST_JOIN_GROUP)
/* Join a multicast group */
rb_define_const(rb_cSocket, "MCAST_JOIN_GROUP", INTEGER2NUM(MCAST_JOIN_GROUP));
/* Join a multicast group */
rb_define_const(rb_mSockConst, "MCAST_JOIN_GROUP", INTEGER2NUM(MCAST_JOIN_GROUP));
#endif
#if defined(MCAST_BLOCK_SOURCE)
/* Block multicast packets from this source */
rb_define_const(rb_cSocket, "MCAST_BLOCK_SOURCE", INTEGER2NUM(MCAST_BLOCK_SOURCE));
/* Block multicast packets from this source */
rb_define_const(rb_mSockConst, "MCAST_BLOCK_SOURCE", INTEGER2NUM(MCAST_BLOCK_SOURCE));
#endif
#if defined(MCAST_UNBLOCK_SOURCE)
/* Unblock multicast packets from this source */
rb_define_const(rb_cSocket, "MCAST_UNBLOCK_SOURCE", INTEGER2NUM(MCAST_UNBLOCK_SOURCE));
/* Unblock multicast packets from this source */
rb_define_const(rb_mSockConst, "MCAST_UNBLOCK_SOURCE", INTEGER2NUM(MCAST_UNBLOCK_SOURCE));
#endif
#if defined(MCAST_LEAVE_GROUP)
/* Leave a multicast group */
rb_define_const(rb_cSocket, "MCAST_LEAVE_GROUP", INTEGER2NUM(MCAST_LEAVE_GROUP));
/* Leave a multicast group */
rb_define_const(rb_mSockConst, "MCAST_LEAVE_GROUP", INTEGER2NUM(MCAST_LEAVE_GROUP));
#endif
#if defined(MCAST_JOIN_SOURCE_GROUP)
/* Join a multicast source group */
rb_define_const(rb_cSocket, "MCAST_JOIN_SOURCE_GROUP", INTEGER2NUM(MCAST_JOIN_SOURCE_GROUP));
/* Join a multicast source group */
rb_define_const(rb_mSockConst, "MCAST_JOIN_SOURCE_GROUP", INTEGER2NUM(MCAST_JOIN_SOURCE_GROUP));
#endif
#if defined(MCAST_LEAVE_SOURCE_GROUP)
/* Leave a multicast source group */
rb_define_const(rb_cSocket, "MCAST_LEAVE_SOURCE_GROUP", INTEGER2NUM(MCAST_LEAVE_SOURCE_GROUP));
/* Leave a multicast source group */
rb_define_const(rb_mSockConst, "MCAST_LEAVE_SOURCE_GROUP", INTEGER2NUM(MCAST_LEAVE_SOURCE_GROUP));
#endif
#if defined(MCAST_MSFILTER)
/* Multicast source filtering */
rb_define_const(rb_cSocket, "MCAST_MSFILTER", INTEGER2NUM(MCAST_MSFILTER));
/* Multicast source filtering */
rb_define_const(rb_mSockConst, "MCAST_MSFILTER", INTEGER2NUM(MCAST_MSFILTER));
#endif
#if defined(MCAST_EXCLUDE)
/* Exclusive multicast source filter */
rb_define_const(rb_cSocket, "MCAST_EXCLUDE", INTEGER2NUM(MCAST_EXCLUDE));
/* Exclusive multicast source filter */
rb_define_const(rb_mSockConst, "MCAST_EXCLUDE", INTEGER2NUM(MCAST_EXCLUDE));
#endif
#if defined(MCAST_INCLUDE)
/* Inclusive multicast source filter */
rb_define_const(rb_cSocket, "MCAST_INCLUDE", INTEGER2NUM(MCAST_INCLUDE));
/* Inclusive multicast source filter */
rb_define_const(rb_mSockConst, "MCAST_INCLUDE", INTEGER2NUM(MCAST_INCLUDE));
#endif
#if defined(SO_DEBUG)
/* Debug info recording */
rb_define_const(rb_cSocket, "SO_DEBUG", INTEGER2NUM(SO_DEBUG));
/* Debug info recording */
rb_define_const(rb_mSockConst, "SO_DEBUG", INTEGER2NUM(SO_DEBUG));
#endif
#if defined(SO_REUSEADDR)
/* Allow local address reuse */
rb_define_const(rb_cSocket, "SO_REUSEADDR", INTEGER2NUM(SO_REUSEADDR));
/* Allow local address reuse */
rb_define_const(rb_mSockConst, "SO_REUSEADDR", INTEGER2NUM(SO_REUSEADDR));
#endif
#if defined(SO_REUSEPORT)
/* Allow local address and port reuse */
rb_define_const(rb_cSocket, "SO_REUSEPORT", INTEGER2NUM(SO_REUSEPORT));
/* Allow local address and port reuse */
rb_define_const(rb_mSockConst, "SO_REUSEPORT", INTEGER2NUM(SO_REUSEPORT));
#endif
#if defined(SO_TYPE)
/* Get the socket type */
rb_define_const(rb_cSocket, "SO_TYPE", INTEGER2NUM(SO_TYPE));
/* Get the socket type */
rb_define_const(rb_mSockConst, "SO_TYPE", INTEGER2NUM(SO_TYPE));
#endif
#if defined(SO_ERROR)
/* Get and clear the error status */
rb_define_const(rb_cSocket, "SO_ERROR", INTEGER2NUM(SO_ERROR));
/* Get and clear the error status */
rb_define_const(rb_mSockConst, "SO_ERROR", INTEGER2NUM(SO_ERROR));
#endif
#if defined(SO_DONTROUTE)
/* Use interface addresses */
rb_define_const(rb_cSocket, "SO_DONTROUTE", INTEGER2NUM(SO_DONTROUTE));
/* Use interface addresses */
rb_define_const(rb_mSockConst, "SO_DONTROUTE", INTEGER2NUM(SO_DONTROUTE));
#endif
#if defined(SO_BROADCAST)
/* Permit sending of broadcast messages */
rb_define_const(rb_cSocket, "SO_BROADCAST", INTEGER2NUM(SO_BROADCAST));
/* Permit sending of broadcast messages */
rb_define_const(rb_mSockConst, "SO_BROADCAST", INTEGER2NUM(SO_BROADCAST));
#endif
#if defined(SO_SNDBUF)
/* Send buffer size */
rb_define_const(rb_cSocket, "SO_SNDBUF", INTEGER2NUM(SO_SNDBUF));
/* Send buffer size */
rb_define_const(rb_mSockConst, "SO_SNDBUF", INTEGER2NUM(SO_SNDBUF));
#endif
#if defined(SO_RCVBUF)
/* Receive buffer size */
rb_define_const(rb_cSocket, "SO_RCVBUF", INTEGER2NUM(SO_RCVBUF));
/* Receive buffer size */
rb_define_const(rb_mSockConst, "SO_RCVBUF", INTEGER2NUM(SO_RCVBUF));
#endif
#if defined(SO_SNDBUFFORCE)
/* Send buffer size without wmem_max limit (Linux 2.6.14) */
rb_define_const(rb_cSocket, "SO_SNDBUFFORCE", INTEGER2NUM(SO_SNDBUFFORCE));
/* Send buffer size without wmem_max limit (Linux 2.6.14) */
rb_define_const(rb_mSockConst, "SO_SNDBUFFORCE", INTEGER2NUM(SO_SNDBUFFORCE));
#endif
#if defined(SO_RCVBUFFORCE)
/* Receive buffer size without rmem_max limit (Linux 2.6.14) */
rb_define_const(rb_cSocket, "SO_RCVBUFFORCE", INTEGER2NUM(SO_RCVBUFFORCE));
/* Receive buffer size without rmem_max limit (Linux 2.6.14) */
rb_define_const(rb_mSockConst, "SO_RCVBUFFORCE", INTEGER2NUM(SO_RCVBUFFORCE));
#endif
#if defined(SO_KEEPALIVE)
/* Keep connections alive */
rb_define_const(rb_cSocket, "SO_KEEPALIVE", INTEGER2NUM(SO_KEEPALIVE));
/* Keep connections alive */
rb_define_const(rb_mSockConst, "SO_KEEPALIVE", INTEGER2NUM(SO_KEEPALIVE));
#endif
#if defined(SO_OOBINLINE)
/* Leave received out-of-band data in-line */
rb_define_const(rb_cSocket, "SO_OOBINLINE", INTEGER2NUM(SO_OOBINLINE));
/* Leave received out-of-band data in-line */
rb_define_const(rb_mSockConst, "SO_OOBINLINE", INTEGER2NUM(SO_OOBINLINE));
#endif
#if defined(SO_NO_CHECK)
/* Disable checksums */
rb_define_const(rb_cSocket, "SO_NO_CHECK", INTEGER2NUM(SO_NO_CHECK));
/* Disable checksums */
rb_define_const(rb_mSockConst, "SO_NO_CHECK", INTEGER2NUM(SO_NO_CHECK));
#endif
#if defined(SO_PRIORITY)
/* The protocol-defined priority for all packets on this socket */
rb_define_const(rb_cSocket, "SO_PRIORITY", INTEGER2NUM(SO_PRIORITY));
/* The protocol-defined priority for all packets on this socket */
rb_define_const(rb_mSockConst, "SO_PRIORITY", INTEGER2NUM(SO_PRIORITY));
#endif
#if defined(SO_LINGER)
/* Linger on close if data is present */
rb_define_const(rb_cSocket, "SO_LINGER", INTEGER2NUM(SO_LINGER));
/* Linger on close if data is present */
rb_define_const(rb_mSockConst, "SO_LINGER", INTEGER2NUM(SO_LINGER));
#endif
#if defined(SO_PASSCRED)
/* Receive SCM_CREDENTIALS messages */
rb_define_const(rb_cSocket, "SO_PASSCRED", INTEGER2NUM(SO_PASSCRED));
/* Receive SCM_CREDENTIALS messages */
rb_define_const(rb_mSockConst, "SO_PASSCRED", INTEGER2NUM(SO_PASSCRED));
#endif
#if defined(SO_PEERCRED)
/* The credentials of the foreign process connected to this socket */
rb_define_const(rb_cSocket, "SO_PEERCRED", INTEGER2NUM(SO_PEERCRED));
/* The credentials of the foreign process connected to this socket */
rb_define_const(rb_mSockConst, "SO_PEERCRED", INTEGER2NUM(SO_PEERCRED));
#endif
#if defined(SO_RCVLOWAT)
/* Receive low-water mark */
rb_define_const(rb_cSocket, "SO_RCVLOWAT", INTEGER2NUM(SO_RCVLOWAT));
/* Receive low-water mark */
rb_define_const(rb_mSockConst, "SO_RCVLOWAT", INTEGER2NUM(SO_RCVLOWAT));
#endif
#if defined(SO_SNDLOWAT)
/* Send low-water mark */
rb_define_const(rb_cSocket, "SO_SNDLOWAT", INTEGER2NUM(SO_SNDLOWAT));
/* Send low-water mark */
rb_define_const(rb_mSockConst, "SO_SNDLOWAT", INTEGER2NUM(SO_SNDLOWAT));
#endif
#if defined(SO_RCVTIMEO)
/* Receive timeout */
rb_define_const(rb_cSocket, "SO_RCVTIMEO", INTEGER2NUM(SO_RCVTIMEO));
/* Receive timeout */
rb_define_const(rb_mSockConst, "SO_RCVTIMEO", INTEGER2NUM(SO_RCVTIMEO));
#endif
#if defined(SO_SNDTIMEO)
/* Send timeout */
rb_define_const(rb_cSocket, "SO_SNDTIMEO", INTEGER2NUM(SO_SNDTIMEO));
/* Send timeout */
rb_define_const(rb_mSockConst, "SO_SNDTIMEO", INTEGER2NUM(SO_SNDTIMEO));
#endif
#if defined(SO_ACCEPTCONN)
/* Socket has had listen() called on it */
rb_define_const(rb_cSocket, "SO_ACCEPTCONN", INTEGER2NUM(SO_ACCEPTCONN));
/* Socket has had listen() called on it */
rb_define_const(rb_mSockConst, "SO_ACCEPTCONN", INTEGER2NUM(SO_ACCEPTCONN));
#endif
#if defined(SO_USELOOPBACK)
/* Bypass hardware when possible */
rb_define_const(rb_cSocket, "SO_USELOOPBACK", INTEGER2NUM(SO_USELOOPBACK));
/* Bypass hardware when possible */
rb_define_const(rb_mSockConst, "SO_USELOOPBACK", INTEGER2NUM(SO_USELOOPBACK));
#endif
#if defined(SO_ACCEPTFILTER)
/* There is an accept filter */
rb_define_const(rb_cSocket, "SO_ACCEPTFILTER", INTEGER2NUM(SO_ACCEPTFILTER));
/* There is an accept filter */
rb_define_const(rb_mSockConst, "SO_ACCEPTFILTER", INTEGER2NUM(SO_ACCEPTFILTER));
#endif
#if defined(SO_DONTTRUNC)
/* Retain unread data */
rb_define_const(rb_cSocket, "SO_DONTTRUNC", INTEGER2NUM(SO_DONTTRUNC));
/* Retain unread data */
rb_define_const(rb_mSockConst, "SO_DONTTRUNC", INTEGER2NUM(SO_DONTTRUNC));
#endif
#if defined(SO_WANTMORE)
/* Give a hint when more data is ready */
rb_define_const(rb_cSocket, "SO_WANTMORE", INTEGER2NUM(SO_WANTMORE));
/* Give a hint when more data is ready */
rb_define_const(rb_mSockConst, "SO_WANTMORE", INTEGER2NUM(SO_WANTMORE));
#endif
#if defined(SO_WANTOOBFLAG)
/* OOB data is wanted in MSG_FLAG on receive */
rb_define_const(rb_cSocket, "SO_WANTOOBFLAG", INTEGER2NUM(SO_WANTOOBFLAG));
/* OOB data is wanted in MSG_FLAG on receive */
rb_define_const(rb_mSockConst, "SO_WANTOOBFLAG", INTEGER2NUM(SO_WANTOOBFLAG));
#endif
#if defined(SO_NREAD)
/* Get first packet byte count */
rb_define_const(rb_cSocket, "SO_NREAD", INTEGER2NUM(SO_NREAD));
/* Get first packet byte count */
rb_define_const(rb_mSockConst, "SO_NREAD", INTEGER2NUM(SO_NREAD));
#endif
#if defined(SO_NKE)
/* Install socket-level Network Kernel Extension */
rb_define_const(rb_cSocket, "SO_NKE", INTEGER2NUM(SO_NKE));
/* Install socket-level Network Kernel Extension */
rb_define_const(rb_mSockConst, "SO_NKE", INTEGER2NUM(SO_NKE));
#endif
#if defined(SO_NOSIGPIPE)
/* Don't SIGPIPE on EPIPE */
rb_define_const(rb_cSocket, "SO_NOSIGPIPE", INTEGER2NUM(SO_NOSIGPIPE));
/* Don't SIGPIPE on EPIPE */
rb_define_const(rb_mSockConst, "SO_NOSIGPIPE", INTEGER2NUM(SO_NOSIGPIPE));
#endif
#if defined(SO_SECURITY_AUTHENTICATION)
/* */
rb_define_const(rb_cSocket, "SO_SECURITY_AUTHENTICATION", INTEGER2NUM(SO_SECURITY_AUTHENTICATION));
/* */
rb_define_const(rb_mSockConst, "SO_SECURITY_AUTHENTICATION", INTEGER2NUM(SO_SECURITY_AUTHENTICATION));
#endif
#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT)
/* */
rb_define_const(rb_cSocket, "SO_SECURITY_ENCRYPTION_TRANSPORT", INTEGER2NUM(SO_SECURITY_ENCRYPTION_TRANSPORT));
/* */
rb_define_const(rb_mSockConst, "SO_SECURITY_ENCRYPTION_TRANSPORT", INTEGER2NUM(SO_SECURITY_ENCRYPTION_TRANSPORT));
#endif
#if defined(SO_SECURITY_ENCRYPTION_NETWORK)
/* */
rb_define_const(rb_cSocket, "SO_SECURITY_ENCRYPTION_NETWORK", INTEGER2NUM(SO_SECURITY_ENCRYPTION_NETWORK));
/* */
rb_define_const(rb_mSockConst, "SO_SECURITY_ENCRYPTION_NETWORK", INTEGER2NUM(SO_SECURITY_ENCRYPTION_NETWORK));
#endif
#if defined(SO_BINDTODEVICE)
/* Only send packets from the given interface */
rb_define_const(rb_cSocket, "SO_BINDTODEVICE", INTEGER2NUM(SO_BINDTODEVICE));
/* Only send packets from the given interface */
rb_define_const(rb_mSockConst, "SO_BINDTODEVICE", INTEGER2NUM(SO_BINDTODEVICE));
#endif
#if defined(SO_ATTACH_FILTER)
/* Attach an accept filter */
rb_define_const(rb_cSocket, "SO_ATTACH_FILTER", INTEGER2NUM(SO_ATTACH_FILTER));
/* Attach an accept filter */
rb_define_const(rb_mSockConst, "SO_ATTACH_FILTER", INTEGER2NUM(SO_ATTACH_FILTER));
#endif
#if defined(SO_DETACH_FILTER)
/* Detach an accept filter */
rb_define_const(rb_cSocket, "SO_DETACH_FILTER", INTEGER2NUM(SO_DETACH_FILTER));
/* Detach an accept filter */
rb_define_const(rb_mSockConst, "SO_DETACH_FILTER", INTEGER2NUM(SO_DETACH_FILTER));
#endif
#if defined(SO_GET_FILTER)
/* Obtain filter set by SO_ATTACH_FILTER (Linux 3.8) */
rb_define_const(rb_cSocket, "SO_GET_FILTER", INTEGER2NUM(SO_GET_FILTER));
/* Obtain filter set by SO_ATTACH_FILTER (Linux 3.8) */
rb_define_const(rb_mSockConst, "SO_GET_FILTER", INTEGER2NUM(SO_GET_FILTER));
#endif
#if defined(SO_PEERNAME)
/* Name of the connecting user */
rb_define_const(rb_cSocket, "SO_PEERNAME", INTEGER2NUM(SO_PEERNAME));
/* Name of the connecting user */
rb_define_const(rb_mSockConst, "SO_PEERNAME", INTEGER2NUM(SO_PEERNAME));
#endif
#if defined(SO_TIMESTAMP)
/* Receive timestamp with datagrams (timeval) */
rb_define_const(rb_cSocket, "SO_TIMESTAMP", INTEGER2NUM(SO_TIMESTAMP));
/* Receive timestamp with datagrams (timeval) */
rb_define_const(rb_mSockConst, "SO_TIMESTAMP", INTEGER2NUM(SO_TIMESTAMP));
#endif
#if defined(SO_TIMESTAMPNS)
/* Receive nanosecond timestamp with datagrams (timespec) */
rb_define_const(rb_cSocket, "SO_TIMESTAMPNS", INTEGER2NUM(SO_TIMESTAMPNS));
/* Receive nanosecond timestamp with datagrams (timespec) */
rb_define_const(rb_mSockConst, "SO_TIMESTAMPNS", INTEGER2NUM(SO_TIMESTAMPNS));
#endif
#if defined(SO_BINTIME)
/* Receive timestamp with datagrams (bintime) */
rb_define_const(rb_cSocket, "SO_BINTIME", INTEGER2NUM(SO_BINTIME));
/* Receive timestamp with datagrams (bintime) */
rb_define_const(rb_mSockConst, "SO_BINTIME", INTEGER2NUM(SO_BINTIME));
#endif
#if defined(SO_RECVUCRED)
/* Receive user credentials with datagram */
rb_define_const(rb_cSocket, "SO_RECVUCRED", INTEGER2NUM(SO_RECVUCRED));
/* Receive user credentials with datagram */
rb_define_const(rb_mSockConst, "SO_RECVUCRED", INTEGER2NUM(SO_RECVUCRED));
#endif
#if defined(SO_MAC_EXEMPT)
/* Mandatory Access Control exemption for unlabeled peers */
rb_define_const(rb_cSocket, "SO_MAC_EXEMPT", INTEGER2NUM(SO_MAC_EXEMPT));
/* Mandatory Access Control exemption for unlabeled peers */
rb_define_const(rb_mSockConst, "SO_MAC_EXEMPT", INTEGER2NUM(SO_MAC_EXEMPT));
#endif
#if defined(SO_ALLZONES)
/* Bypass zone boundaries */
rb_define_const(rb_cSocket, "SO_ALLZONES", INTEGER2NUM(SO_ALLZONES));
/* Bypass zone boundaries */
rb_define_const(rb_mSockConst, "SO_ALLZONES", INTEGER2NUM(SO_ALLZONES));
#endif
#if defined(SO_PEERSEC)
/* Obtain the security credentials (Linux 2.6.2) */
rb_define_const(rb_cSocket, "SO_PEERSEC", INTEGER2NUM(SO_PEERSEC));
/* Obtain the security credentials (Linux 2.6.2) */
rb_define_const(rb_mSockConst, "SO_PEERSEC", INTEGER2NUM(SO_PEERSEC));
#endif
#if defined(SO_PASSSEC)
/* Toggle security context passing (Linux 2.6.18) */
rb_define_const(rb_cSocket, "SO_PASSSEC", INTEGER2NUM(SO_PASSSEC));
/* Toggle security context passing (Linux 2.6.18) */
rb_define_const(rb_mSockConst, "SO_PASSSEC", INTEGER2NUM(SO_PASSSEC));
#endif
#if defined(SO_MARK)
/* Set the mark for mark-based routing (Linux 2.6.25) */
rb_define_const(rb_cSocket, "SO_MARK", INTEGER2NUM(SO_MARK));
/* Set the mark for mark-based routing (Linux 2.6.25) */
rb_define_const(rb_mSockConst, "SO_MARK", INTEGER2NUM(SO_MARK));
#endif
#if defined(SO_TIMESTAMPING)
/* Time stamping of incoming and outgoing packets (Linux 2.6.30) */
rb_define_const(rb_cSocket, "SO_TIMESTAMPING", INTEGER2NUM(SO_TIMESTAMPING));
/* Time stamping of incoming and outgoing packets (Linux 2.6.30) */
rb_define_const(rb_mSockConst, "SO_TIMESTAMPING", INTEGER2NUM(SO_TIMESTAMPING));
#endif
#if defined(SO_PROTOCOL)
/* Protocol given for socket() (Linux 2.6.32) */
rb_define_const(rb_cSocket, "SO_PROTOCOL", INTEGER2NUM(SO_PROTOCOL));
/* Protocol given for socket() (Linux 2.6.32) */
rb_define_const(rb_mSockConst, "SO_PROTOCOL", INTEGER2NUM(SO_PROTOCOL));
#endif
#if defined(SO_DOMAIN)
/* Domain given for socket() (Linux 2.6.32) */
rb_define_const(rb_cSocket, "SO_DOMAIN", INTEGER2NUM(SO_DOMAIN));
/* Domain given for socket() (Linux 2.6.32) */
rb_define_const(rb_mSockConst, "SO_DOMAIN", INTEGER2NUM(SO_DOMAIN));
#endif
#if defined(SO_RXQ_OVFL)
/* Toggle cmsg for number of packets dropped (Linux 2.6.33) */
rb_define_const(rb_cSocket, "SO_RXQ_OVFL", INTEGER2NUM(SO_RXQ_OVFL));
/* Toggle cmsg for number of packets dropped (Linux 2.6.33) */
rb_define_const(rb_mSockConst, "SO_RXQ_OVFL", INTEGER2NUM(SO_RXQ_OVFL));
#endif
#if defined(SO_WIFI_STATUS)
/* Toggle cmsg for wifi status (Linux 3.3) */
rb_define_const(rb_cSocket, "SO_WIFI_STATUS", INTEGER2NUM(SO_WIFI_STATUS));
/* Toggle cmsg for wifi status (Linux 3.3) */
rb_define_const(rb_mSockConst, "SO_WIFI_STATUS", INTEGER2NUM(SO_WIFI_STATUS));
#endif
#if defined(SO_PEEK_OFF)
/* Set the peek offset (Linux 3.4) */
rb_define_const(rb_cSocket, "SO_PEEK_OFF", INTEGER2NUM(SO_PEEK_OFF));
/* Set the peek offset (Linux 3.4) */
rb_define_const(rb_mSockConst, "SO_PEEK_OFF", INTEGER2NUM(SO_PEEK_OFF));
#endif
#if defined(SO_NOFCS)
/* Set netns of a socket (Linux 3.4) */
rb_define_const(rb_cSocket, "SO_NOFCS", INTEGER2NUM(SO_NOFCS));
/* Set netns of a socket (Linux 3.4) */
rb_define_const(rb_mSockConst, "SO_NOFCS", INTEGER2NUM(SO_NOFCS));
#endif
#if defined(SO_LOCK_FILTER)
/* Lock the filter attached to a socket (Linux 3.9) */
rb_define_const(rb_cSocket, "SO_LOCK_FILTER", INTEGER2NUM(SO_LOCK_FILTER));
/* Lock the filter attached to a socket (Linux 3.9) */
rb_define_const(rb_mSockConst, "SO_LOCK_FILTER", INTEGER2NUM(SO_LOCK_FILTER));
#endif
#if defined(SO_SELECT_ERR_QUEUE)
/* Make select() detect socket error queue with errorfds (Linux 3.10) */
rb_define_const(rb_cSocket, "SO_SELECT_ERR_QUEUE", INTEGER2NUM(SO_SELECT_ERR_QUEUE));
/* Make select() detect socket error queue with errorfds (Linux 3.10) */
rb_define_const(rb_mSockConst, "SO_SELECT_ERR_QUEUE", INTEGER2NUM(SO_SELECT_ERR_QUEUE));
#endif
#if defined(SO_BUSY_POLL)
/* Set the threshold in microseconds for low latency polling (Linux 3.11) */
rb_define_const(rb_cSocket, "SO_BUSY_POLL", INTEGER2NUM(SO_BUSY_POLL));
/* Set the threshold in microseconds for low latency polling (Linux 3.11) */
rb_define_const(rb_mSockConst, "SO_BUSY_POLL", INTEGER2NUM(SO_BUSY_POLL));
#endif
#if defined(SO_MAX_PACING_RATE)
/* Cap the rate computed by transport layer. [bytes per second] (Linux 3.13) */
rb_define_const(rb_cSocket, "SO_MAX_PACING_RATE", INTEGER2NUM(SO_MAX_PACING_RATE));
/* Cap the rate computed by transport layer. [bytes per second] (Linux 3.13) */
rb_define_const(rb_mSockConst, "SO_MAX_PACING_RATE", INTEGER2NUM(SO_MAX_PACING_RATE));
#endif
#if defined(SO_BPF_EXTENSIONS)
/* Query supported BPF extensions (Linux 3.14) */
rb_define_const(rb_cSocket, "SO_BPF_EXTENSIONS", INTEGER2NUM(SO_BPF_EXTENSIONS));
/* Query supported BPF extensions (Linux 3.14) */
rb_define_const(rb_mSockConst, "SO_BPF_EXTENSIONS", INTEGER2NUM(SO_BPF_EXTENSIONS));
#endif
#if defined(SOPRI_INTERACTIVE)
/* Interactive socket priority */
rb_define_const(rb_cSocket, "SOPRI_INTERACTIVE", INTEGER2NUM(SOPRI_INTERACTIVE));
/* Interactive socket priority */
rb_define_const(rb_mSockConst, "SOPRI_INTERACTIVE", INTEGER2NUM(SOPRI_INTERACTIVE));
#endif
#if defined(SOPRI_NORMAL)
/* Normal socket priority */
rb_define_const(rb_cSocket, "SOPRI_NORMAL", INTEGER2NUM(SOPRI_NORMAL));
/* Normal socket priority */
rb_define_const(rb_mSockConst, "SOPRI_NORMAL", INTEGER2NUM(SOPRI_NORMAL));
#endif
#if defined(SOPRI_BACKGROUND)
/* Background socket priority */
rb_define_const(rb_cSocket, "SOPRI_BACKGROUND", INTEGER2NUM(SOPRI_BACKGROUND));
/* Background socket priority */
rb_define_const(rb_mSockConst, "SOPRI_BACKGROUND", INTEGER2NUM(SOPRI_BACKGROUND));
#endif
#if defined(IPX_TYPE)
/* */
rb_define_const(rb_cSocket, "IPX_TYPE", INTEGER2NUM(IPX_TYPE));
/* */
rb_define_const(rb_mSockConst, "IPX_TYPE", INTEGER2NUM(IPX_TYPE));
#endif
#if defined(TCP_NODELAY)
/* Don't delay sending to coalesce packets */
rb_define_const(rb_cSocket, "TCP_NODELAY", INTEGER2NUM(TCP_NODELAY));
/* Don't delay sending to coalesce packets */
rb_define_const(rb_mSockConst, "TCP_NODELAY", INTEGER2NUM(TCP_NODELAY));
#endif
#if defined(TCP_MAXSEG)
/* Set maximum segment size */
rb_define_const(rb_cSocket, "TCP_MAXSEG", INTEGER2NUM(TCP_MAXSEG));
/* Set maximum segment size */
rb_define_const(rb_mSockConst, "TCP_MAXSEG", INTEGER2NUM(TCP_MAXSEG));
#endif
#if defined(TCP_CORK)
/* Don't send partial frames (Linux 2.2, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_CORK", INTEGER2NUM(TCP_CORK));
/* Don't send partial frames (Linux 2.2, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_CORK", INTEGER2NUM(TCP_CORK));
#endif
#if defined(TCP_DEFER_ACCEPT)
/* Don't notify a listening socket until data is ready (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_DEFER_ACCEPT", INTEGER2NUM(TCP_DEFER_ACCEPT));
/* Don't notify a listening socket until data is ready (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_DEFER_ACCEPT", INTEGER2NUM(TCP_DEFER_ACCEPT));
#endif
#if defined(TCP_INFO)
/* Retrieve information about this socket (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_INFO", INTEGER2NUM(TCP_INFO));
/* Retrieve information about this socket (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_INFO", INTEGER2NUM(TCP_INFO));
#endif
#if defined(TCP_KEEPCNT)
/* Maximum number of keepalive probes allowed before dropping a connection (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_KEEPCNT", INTEGER2NUM(TCP_KEEPCNT));
/* Maximum number of keepalive probes allowed before dropping a connection (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_KEEPCNT", INTEGER2NUM(TCP_KEEPCNT));
#endif
#if defined(TCP_KEEPIDLE)
/* Idle time before keepalive probes are sent (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_KEEPIDLE", INTEGER2NUM(TCP_KEEPIDLE));
/* Idle time before keepalive probes are sent (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_KEEPIDLE", INTEGER2NUM(TCP_KEEPIDLE));
#endif
#if defined(TCP_KEEPINTVL)
/* Time between keepalive probes (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_KEEPINTVL", INTEGER2NUM(TCP_KEEPINTVL));
/* Time between keepalive probes (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_KEEPINTVL", INTEGER2NUM(TCP_KEEPINTVL));
#endif
#if defined(TCP_LINGER2)
/* Lifetime of orphaned FIN_WAIT2 sockets (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_LINGER2", INTEGER2NUM(TCP_LINGER2));
/* Lifetime of orphaned FIN_WAIT2 sockets (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_LINGER2", INTEGER2NUM(TCP_LINGER2));
#endif
#if defined(TCP_MD5SIG)
/* Use MD5 digests (RFC2385, Linux 2.6.20, glibc 2.7) */
rb_define_const(rb_cSocket, "TCP_MD5SIG", INTEGER2NUM(TCP_MD5SIG));
/* Use MD5 digests (RFC2385, Linux 2.6.20, glibc 2.7) */
rb_define_const(rb_mSockConst, "TCP_MD5SIG", INTEGER2NUM(TCP_MD5SIG));
#endif
#if defined(TCP_NOOPT)
/* Don't use TCP options */
rb_define_const(rb_cSocket, "TCP_NOOPT", INTEGER2NUM(TCP_NOOPT));
/* Don't use TCP options */
rb_define_const(rb_mSockConst, "TCP_NOOPT", INTEGER2NUM(TCP_NOOPT));
#endif
#if defined(TCP_NOPUSH)
/* Don't push the last block of write */
rb_define_const(rb_cSocket, "TCP_NOPUSH", INTEGER2NUM(TCP_NOPUSH));
/* Don't push the last block of write */
rb_define_const(rb_mSockConst, "TCP_NOPUSH", INTEGER2NUM(TCP_NOPUSH));
#endif
#if defined(TCP_QUICKACK)
/* Enable quickack mode (Linux 2.4.4, glibc 2.3) */
rb_define_const(rb_cSocket, "TCP_QUICKACK", INTEGER2NUM(TCP_QUICKACK));
/* Enable quickack mode (Linux 2.4.4, glibc 2.3) */
rb_define_const(rb_mSockConst, "TCP_QUICKACK", INTEGER2NUM(TCP_QUICKACK));
#endif
#if defined(TCP_SYNCNT)
/* Number of SYN retransmits before a connection is dropped (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_SYNCNT", INTEGER2NUM(TCP_SYNCNT));
/* Number of SYN retransmits before a connection is dropped (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_SYNCNT", INTEGER2NUM(TCP_SYNCNT));
#endif
#if defined(TCP_WINDOW_CLAMP)
/* Clamp the size of the advertised window (Linux 2.4, glibc 2.2) */
rb_define_const(rb_cSocket, "TCP_WINDOW_CLAMP", INTEGER2NUM(TCP_WINDOW_CLAMP));
/* Clamp the size of the advertised window (Linux 2.4, glibc 2.2) */
rb_define_const(rb_mSockConst, "TCP_WINDOW_CLAMP", INTEGER2NUM(TCP_WINDOW_CLAMP));
#endif
#if defined(TCP_FASTOPEN)
/* Reduce step of the handshake process (Linux 3.7, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_FASTOPEN", INTEGER2NUM(TCP_FASTOPEN));
/* Reduce step of the handshake process (Linux 3.7, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_FASTOPEN", INTEGER2NUM(TCP_FASTOPEN));
#endif
#if defined(TCP_CONGESTION)
/* TCP congestion control algorithm (Linux 2.6.13, glibc 2.6) */
rb_define_const(rb_cSocket, "TCP_CONGESTION", INTEGER2NUM(TCP_CONGESTION));
/* TCP congestion control algorithm (Linux 2.6.13, glibc 2.6) */
rb_define_const(rb_mSockConst, "TCP_CONGESTION", INTEGER2NUM(TCP_CONGESTION));
#endif
#if defined(TCP_COOKIE_TRANSACTIONS)
/* TCP Cookie Transactions (Linux 2.6.33, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_COOKIE_TRANSACTIONS", INTEGER2NUM(TCP_COOKIE_TRANSACTIONS));
/* TCP Cookie Transactions (Linux 2.6.33, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_COOKIE_TRANSACTIONS", INTEGER2NUM(TCP_COOKIE_TRANSACTIONS));
#endif
#if defined(TCP_QUEUE_SEQ)
/* Sequence of a queue for repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_QUEUE_SEQ", INTEGER2NUM(TCP_QUEUE_SEQ));
/* Sequence of a queue for repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_QUEUE_SEQ", INTEGER2NUM(TCP_QUEUE_SEQ));
#endif
#if defined(TCP_REPAIR)
/* Repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_REPAIR", INTEGER2NUM(TCP_REPAIR));
/* Repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_REPAIR", INTEGER2NUM(TCP_REPAIR));
#endif
#if defined(TCP_REPAIR_OPTIONS)
/* Options for repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_REPAIR_OPTIONS", INTEGER2NUM(TCP_REPAIR_OPTIONS));
/* Options for repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_REPAIR_OPTIONS", INTEGER2NUM(TCP_REPAIR_OPTIONS));
#endif
#if defined(TCP_REPAIR_QUEUE)
/* Queue for repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_REPAIR_QUEUE", INTEGER2NUM(TCP_REPAIR_QUEUE));
/* Queue for repair mode (Linux 3.5, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_REPAIR_QUEUE", INTEGER2NUM(TCP_REPAIR_QUEUE));
#endif
#if defined(TCP_THIN_DUPACK)
/* Duplicated acknowledgments handling for thin-streams (Linux 2.6.34, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_THIN_DUPACK", INTEGER2NUM(TCP_THIN_DUPACK));
/* Duplicated acknowledgments handling for thin-streams (Linux 2.6.34, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_THIN_DUPACK", INTEGER2NUM(TCP_THIN_DUPACK));
#endif
#if defined(TCP_THIN_LINEAR_TIMEOUTS)
/* Linear timeouts for thin-streams (Linux 2.6.34, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_THIN_LINEAR_TIMEOUTS", INTEGER2NUM(TCP_THIN_LINEAR_TIMEOUTS));
/* Linear timeouts for thin-streams (Linux 2.6.34, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_THIN_LINEAR_TIMEOUTS", INTEGER2NUM(TCP_THIN_LINEAR_TIMEOUTS));
#endif
#if defined(TCP_TIMESTAMP)
/* TCP timestamp (Linux 3.9, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_TIMESTAMP", INTEGER2NUM(TCP_TIMESTAMP));
/* TCP timestamp (Linux 3.9, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_TIMESTAMP", INTEGER2NUM(TCP_TIMESTAMP));
#endif
#if defined(TCP_USER_TIMEOUT)
/* Max timeout before a TCP connection is aborted (Linux 2.6.37, glibc 2.18) */
rb_define_const(rb_cSocket, "TCP_USER_TIMEOUT", INTEGER2NUM(TCP_USER_TIMEOUT));
/* Max timeout before a TCP connection is aborted (Linux 2.6.37, glibc 2.18) */
rb_define_const(rb_mSockConst, "TCP_USER_TIMEOUT", INTEGER2NUM(TCP_USER_TIMEOUT));
#endif
#if defined(UDP_CORK)
/* Don't send partial frames (Linux 2.5.44, glibc 2.11) */
rb_define_const(rb_cSocket, "UDP_CORK", INTEGER2NUM(UDP_CORK));
/* Don't send partial frames (Linux 2.5.44, glibc 2.11) */
rb_define_const(rb_mSockConst, "UDP_CORK", INTEGER2NUM(UDP_CORK));
#endif
#if defined(EAI_ADDRFAMILY)
/* Address family for hostname not supported */
rb_define_const(rb_cSocket, "EAI_ADDRFAMILY", INTEGER2NUM(EAI_ADDRFAMILY));
/* Address family for hostname not supported */
rb_define_const(rb_mSockConst, "EAI_ADDRFAMILY", INTEGER2NUM(EAI_ADDRFAMILY));
#endif
#if defined(EAI_AGAIN)
/* Temporary failure in name resolution */
rb_define_const(rb_cSocket, "EAI_AGAIN", INTEGER2NUM(EAI_AGAIN));
/* Temporary failure in name resolution */
rb_define_const(rb_mSockConst, "EAI_AGAIN", INTEGER2NUM(EAI_AGAIN));
#endif
#if defined(EAI_BADFLAGS)
/* Invalid flags */
rb_define_const(rb_cSocket, "EAI_BADFLAGS", INTEGER2NUM(EAI_BADFLAGS));
/* Invalid flags */
rb_define_const(rb_mSockConst, "EAI_BADFLAGS", INTEGER2NUM(EAI_BADFLAGS));
#endif
#if defined(EAI_FAIL)
/* Non-recoverable failure in name resolution */
rb_define_const(rb_cSocket, "EAI_FAIL", INTEGER2NUM(EAI_FAIL));
/* Non-recoverable failure in name resolution */
rb_define_const(rb_mSockConst, "EAI_FAIL", INTEGER2NUM(EAI_FAIL));
#endif
#if defined(EAI_FAMILY)
/* Address family not supported */
rb_define_const(rb_cSocket, "EAI_FAMILY", INTEGER2NUM(EAI_FAMILY));
/* Address family not supported */
rb_define_const(rb_mSockConst, "EAI_FAMILY", INTEGER2NUM(EAI_FAMILY));
#endif
#if defined(EAI_MEMORY)
/* Memory allocation failure */
rb_define_const(rb_cSocket, "EAI_MEMORY", INTEGER2NUM(EAI_MEMORY));
/* Memory allocation failure */
rb_define_const(rb_mSockConst, "EAI_MEMORY", INTEGER2NUM(EAI_MEMORY));
#endif
#if defined(EAI_NODATA)
/* No address associated with hostname */
rb_define_const(rb_cSocket, "EAI_NODATA", INTEGER2NUM(EAI_NODATA));
/* No address associated with hostname */
rb_define_const(rb_mSockConst, "EAI_NODATA", INTEGER2NUM(EAI_NODATA));
#endif
#if defined(EAI_NONAME)
/* Hostname nor servname, or not known */
rb_define_const(rb_cSocket, "EAI_NONAME", INTEGER2NUM(EAI_NONAME));
/* Hostname nor servname, or not known */
rb_define_const(rb_mSockConst, "EAI_NONAME", INTEGER2NUM(EAI_NONAME));
#endif
#if defined(EAI_OVERFLOW)
/* Argument buffer overflow */
rb_define_const(rb_cSocket, "EAI_OVERFLOW", INTEGER2NUM(EAI_OVERFLOW));
/* Argument buffer overflow */
rb_define_const(rb_mSockConst, "EAI_OVERFLOW", INTEGER2NUM(EAI_OVERFLOW));
#endif
#if defined(EAI_SERVICE)
/* Servname not supported for socket type */
rb_define_const(rb_cSocket, "EAI_SERVICE", INTEGER2NUM(EAI_SERVICE));
/* Servname not supported for socket type */
rb_define_const(rb_mSockConst, "EAI_SERVICE", INTEGER2NUM(EAI_SERVICE));
#endif
#if defined(EAI_SOCKTYPE)
/* Socket type not supported */
rb_define_const(rb_cSocket, "EAI_SOCKTYPE", INTEGER2NUM(EAI_SOCKTYPE));
/* Socket type not supported */
rb_define_const(rb_mSockConst, "EAI_SOCKTYPE", INTEGER2NUM(EAI_SOCKTYPE));
#endif
#if defined(EAI_SYSTEM)
/* System error returned in errno */
rb_define_const(rb_cSocket, "EAI_SYSTEM", INTEGER2NUM(EAI_SYSTEM));
/* System error returned in errno */
rb_define_const(rb_mSockConst, "EAI_SYSTEM", INTEGER2NUM(EAI_SYSTEM));
#endif
#if defined(EAI_BADHINTS)
/* Invalid value for hints */
rb_define_const(rb_cSocket, "EAI_BADHINTS", INTEGER2NUM(EAI_BADHINTS));
/* Invalid value for hints */
rb_define_const(rb_mSockConst, "EAI_BADHINTS", INTEGER2NUM(EAI_BADHINTS));
#endif
#if defined(EAI_PROTOCOL)
/* Resolved protocol is unknown */
rb_define_const(rb_cSocket, "EAI_PROTOCOL", INTEGER2NUM(EAI_PROTOCOL));
/* Resolved protocol is unknown */
rb_define_const(rb_mSockConst, "EAI_PROTOCOL", INTEGER2NUM(EAI_PROTOCOL));
#endif
#if defined(EAI_MAX)
/* Maximum error code from getaddrinfo */
rb_define_const(rb_cSocket, "EAI_MAX", INTEGER2NUM(EAI_MAX));
/* Maximum error code from getaddrinfo */
rb_define_const(rb_mSockConst, "EAI_MAX", INTEGER2NUM(EAI_MAX));
#endif
#if defined(AI_PASSIVE)
/* Get address to use with bind() */
rb_define_const(rb_cSocket, "AI_PASSIVE", INTEGER2NUM(AI_PASSIVE));
/* Get address to use with bind() */
rb_define_const(rb_mSockConst, "AI_PASSIVE", INTEGER2NUM(AI_PASSIVE));
#endif
#if defined(AI_CANONNAME)
/* Fill in the canonical name */
rb_define_const(rb_cSocket, "AI_CANONNAME", INTEGER2NUM(AI_CANONNAME));
/* Fill in the canonical name */
rb_define_const(rb_mSockConst, "AI_CANONNAME", INTEGER2NUM(AI_CANONNAME));
#endif
#if defined(AI_NUMERICHOST)
/* Prevent host name resolution */
rb_define_const(rb_cSocket, "AI_NUMERICHOST", INTEGER2NUM(AI_NUMERICHOST));
/* Prevent host name resolution */
rb_define_const(rb_mSockConst, "AI_NUMERICHOST", INTEGER2NUM(AI_NUMERICHOST));
#endif
#if defined(AI_NUMERICSERV)
/* Prevent service name resolution */
rb_define_const(rb_cSocket, "AI_NUMERICSERV", INTEGER2NUM(AI_NUMERICSERV));
/* Prevent service name resolution */
rb_define_const(rb_mSockConst, "AI_NUMERICSERV", INTEGER2NUM(AI_NUMERICSERV));
#endif
#if defined(AI_MASK)
/* Valid flag mask for getaddrinfo (not for application use) */
rb_define_const(rb_cSocket, "AI_MASK", INTEGER2NUM(AI_MASK));
/* Valid flag mask for getaddrinfo (not for application use) */
rb_define_const(rb_mSockConst, "AI_MASK", INTEGER2NUM(AI_MASK));
#endif
#if defined(AI_ALL)
/* Allow all addresses */
rb_define_const(rb_cSocket, "AI_ALL", INTEGER2NUM(AI_ALL));
/* Allow all addresses */
rb_define_const(rb_mSockConst, "AI_ALL", INTEGER2NUM(AI_ALL));
#endif
#if defined(AI_V4MAPPED_CFG)
/* Accept IPv4 mapped addresses if the kernel supports it */
rb_define_const(rb_cSocket, "AI_V4MAPPED_CFG", INTEGER2NUM(AI_V4MAPPED_CFG));
/* Accept IPv4 mapped addresses if the kernel supports it */
rb_define_const(rb_mSockConst, "AI_V4MAPPED_CFG", INTEGER2NUM(AI_V4MAPPED_CFG));
#endif
#if defined(AI_ADDRCONFIG)
/* Accept only if any address is assigned */
rb_define_const(rb_cSocket, "AI_ADDRCONFIG", INTEGER2NUM(AI_ADDRCONFIG));
/* Accept only if any address is assigned */
rb_define_const(rb_mSockConst, "AI_ADDRCONFIG", INTEGER2NUM(AI_ADDRCONFIG));
#endif
#if defined(AI_V4MAPPED)
/* Accept IPv4-mapped IPv6 addresses */
rb_define_const(rb_cSocket, "AI_V4MAPPED", INTEGER2NUM(AI_V4MAPPED));
/* Accept IPv4-mapped IPv6 addresses */
rb_define_const(rb_mSockConst, "AI_V4MAPPED", INTEGER2NUM(AI_V4MAPPED));
#endif
#if defined(AI_DEFAULT)
/* Default flags for getaddrinfo */
rb_define_const(rb_cSocket, "AI_DEFAULT", INTEGER2NUM(AI_DEFAULT));
/* Default flags for getaddrinfo */
rb_define_const(rb_mSockConst, "AI_DEFAULT", INTEGER2NUM(AI_DEFAULT));
#endif
#if defined(NI_MAXHOST)
/* Maximum length of a hostname */
rb_define_const(rb_cSocket, "NI_MAXHOST", INTEGER2NUM(NI_MAXHOST));
/* Maximum length of a hostname */
rb_define_const(rb_mSockConst, "NI_MAXHOST", INTEGER2NUM(NI_MAXHOST));
#endif
#if defined(NI_MAXSERV)
/* Maximum length of a service name */
rb_define_const(rb_cSocket, "NI_MAXSERV", INTEGER2NUM(NI_MAXSERV));
/* Maximum length of a service name */
rb_define_const(rb_mSockConst, "NI_MAXSERV", INTEGER2NUM(NI_MAXSERV));
#endif
#if defined(NI_NOFQDN)
/* An FQDN is not required for local hosts, return only the local part */
rb_define_const(rb_cSocket, "NI_NOFQDN", INTEGER2NUM(NI_NOFQDN));
/* An FQDN is not required for local hosts, return only the local part */
rb_define_const(rb_mSockConst, "NI_NOFQDN", INTEGER2NUM(NI_NOFQDN));
#endif
#if defined(NI_NUMERICHOST)
/* Return a numeric address */
rb_define_const(rb_cSocket, "NI_NUMERICHOST", INTEGER2NUM(NI_NUMERICHOST));
/* Return a numeric address */
rb_define_const(rb_mSockConst, "NI_NUMERICHOST", INTEGER2NUM(NI_NUMERICHOST));
#endif
#if defined(NI_NAMEREQD)
/* A name is required */
rb_define_const(rb_cSocket, "NI_NAMEREQD", INTEGER2NUM(NI_NAMEREQD));
/* A name is required */
rb_define_const(rb_mSockConst, "NI_NAMEREQD", INTEGER2NUM(NI_NAMEREQD));
#endif
#if defined(NI_NUMERICSERV)
/* Return the service name as a digit string */
rb_define_const(rb_cSocket, "NI_NUMERICSERV", INTEGER2NUM(NI_NUMERICSERV));
/* Return the service name as a digit string */
rb_define_const(rb_mSockConst, "NI_NUMERICSERV", INTEGER2NUM(NI_NUMERICSERV));
#endif
#if defined(NI_DGRAM)
/* The service specified is a datagram service (looks up UDP ports) */
rb_define_const(rb_cSocket, "NI_DGRAM", INTEGER2NUM(NI_DGRAM));
/* The service specified is a datagram service (looks up UDP ports) */
rb_define_const(rb_mSockConst, "NI_DGRAM", INTEGER2NUM(NI_DGRAM));
#endif
#if defined(SHUT_RD)
/* Shut down the reading side of the socket */
rb_define_const(rb_cSocket, "SHUT_RD", INTEGER2NUM(SHUT_RD));
/* Shut down the reading side of the socket */
rb_define_const(rb_mSockConst, "SHUT_RD", INTEGER2NUM(SHUT_RD));
#endif
#if defined(SHUT_WR)
/* Shut down the writing side of the socket */
rb_define_const(rb_cSocket, "SHUT_WR", INTEGER2NUM(SHUT_WR));
/* Shut down the writing side of the socket */
rb_define_const(rb_mSockConst, "SHUT_WR", INTEGER2NUM(SHUT_WR));
#endif
#if defined(SHUT_RDWR)
/* Shut down the both sides of the socket */
rb_define_const(rb_cSocket, "SHUT_RDWR", INTEGER2NUM(SHUT_RDWR));
/* Shut down the both sides of the socket */
rb_define_const(rb_mSockConst, "SHUT_RDWR", INTEGER2NUM(SHUT_RDWR));
#endif
#if defined(INET6)
#if defined(IPV6_JOIN_GROUP)
/* Join a group membership */
rb_define_const(rb_cSocket, "IPV6_JOIN_GROUP", INTEGER2NUM(IPV6_JOIN_GROUP));
/* Join a group membership */
rb_define_const(rb_mSockConst, "IPV6_JOIN_GROUP", INTEGER2NUM(IPV6_JOIN_GROUP));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_LEAVE_GROUP)
/* Leave a group membership */
rb_define_const(rb_cSocket, "IPV6_LEAVE_GROUP", INTEGER2NUM(IPV6_LEAVE_GROUP));
/* Leave a group membership */
rb_define_const(rb_mSockConst, "IPV6_LEAVE_GROUP", INTEGER2NUM(IPV6_LEAVE_GROUP));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_MULTICAST_HOPS)
/* IP6 multicast hops */
rb_define_const(rb_cSocket, "IPV6_MULTICAST_HOPS", INTEGER2NUM(IPV6_MULTICAST_HOPS));
/* IP6 multicast hops */
rb_define_const(rb_mSockConst, "IPV6_MULTICAST_HOPS", INTEGER2NUM(IPV6_MULTICAST_HOPS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_MULTICAST_IF)
/* IP6 multicast interface */
rb_define_const(rb_cSocket, "IPV6_MULTICAST_IF", INTEGER2NUM(IPV6_MULTICAST_IF));
/* IP6 multicast interface */
rb_define_const(rb_mSockConst, "IPV6_MULTICAST_IF", INTEGER2NUM(IPV6_MULTICAST_IF));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_MULTICAST_LOOP)
/* IP6 multicast loopback */
rb_define_const(rb_cSocket, "IPV6_MULTICAST_LOOP", INTEGER2NUM(IPV6_MULTICAST_LOOP));
/* IP6 multicast loopback */
rb_define_const(rb_mSockConst, "IPV6_MULTICAST_LOOP", INTEGER2NUM(IPV6_MULTICAST_LOOP));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_UNICAST_HOPS)
/* IP6 unicast hops */
rb_define_const(rb_cSocket, "IPV6_UNICAST_HOPS", INTEGER2NUM(IPV6_UNICAST_HOPS));
/* IP6 unicast hops */
rb_define_const(rb_mSockConst, "IPV6_UNICAST_HOPS", INTEGER2NUM(IPV6_UNICAST_HOPS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_V6ONLY)
/* Only bind IPv6 with a wildcard bind */
rb_define_const(rb_cSocket, "IPV6_V6ONLY", INTEGER2NUM(IPV6_V6ONLY));
/* Only bind IPv6 with a wildcard bind */
rb_define_const(rb_mSockConst, "IPV6_V6ONLY", INTEGER2NUM(IPV6_V6ONLY));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_CHECKSUM)
/* Checksum offset for raw sockets */
rb_define_const(rb_cSocket, "IPV6_CHECKSUM", INTEGER2NUM(IPV6_CHECKSUM));
/* Checksum offset for raw sockets */
rb_define_const(rb_mSockConst, "IPV6_CHECKSUM", INTEGER2NUM(IPV6_CHECKSUM));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_DONTFRAG)
/* Don't fragment packets */
rb_define_const(rb_cSocket, "IPV6_DONTFRAG", INTEGER2NUM(IPV6_DONTFRAG));
/* Don't fragment packets */
rb_define_const(rb_mSockConst, "IPV6_DONTFRAG", INTEGER2NUM(IPV6_DONTFRAG));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_DSTOPTS)
/* Destination option */
rb_define_const(rb_cSocket, "IPV6_DSTOPTS", INTEGER2NUM(IPV6_DSTOPTS));
/* Destination option */
rb_define_const(rb_mSockConst, "IPV6_DSTOPTS", INTEGER2NUM(IPV6_DSTOPTS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_HOPLIMIT)
/* Hop limit */
rb_define_const(rb_cSocket, "IPV6_HOPLIMIT", INTEGER2NUM(IPV6_HOPLIMIT));
/* Hop limit */
rb_define_const(rb_mSockConst, "IPV6_HOPLIMIT", INTEGER2NUM(IPV6_HOPLIMIT));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_HOPOPTS)
/* Hop-by-hop option */
rb_define_const(rb_cSocket, "IPV6_HOPOPTS", INTEGER2NUM(IPV6_HOPOPTS));
/* Hop-by-hop option */
rb_define_const(rb_mSockConst, "IPV6_HOPOPTS", INTEGER2NUM(IPV6_HOPOPTS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_NEXTHOP)
/* Next hop address */
rb_define_const(rb_cSocket, "IPV6_NEXTHOP", INTEGER2NUM(IPV6_NEXTHOP));
/* Next hop address */
rb_define_const(rb_mSockConst, "IPV6_NEXTHOP", INTEGER2NUM(IPV6_NEXTHOP));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_PATHMTU)
/* Retrieve current path MTU */
rb_define_const(rb_cSocket, "IPV6_PATHMTU", INTEGER2NUM(IPV6_PATHMTU));
/* Retrieve current path MTU */
rb_define_const(rb_mSockConst, "IPV6_PATHMTU", INTEGER2NUM(IPV6_PATHMTU));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_PKTINFO)
/* Receive packet information with datagram */
rb_define_const(rb_cSocket, "IPV6_PKTINFO", INTEGER2NUM(IPV6_PKTINFO));
/* Receive packet information with datagram */
rb_define_const(rb_mSockConst, "IPV6_PKTINFO", INTEGER2NUM(IPV6_PKTINFO));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RECVDSTOPTS)
/* Receive all IP6 options for response */
rb_define_const(rb_cSocket, "IPV6_RECVDSTOPTS", INTEGER2NUM(IPV6_RECVDSTOPTS));
/* Receive all IP6 options for response */
rb_define_const(rb_mSockConst, "IPV6_RECVDSTOPTS", INTEGER2NUM(IPV6_RECVDSTOPTS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RECVHOPLIMIT)
/* Receive hop limit with datagram */
rb_define_const(rb_cSocket, "IPV6_RECVHOPLIMIT", INTEGER2NUM(IPV6_RECVHOPLIMIT));
/* Receive hop limit with datagram */
rb_define_const(rb_mSockConst, "IPV6_RECVHOPLIMIT", INTEGER2NUM(IPV6_RECVHOPLIMIT));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RECVHOPOPTS)
/* Receive hop-by-hop options */
rb_define_const(rb_cSocket, "IPV6_RECVHOPOPTS", INTEGER2NUM(IPV6_RECVHOPOPTS));
/* Receive hop-by-hop options */
rb_define_const(rb_mSockConst, "IPV6_RECVHOPOPTS", INTEGER2NUM(IPV6_RECVHOPOPTS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RECVPKTINFO)
/* Receive destination IP address and incoming interface */
rb_define_const(rb_cSocket, "IPV6_RECVPKTINFO", INTEGER2NUM(IPV6_RECVPKTINFO));
/* Receive destination IP address and incoming interface */
rb_define_const(rb_mSockConst, "IPV6_RECVPKTINFO", INTEGER2NUM(IPV6_RECVPKTINFO));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RECVRTHDR)
/* Receive routing header */
rb_define_const(rb_cSocket, "IPV6_RECVRTHDR", INTEGER2NUM(IPV6_RECVRTHDR));
/* Receive routing header */
rb_define_const(rb_mSockConst, "IPV6_RECVRTHDR", INTEGER2NUM(IPV6_RECVRTHDR));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RECVTCLASS)
/* Receive traffic class */
rb_define_const(rb_cSocket, "IPV6_RECVTCLASS", INTEGER2NUM(IPV6_RECVTCLASS));
/* Receive traffic class */
rb_define_const(rb_mSockConst, "IPV6_RECVTCLASS", INTEGER2NUM(IPV6_RECVTCLASS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RTHDR)
/* Allows removal of sticky routing headers */
rb_define_const(rb_cSocket, "IPV6_RTHDR", INTEGER2NUM(IPV6_RTHDR));
/* Allows removal of sticky routing headers */
rb_define_const(rb_mSockConst, "IPV6_RTHDR", INTEGER2NUM(IPV6_RTHDR));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RTHDRDSTOPTS)
/* Allows removal of sticky destination options header */
rb_define_const(rb_cSocket, "IPV6_RTHDRDSTOPTS", INTEGER2NUM(IPV6_RTHDRDSTOPTS));
/* Allows removal of sticky destination options header */
rb_define_const(rb_mSockConst, "IPV6_RTHDRDSTOPTS", INTEGER2NUM(IPV6_RTHDRDSTOPTS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RTHDR_TYPE_0)
/* Routing header type 0 */
rb_define_const(rb_cSocket, "IPV6_RTHDR_TYPE_0", INTEGER2NUM(IPV6_RTHDR_TYPE_0));
/* Routing header type 0 */
rb_define_const(rb_mSockConst, "IPV6_RTHDR_TYPE_0", INTEGER2NUM(IPV6_RTHDR_TYPE_0));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_RECVPATHMTU)
/* Receive current path MTU with datagram */
rb_define_const(rb_cSocket, "IPV6_RECVPATHMTU", INTEGER2NUM(IPV6_RECVPATHMTU));
/* Receive current path MTU with datagram */
rb_define_const(rb_mSockConst, "IPV6_RECVPATHMTU", INTEGER2NUM(IPV6_RECVPATHMTU));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_TCLASS)
/* Specify the traffic class */
rb_define_const(rb_cSocket, "IPV6_TCLASS", INTEGER2NUM(IPV6_TCLASS));
/* Specify the traffic class */
rb_define_const(rb_mSockConst, "IPV6_TCLASS", INTEGER2NUM(IPV6_TCLASS));
#endif
#endif
#if defined(INET6)
#if defined(IPV6_USE_MIN_MTU)
/* Use the minimum MTU size */
rb_define_const(rb_cSocket, "IPV6_USE_MIN_MTU", INTEGER2NUM(IPV6_USE_MIN_MTU));
/* Use the minimum MTU size */
rb_define_const(rb_mSockConst, "IPV6_USE_MIN_MTU", INTEGER2NUM(IPV6_USE_MIN_MTU));
#endif
#endif
#if defined(INET_ADDRSTRLEN)
/* Maximum length of an IPv4 address string */
rb_define_const(rb_cSocket, "INET_ADDRSTRLEN", INTEGER2NUM(INET_ADDRSTRLEN));
/* Maximum length of an IPv4 address string */
rb_define_const(rb_mSockConst, "INET_ADDRSTRLEN", INTEGER2NUM(INET_ADDRSTRLEN));
#endif
#if defined(INET6_ADDRSTRLEN)
/* Maximum length of an IPv6 address string */
rb_define_const(rb_cSocket, "INET6_ADDRSTRLEN", INTEGER2NUM(INET6_ADDRSTRLEN));
/* Maximum length of an IPv6 address string */
rb_define_const(rb_mSockConst, "INET6_ADDRSTRLEN", INTEGER2NUM(INET6_ADDRSTRLEN));
#endif
#if defined(IFNAMSIZ)
/* Maximum interface name size */
rb_define_const(rb_cSocket, "IFNAMSIZ", INTEGER2NUM(IFNAMSIZ));
/* Maximum interface name size */
rb_define_const(rb_mSockConst, "IFNAMSIZ", INTEGER2NUM(IFNAMSIZ));
#endif
#if defined(IF_NAMESIZE)
/* Maximum interface name size */
rb_define_const(rb_cSocket, "IF_NAMESIZE", INTEGER2NUM(IF_NAMESIZE));
/* Maximum interface name size */
rb_define_const(rb_mSockConst, "IF_NAMESIZE", INTEGER2NUM(IF_NAMESIZE));
#endif
#if defined(SOMAXCONN)
/* Maximum connection requests that may be queued for a socket */
rb_define_const(rb_cSocket, "SOMAXCONN", INTEGER2NUM(SOMAXCONN));
/* Maximum connection requests that may be queued for a socket */
rb_define_const(rb_mSockConst, "SOMAXCONN", INTEGER2NUM(SOMAXCONN));
#endif
#if defined(SCM_RIGHTS)
/* Access rights */
rb_define_const(rb_cSocket, "SCM_RIGHTS", INTEGER2NUM(SCM_RIGHTS));
/* Access rights */
rb_define_const(rb_mSockConst, "SCM_RIGHTS", INTEGER2NUM(SCM_RIGHTS));
#endif
#if defined(SCM_TIMESTAMP)
/* Timestamp (timeval) */
rb_define_const(rb_cSocket, "SCM_TIMESTAMP", INTEGER2NUM(SCM_TIMESTAMP));
/* Timestamp (timeval) */
rb_define_const(rb_mSockConst, "SCM_TIMESTAMP", INTEGER2NUM(SCM_TIMESTAMP));
#endif
#if defined(SCM_TIMESTAMPNS)
/* Timespec (timespec) */
rb_define_const(rb_cSocket, "SCM_TIMESTAMPNS", INTEGER2NUM(SCM_TIMESTAMPNS));
/* Timespec (timespec) */
rb_define_const(rb_mSockConst, "SCM_TIMESTAMPNS", INTEGER2NUM(SCM_TIMESTAMPNS));
#endif
#if defined(SCM_TIMESTAMPING)
/* Timestamp (timespec list) (Linux 2.6.30) */
rb_define_const(rb_cSocket, "SCM_TIMESTAMPING", INTEGER2NUM(SCM_TIMESTAMPING));
/* Timestamp (timespec list) (Linux 2.6.30) */
rb_define_const(rb_mSockConst, "SCM_TIMESTAMPING", INTEGER2NUM(SCM_TIMESTAMPING));
#endif
#if defined(SCM_BINTIME)
/* Timestamp (bintime) */
rb_define_const(rb_cSocket, "SCM_BINTIME", INTEGER2NUM(SCM_BINTIME));
/* Timestamp (bintime) */
rb_define_const(rb_mSockConst, "SCM_BINTIME", INTEGER2NUM(SCM_BINTIME));
#endif
#if defined(SCM_CREDENTIALS)
/* The sender's credentials */
rb_define_const(rb_cSocket, "SCM_CREDENTIALS", INTEGER2NUM(SCM_CREDENTIALS));
/* The sender's credentials */
rb_define_const(rb_mSockConst, "SCM_CREDENTIALS", INTEGER2NUM(SCM_CREDENTIALS));
#endif
#if defined(SCM_CREDS)
/* Process credentials */
rb_define_const(rb_cSocket, "SCM_CREDS", INTEGER2NUM(SCM_CREDS));
/* Process credentials */
rb_define_const(rb_mSockConst, "SCM_CREDS", INTEGER2NUM(SCM_CREDS));
#endif
#if defined(SCM_UCRED)
/* User credentials */
rb_define_const(rb_cSocket, "SCM_UCRED", INTEGER2NUM(SCM_UCRED));
/* User credentials */
rb_define_const(rb_mSockConst, "SCM_UCRED", INTEGER2NUM(SCM_UCRED));
#endif
#if defined(SCM_WIFI_STATUS)
/* Wifi status (Linux 3.3) */
rb_define_const(rb_cSocket, "SCM_WIFI_STATUS", INTEGER2NUM(SCM_WIFI_STATUS));
/* Wifi status (Linux 3.3) */
rb_define_const(rb_mSockConst, "SCM_WIFI_STATUS", INTEGER2NUM(SCM_WIFI_STATUS));
#endif
#if defined(LOCAL_PEERCRED)
/* Retrieve peer credentials */
rb_define_const(rb_cSocket, "LOCAL_PEERCRED", INTEGER2NUM(LOCAL_PEERCRED));
/* Retrieve peer credentials */
rb_define_const(rb_mSockConst, "LOCAL_PEERCRED", INTEGER2NUM(LOCAL_PEERCRED));
#endif
#if defined(LOCAL_CREDS)
/* Pass credentials to receiver */
rb_define_const(rb_cSocket, "LOCAL_CREDS", INTEGER2NUM(LOCAL_CREDS));
/* Pass credentials to receiver */
rb_define_const(rb_mSockConst, "LOCAL_CREDS", INTEGER2NUM(LOCAL_CREDS));
#endif
#if defined(LOCAL_CONNWAIT)
/* Connect blocks until accepted */
rb_define_const(rb_cSocket, "LOCAL_CONNWAIT", INTEGER2NUM(LOCAL_CONNWAIT));
/* Connect blocks until accepted */
rb_define_const(rb_mSockConst, "LOCAL_CONNWAIT", INTEGER2NUM(LOCAL_CONNWAIT));
#endif
#if defined(IFF_802_1Q_VLAN)
/* 802.1Q VLAN device */
rb_define_const(rb_cSocket, "IFF_802_1Q_VLAN", INTEGER2NUM(IFF_802_1Q_VLAN));
/* 802.1Q VLAN device */
rb_define_const(rb_mSockConst, "IFF_802_1Q_VLAN", INTEGER2NUM(IFF_802_1Q_VLAN));
#endif
#if defined(IFF_ALLMULTI)
/* receive all multicast packets */
rb_define_const(rb_cSocket, "IFF_ALLMULTI", INTEGER2NUM(IFF_ALLMULTI));
/* receive all multicast packets */
rb_define_const(rb_mSockConst, "IFF_ALLMULTI", INTEGER2NUM(IFF_ALLMULTI));
#endif
#if defined(IFF_ALTPHYS)
/* use alternate physical connection */
rb_define_const(rb_cSocket, "IFF_ALTPHYS", INTEGER2NUM(IFF_ALTPHYS));
/* use alternate physical connection */
rb_define_const(rb_mSockConst, "IFF_ALTPHYS", INTEGER2NUM(IFF_ALTPHYS));
#endif
#if defined(IFF_AUTOMEDIA)
/* auto media select active */
rb_define_const(rb_cSocket, "IFF_AUTOMEDIA", INTEGER2NUM(IFF_AUTOMEDIA));
/* auto media select active */
rb_define_const(rb_mSockConst, "IFF_AUTOMEDIA", INTEGER2NUM(IFF_AUTOMEDIA));
#endif
#if defined(IFF_BONDING)
/* bonding master or slave */
rb_define_const(rb_cSocket, "IFF_BONDING", INTEGER2NUM(IFF_BONDING));
/* bonding master or slave */
rb_define_const(rb_mSockConst, "IFF_BONDING", INTEGER2NUM(IFF_BONDING));
#endif
#if defined(IFF_BRIDGE_PORT)
/* device used as bridge port */
rb_define_const(rb_cSocket, "IFF_BRIDGE_PORT", INTEGER2NUM(IFF_BRIDGE_PORT));
/* device used as bridge port */
rb_define_const(rb_mSockConst, "IFF_BRIDGE_PORT", INTEGER2NUM(IFF_BRIDGE_PORT));
#endif
#if defined(IFF_BROADCAST)
/* broadcast address valid */
rb_define_const(rb_cSocket, "IFF_BROADCAST", INTEGER2NUM(IFF_BROADCAST));
/* broadcast address valid */
rb_define_const(rb_mSockConst, "IFF_BROADCAST", INTEGER2NUM(IFF_BROADCAST));
#endif
#if defined(IFF_CANTCONFIG)
/* unconfigurable using ioctl(2) */
rb_define_const(rb_cSocket, "IFF_CANTCONFIG", INTEGER2NUM(IFF_CANTCONFIG));
/* unconfigurable using ioctl(2) */
rb_define_const(rb_mSockConst, "IFF_CANTCONFIG", INTEGER2NUM(IFF_CANTCONFIG));
#endif
#if defined(IFF_DEBUG)
/* turn on debugging */
rb_define_const(rb_cSocket, "IFF_DEBUG", INTEGER2NUM(IFF_DEBUG));
/* turn on debugging */
rb_define_const(rb_mSockConst, "IFF_DEBUG", INTEGER2NUM(IFF_DEBUG));
#endif
#if defined(IFF_DISABLE_NETPOLL)
/* disable netpoll at run-time */
rb_define_const(rb_cSocket, "IFF_DISABLE_NETPOLL", INTEGER2NUM(IFF_DISABLE_NETPOLL));
/* disable netpoll at run-time */
rb_define_const(rb_mSockConst, "IFF_DISABLE_NETPOLL", INTEGER2NUM(IFF_DISABLE_NETPOLL));
#endif
#if defined(IFF_DONT_BRIDGE)
/* disallow bridging this ether dev */
rb_define_const(rb_cSocket, "IFF_DONT_BRIDGE", INTEGER2NUM(IFF_DONT_BRIDGE));
/* disallow bridging this ether dev */
rb_define_const(rb_mSockConst, "IFF_DONT_BRIDGE", INTEGER2NUM(IFF_DONT_BRIDGE));
#endif
#if defined(IFF_DORMANT)
/* driver signals dormant */
rb_define_const(rb_cSocket, "IFF_DORMANT", INTEGER2NUM(IFF_DORMANT));
/* driver signals dormant */
rb_define_const(rb_mSockConst, "IFF_DORMANT", INTEGER2NUM(IFF_DORMANT));
#endif
#if defined(IFF_DRV_OACTIVE)
/* tx hardware queue is full */
rb_define_const(rb_cSocket, "IFF_DRV_OACTIVE", INTEGER2NUM(IFF_DRV_OACTIVE));
/* tx hardware queue is full */
rb_define_const(rb_mSockConst, "IFF_DRV_OACTIVE", INTEGER2NUM(IFF_DRV_OACTIVE));
#endif
#if defined(IFF_DRV_RUNNING)
/* resources allocated */
rb_define_const(rb_cSocket, "IFF_DRV_RUNNING", INTEGER2NUM(IFF_DRV_RUNNING));
/* resources allocated */
rb_define_const(rb_mSockConst, "IFF_DRV_RUNNING", INTEGER2NUM(IFF_DRV_RUNNING));
#endif
#if defined(IFF_DYING)
/* interface is winding down */
rb_define_const(rb_cSocket, "IFF_DYING", INTEGER2NUM(IFF_DYING));
/* interface is winding down */
rb_define_const(rb_mSockConst, "IFF_DYING", INTEGER2NUM(IFF_DYING));
#endif
#if defined(IFF_DYNAMIC)
/* dialup device with changing addresses */
rb_define_const(rb_cSocket, "IFF_DYNAMIC", INTEGER2NUM(IFF_DYNAMIC));
/* dialup device with changing addresses */
rb_define_const(rb_mSockConst, "IFF_DYNAMIC", INTEGER2NUM(IFF_DYNAMIC));
#endif
#if defined(IFF_EBRIDGE)
/* ethernet bridging device */
rb_define_const(rb_cSocket, "IFF_EBRIDGE", INTEGER2NUM(IFF_EBRIDGE));
/* ethernet bridging device */
rb_define_const(rb_mSockConst, "IFF_EBRIDGE", INTEGER2NUM(IFF_EBRIDGE));
#endif
#if defined(IFF_ECHO)
/* echo sent packets */
rb_define_const(rb_cSocket, "IFF_ECHO", INTEGER2NUM(IFF_ECHO));
/* echo sent packets */
rb_define_const(rb_mSockConst, "IFF_ECHO", INTEGER2NUM(IFF_ECHO));
#endif
#if defined(IFF_ISATAP)
/* ISATAP interface (RFC4214) */
rb_define_const(rb_cSocket, "IFF_ISATAP", INTEGER2NUM(IFF_ISATAP));
/* ISATAP interface (RFC4214) */
rb_define_const(rb_mSockConst, "IFF_ISATAP", INTEGER2NUM(IFF_ISATAP));
#endif
#if defined(IFF_LINK0)
/* per link layer defined bit 0 */
rb_define_const(rb_cSocket, "IFF_LINK0", INTEGER2NUM(IFF_LINK0));
/* per link layer defined bit 0 */
rb_define_const(rb_mSockConst, "IFF_LINK0", INTEGER2NUM(IFF_LINK0));
#endif
#if defined(IFF_LINK1)
/* per link layer defined bit 1 */
rb_define_const(rb_cSocket, "IFF_LINK1", INTEGER2NUM(IFF_LINK1));
/* per link layer defined bit 1 */
rb_define_const(rb_mSockConst, "IFF_LINK1", INTEGER2NUM(IFF_LINK1));
#endif
#if defined(IFF_LINK2)
/* per link layer defined bit 2 */
rb_define_const(rb_cSocket, "IFF_LINK2", INTEGER2NUM(IFF_LINK2));
/* per link layer defined bit 2 */
rb_define_const(rb_mSockConst, "IFF_LINK2", INTEGER2NUM(IFF_LINK2));
#endif
#if defined(IFF_LIVE_ADDR_CHANGE)
/* hardware address change when it's running */
rb_define_const(rb_cSocket, "IFF_LIVE_ADDR_CHANGE", INTEGER2NUM(IFF_LIVE_ADDR_CHANGE));
/* hardware address change when it's running */
rb_define_const(rb_mSockConst, "IFF_LIVE_ADDR_CHANGE", INTEGER2NUM(IFF_LIVE_ADDR_CHANGE));
#endif
#if defined(IFF_LOOPBACK)
/* loopback net */
rb_define_const(rb_cSocket, "IFF_LOOPBACK", INTEGER2NUM(IFF_LOOPBACK));
/* loopback net */
rb_define_const(rb_mSockConst, "IFF_LOOPBACK", INTEGER2NUM(IFF_LOOPBACK));
#endif
#if defined(IFF_LOWER_UP)
/* driver signals L1 up */
rb_define_const(rb_cSocket, "IFF_LOWER_UP", INTEGER2NUM(IFF_LOWER_UP));
/* driver signals L1 up */
rb_define_const(rb_mSockConst, "IFF_LOWER_UP", INTEGER2NUM(IFF_LOWER_UP));
#endif
#if defined(IFF_MACVLAN_PORT)
/* device used as macvlan port */
rb_define_const(rb_cSocket, "IFF_MACVLAN_PORT", INTEGER2NUM(IFF_MACVLAN_PORT));
/* device used as macvlan port */
rb_define_const(rb_mSockConst, "IFF_MACVLAN_PORT", INTEGER2NUM(IFF_MACVLAN_PORT));
#endif
#if defined(IFF_MASTER)
/* master of a load balancer */
rb_define_const(rb_cSocket, "IFF_MASTER", INTEGER2NUM(IFF_MASTER));
/* master of a load balancer */
rb_define_const(rb_mSockConst, "IFF_MASTER", INTEGER2NUM(IFF_MASTER));
#endif
#if defined(IFF_MASTER_8023AD)
/* bonding master, 802.3ad. */
rb_define_const(rb_cSocket, "IFF_MASTER_8023AD", INTEGER2NUM(IFF_MASTER_8023AD));
/* bonding master, 802.3ad. */
rb_define_const(rb_mSockConst, "IFF_MASTER_8023AD", INTEGER2NUM(IFF_MASTER_8023AD));
#endif
#if defined(IFF_MASTER_ALB)
/* bonding master, balance-alb. */
rb_define_const(rb_cSocket, "IFF_MASTER_ALB", INTEGER2NUM(IFF_MASTER_ALB));
/* bonding master, balance-alb. */
rb_define_const(rb_mSockConst, "IFF_MASTER_ALB", INTEGER2NUM(IFF_MASTER_ALB));
#endif
#if defined(IFF_MASTER_ARPMON)
/* bonding master, ARP mon in use */
rb_define_const(rb_cSocket, "IFF_MASTER_ARPMON", INTEGER2NUM(IFF_MASTER_ARPMON));
/* bonding master, ARP mon in use */
rb_define_const(rb_mSockConst, "IFF_MASTER_ARPMON", INTEGER2NUM(IFF_MASTER_ARPMON));
#endif
#if defined(IFF_MONITOR)
/* user-requested monitor mode */
rb_define_const(rb_cSocket, "IFF_MONITOR", INTEGER2NUM(IFF_MONITOR));
/* user-requested monitor mode */
rb_define_const(rb_mSockConst, "IFF_MONITOR", INTEGER2NUM(IFF_MONITOR));
#endif
#if defined(IFF_MULTICAST)
/* supports multicast */
rb_define_const(rb_cSocket, "IFF_MULTICAST", INTEGER2NUM(IFF_MULTICAST));
/* supports multicast */
rb_define_const(rb_mSockConst, "IFF_MULTICAST", INTEGER2NUM(IFF_MULTICAST));
#endif
#if defined(IFF_NOARP)
/* no address resolution protocol */
rb_define_const(rb_cSocket, "IFF_NOARP", INTEGER2NUM(IFF_NOARP));
/* no address resolution protocol */
rb_define_const(rb_mSockConst, "IFF_NOARP", INTEGER2NUM(IFF_NOARP));
#endif
#if defined(IFF_NOTRAILERS)
/* avoid use of trailers */
rb_define_const(rb_cSocket, "IFF_NOTRAILERS", INTEGER2NUM(IFF_NOTRAILERS));
/* avoid use of trailers */
rb_define_const(rb_mSockConst, "IFF_NOTRAILERS", INTEGER2NUM(IFF_NOTRAILERS));
#endif
#if defined(IFF_OACTIVE)
/* transmission in progress */
rb_define_const(rb_cSocket, "IFF_OACTIVE", INTEGER2NUM(IFF_OACTIVE));
/* transmission in progress */
rb_define_const(rb_mSockConst, "IFF_OACTIVE", INTEGER2NUM(IFF_OACTIVE));
#endif
#if defined(IFF_OVS_DATAPATH)
/* device used as Open vSwitch datapath port */
rb_define_const(rb_cSocket, "IFF_OVS_DATAPATH", INTEGER2NUM(IFF_OVS_DATAPATH));
/* device used as Open vSwitch datapath port */
rb_define_const(rb_mSockConst, "IFF_OVS_DATAPATH", INTEGER2NUM(IFF_OVS_DATAPATH));
#endif
#if defined(IFF_POINTOPOINT)
/* point-to-point link */
rb_define_const(rb_cSocket, "IFF_POINTOPOINT", INTEGER2NUM(IFF_POINTOPOINT));
/* point-to-point link */
rb_define_const(rb_mSockConst, "IFF_POINTOPOINT", INTEGER2NUM(IFF_POINTOPOINT));
#endif
#if defined(IFF_PORTSEL)
/* can set media type */
rb_define_const(rb_cSocket, "IFF_PORTSEL", INTEGER2NUM(IFF_PORTSEL));
/* can set media type */
rb_define_const(rb_mSockConst, "IFF_PORTSEL", INTEGER2NUM(IFF_PORTSEL));
#endif
#if defined(IFF_PPROMISC)
/* user-requested promisc mode */
rb_define_const(rb_cSocket, "IFF_PPROMISC", INTEGER2NUM(IFF_PPROMISC));
/* user-requested promisc mode */
rb_define_const(rb_mSockConst, "IFF_PPROMISC", INTEGER2NUM(IFF_PPROMISC));
#endif
#if defined(IFF_PROMISC)
/* receive all packets */
rb_define_const(rb_cSocket, "IFF_PROMISC", INTEGER2NUM(IFF_PROMISC));
/* receive all packets */
rb_define_const(rb_mSockConst, "IFF_PROMISC", INTEGER2NUM(IFF_PROMISC));
#endif
#if defined(IFF_RENAMING)
/* interface is being renamed */
rb_define_const(rb_cSocket, "IFF_RENAMING", INTEGER2NUM(IFF_RENAMING));
/* interface is being renamed */
rb_define_const(rb_mSockConst, "IFF_RENAMING", INTEGER2NUM(IFF_RENAMING));
#endif
#if defined(IFF_ROUTE)
/* routing entry installed */
rb_define_const(rb_cSocket, "IFF_ROUTE", INTEGER2NUM(IFF_ROUTE));
/* routing entry installed */
rb_define_const(rb_mSockConst, "IFF_ROUTE", INTEGER2NUM(IFF_ROUTE));
#endif
#if defined(IFF_RUNNING)
/* resources allocated */
rb_define_const(rb_cSocket, "IFF_RUNNING", INTEGER2NUM(IFF_RUNNING));
/* resources allocated */
rb_define_const(rb_mSockConst, "IFF_RUNNING", INTEGER2NUM(IFF_RUNNING));
#endif
#if defined(IFF_SIMPLEX)
/* can't hear own transmissions */
rb_define_const(rb_cSocket, "IFF_SIMPLEX", INTEGER2NUM(IFF_SIMPLEX));
/* can't hear own transmissions */
rb_define_const(rb_mSockConst, "IFF_SIMPLEX", INTEGER2NUM(IFF_SIMPLEX));
#endif
#if defined(IFF_SLAVE)
/* slave of a load balancer */
rb_define_const(rb_cSocket, "IFF_SLAVE", INTEGER2NUM(IFF_SLAVE));
/* slave of a load balancer */
rb_define_const(rb_mSockConst, "IFF_SLAVE", INTEGER2NUM(IFF_SLAVE));
#endif
#if defined(IFF_SLAVE_INACTIVE)
/* bonding slave not the curr. active */
rb_define_const(rb_cSocket, "IFF_SLAVE_INACTIVE", INTEGER2NUM(IFF_SLAVE_INACTIVE));
/* bonding slave not the curr. active */
rb_define_const(rb_mSockConst, "IFF_SLAVE_INACTIVE", INTEGER2NUM(IFF_SLAVE_INACTIVE));
#endif
#if defined(IFF_SLAVE_NEEDARP)
/* need ARPs for validation */
rb_define_const(rb_cSocket, "IFF_SLAVE_NEEDARP", INTEGER2NUM(IFF_SLAVE_NEEDARP));
/* need ARPs for validation */
rb_define_const(rb_mSockConst, "IFF_SLAVE_NEEDARP", INTEGER2NUM(IFF_SLAVE_NEEDARP));
#endif
#if defined(IFF_SMART)
/* interface manages own routes */
rb_define_const(rb_cSocket, "IFF_SMART", INTEGER2NUM(IFF_SMART));
/* interface manages own routes */
rb_define_const(rb_mSockConst, "IFF_SMART", INTEGER2NUM(IFF_SMART));
#endif
#if defined(IFF_STATICARP)
/* static ARP */
rb_define_const(rb_cSocket, "IFF_STATICARP", INTEGER2NUM(IFF_STATICARP));
/* static ARP */
rb_define_const(rb_mSockConst, "IFF_STATICARP", INTEGER2NUM(IFF_STATICARP));
#endif
#if defined(IFF_SUPP_NOFCS)
/* sending custom FCS */
rb_define_const(rb_cSocket, "IFF_SUPP_NOFCS", INTEGER2NUM(IFF_SUPP_NOFCS));
/* sending custom FCS */
rb_define_const(rb_mSockConst, "IFF_SUPP_NOFCS", INTEGER2NUM(IFF_SUPP_NOFCS));
#endif
#if defined(IFF_TEAM_PORT)
/* used as team port */
rb_define_const(rb_cSocket, "IFF_TEAM_PORT", INTEGER2NUM(IFF_TEAM_PORT));
/* used as team port */
rb_define_const(rb_mSockConst, "IFF_TEAM_PORT", INTEGER2NUM(IFF_TEAM_PORT));
#endif
#if defined(IFF_TX_SKB_SHARING)
/* sharing skbs on transmit */
rb_define_const(rb_cSocket, "IFF_TX_SKB_SHARING", INTEGER2NUM(IFF_TX_SKB_SHARING));
/* sharing skbs on transmit */
rb_define_const(rb_mSockConst, "IFF_TX_SKB_SHARING", INTEGER2NUM(IFF_TX_SKB_SHARING));
#endif
#if defined(IFF_UNICAST_FLT)
/* unicast filtering */
rb_define_const(rb_cSocket, "IFF_UNICAST_FLT", INTEGER2NUM(IFF_UNICAST_FLT));
/* unicast filtering */
rb_define_const(rb_mSockConst, "IFF_UNICAST_FLT", INTEGER2NUM(IFF_UNICAST_FLT));
#endif
#if defined(IFF_UP)
/* interface is up */
rb_define_const(rb_cSocket, "IFF_UP", INTEGER2NUM(IFF_UP));
/* interface is up */
rb_define_const(rb_mSockConst, "IFF_UP", INTEGER2NUM(IFF_UP));
#endif
#if defined(IFF_WAN_HDLC)
/* WAN HDLC device */
rb_define_const(rb_cSocket, "IFF_WAN_HDLC", INTEGER2NUM(IFF_WAN_HDLC));
/* WAN HDLC device */
rb_define_const(rb_mSockConst, "IFF_WAN_HDLC", INTEGER2NUM(IFF_WAN_HDLC));
#endif
#if defined(IFF_XMIT_DST_RELEASE)
/* dev_hard_start_xmit() is allowed to release skb->dst */
rb_define_const(rb_cSocket, "IFF_XMIT_DST_RELEASE", INTEGER2NUM(IFF_XMIT_DST_RELEASE));
/* dev_hard_start_xmit() is allowed to release skb->dst */
rb_define_const(rb_mSockConst, "IFF_XMIT_DST_RELEASE", INTEGER2NUM(IFF_XMIT_DST_RELEASE));
#endif
#if defined(IFF_VOLATILE)
/* volatile flags */
rb_define_const(rb_cSocket, "IFF_VOLATILE", INTEGER2NUM(IFF_VOLATILE));
/* volatile flags */
rb_define_const(rb_mSockConst, "IFF_VOLATILE", INTEGER2NUM(IFF_VOLATILE));
#endif
#if defined(IFF_CANTCHANGE)
/* flags not changeable */
rb_define_const(rb_cSocket, "IFF_CANTCHANGE", INTEGER2NUM(IFF_CANTCHANGE));
/* flags not changeable */
rb_define_const(rb_mSockConst, "IFF_CANTCHANGE", INTEGER2NUM(IFF_CANTCHANGE));
#endif
rsock_intern_family_hash = st_init_numtable();
#ifdef AF_E164
st_insert(rsock_intern_family_hash, (st_data_t)AF_E164, (st_data_t)rb_intern2("AF_E164", 7));
#endif
#ifdef AF_PACKET
st_insert(rsock_intern_family_hash, (st_data_t)AF_PACKET, (st_data_t)rb_intern2("AF_PACKET", 9));
#endif
#ifdef AF_MAX
st_insert(rsock_intern_family_hash, (st_data_t)AF_MAX, (st_data_t)rb_intern2("AF_MAX", 6));
#endif
#ifdef AF_NETGRAPH
st_insert(rsock_intern_family_hash, (st_data_t)AF_NETGRAPH, (st_data_t)rb_intern2("AF_NETGRAPH", 11));
#endif
#ifdef AF_ATM
st_insert(rsock_intern_family_hash, (st_data_t)AF_ATM, (st_data_t)rb_intern2("AF_ATM", 6));
#endif
#ifdef AF_PPP
st_insert(rsock_intern_family_hash, (st_data_t)AF_PPP, (st_data_t)rb_intern2("AF_PPP", 6));
#endif
#ifdef AF_NETBIOS
st_insert(rsock_intern_family_hash, (st_data_t)AF_NETBIOS, (st_data_t)rb_intern2("AF_NETBIOS", 10));
#endif
#ifdef AF_SYSTEM
st_insert(rsock_intern_family_hash, (st_data_t)AF_SYSTEM, (st_data_t)rb_intern2("AF_SYSTEM", 9));
#endif
#ifdef AF_NATM
st_insert(rsock_intern_family_hash, (st_data_t)AF_NATM, (st_data_t)rb_intern2("AF_NATM", 7));
#endif
#ifdef AF_ISDN
st_insert(rsock_intern_family_hash, (st_data_t)AF_ISDN, (st_data_t)rb_intern2("AF_ISDN", 7));
#endif
#ifdef AF_NDRV
st_insert(rsock_intern_family_hash, (st_data_t)AF_NDRV, (st_data_t)rb_intern2("AF_NDRV", 7));
#endif
#ifdef AF_SIP
st_insert(rsock_intern_family_hash, (st_data_t)AF_SIP, (st_data_t)rb_intern2("AF_SIP", 6));
#endif
#ifdef AF_CNT
st_insert(rsock_intern_family_hash, (st_data_t)AF_CNT, (st_data_t)rb_intern2("AF_CNT", 6));
#endif
#ifdef AF_COIP
st_insert(rsock_intern_family_hash, (st_data_t)AF_COIP, (st_data_t)rb_intern2("AF_COIP", 7));
#endif
#ifdef AF_LINK
st_insert(rsock_intern_family_hash, (st_data_t)AF_LINK, (st_data_t)rb_intern2("AF_LINK", 7));
#endif
#ifdef AF_ROUTE
st_insert(rsock_intern_family_hash, (st_data_t)AF_ROUTE, (st_data_t)rb_intern2("AF_ROUTE", 8));
#endif
#ifdef AF_HYLINK
st_insert(rsock_intern_family_hash, (st_data_t)AF_HYLINK, (st_data_t)rb_intern2("AF_HYLINK", 9));
#endif
#ifdef AF_LAT
st_insert(rsock_intern_family_hash, (st_data_t)AF_LAT, (st_data_t)rb_intern2("AF_LAT", 6));
#endif
#ifdef AF_DLI
st_insert(rsock_intern_family_hash, (st_data_t)AF_DLI, (st_data_t)rb_intern2("AF_DLI", 6));
#endif
#ifdef AF_DEC
st_insert(rsock_intern_family_hash, (st_data_t)AF_DEC, (st_data_t)rb_intern2("AF_DEC", 6));
#endif
#ifdef AF_SNA
st_insert(rsock_intern_family_hash, (st_data_t)AF_SNA, (st_data_t)rb_intern2("AF_SNA", 6));
#endif
#ifdef AF_CCITT
st_insert(rsock_intern_family_hash, (st_data_t)AF_CCITT, (st_data_t)rb_intern2("AF_CCITT", 8));
#endif
#ifdef AF_DATAKIT
st_insert(rsock_intern_family_hash, (st_data_t)AF_DATAKIT, (st_data_t)rb_intern2("AF_DATAKIT", 10));
#endif
#ifdef AF_ECMA
st_insert(rsock_intern_family_hash, (st_data_t)AF_ECMA, (st_data_t)rb_intern2("AF_ECMA", 7));
#endif
#ifdef AF_OSI
st_insert(rsock_intern_family_hash, (st_data_t)AF_OSI, (st_data_t)rb_intern2("AF_OSI", 6));
#endif
#ifdef AF_ISO
st_insert(rsock_intern_family_hash, (st_data_t)AF_ISO, (st_data_t)rb_intern2("AF_ISO", 6));
#endif
#ifdef AF_NS
st_insert(rsock_intern_family_hash, (st_data_t)AF_NS, (st_data_t)rb_intern2("AF_NS", 5));
#endif
#ifdef AF_CHAOS
st_insert(rsock_intern_family_hash, (st_data_t)AF_CHAOS, (st_data_t)rb_intern2("AF_CHAOS", 8));
#endif
#ifdef AF_PUP
st_insert(rsock_intern_family_hash, (st_data_t)AF_PUP, (st_data_t)rb_intern2("AF_PUP", 6));
#endif
#ifdef AF_IMPLINK
st_insert(rsock_intern_family_hash, (st_data_t)AF_IMPLINK, (st_data_t)rb_intern2("AF_IMPLINK", 10));
#endif
#ifdef AF_LOCAL
st_insert(rsock_intern_family_hash, (st_data_t)AF_LOCAL, (st_data_t)rb_intern2("AF_LOCAL", 8));
#endif
#ifdef AF_APPLETALK
st_insert(rsock_intern_family_hash, (st_data_t)AF_APPLETALK, (st_data_t)rb_intern2("AF_APPLETALK", 12));
#endif
#ifdef AF_IPX
st_insert(rsock_intern_family_hash, (st_data_t)AF_IPX, (st_data_t)rb_intern2("AF_IPX", 6));
#endif
#ifdef AF_AX25
st_insert(rsock_intern_family_hash, (st_data_t)AF_AX25, (st_data_t)rb_intern2("AF_AX25", 7));
#endif
#ifdef AF_UNIX
st_insert(rsock_intern_family_hash, (st_data_t)AF_UNIX, (st_data_t)rb_intern2("AF_UNIX", 7));
#endif
#ifdef AF_INET6
st_insert(rsock_intern_family_hash, (st_data_t)AF_INET6, (st_data_t)rb_intern2("AF_INET6", 8));
#endif
#ifdef AF_INET
st_insert(rsock_intern_family_hash, (st_data_t)AF_INET, (st_data_t)rb_intern2("AF_INET", 7));
#endif
#ifdef AF_UNSPEC
st_insert(rsock_intern_family_hash, (st_data_t)AF_UNSPEC, (st_data_t)rb_intern2("AF_UNSPEC", 9));
#endif
rsock_intern_family_noprefix_hash = st_init_numtable();
#ifdef AF_E164
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_E164, (st_data_t)rb_intern2("AF_E164", 7));
#endif
#ifdef AF_PACKET
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PACKET, (st_data_t)rb_intern2("AF_PACKET", 9));
#endif
#ifdef AF_MAX
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_MAX, (st_data_t)rb_intern2("AF_MAX", 6));
#endif
#ifdef AF_NETGRAPH
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETGRAPH, (st_data_t)rb_intern2("AF_NETGRAPH", 11));
#endif
#ifdef AF_ATM
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ATM, (st_data_t)rb_intern2("AF_ATM", 6));
#endif
#ifdef AF_PPP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PPP, (st_data_t)rb_intern2("AF_PPP", 6));
#endif
#ifdef AF_NETBIOS
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETBIOS, (st_data_t)rb_intern2("AF_NETBIOS", 10));
#endif
#ifdef AF_SYSTEM
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SYSTEM, (st_data_t)rb_intern2("AF_SYSTEM", 9));
#endif
#ifdef AF_NATM
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NATM, (st_data_t)rb_intern2("AF_NATM", 7));
#endif
#ifdef AF_ISDN
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISDN, (st_data_t)rb_intern2("AF_ISDN", 7));
#endif
#ifdef AF_NDRV
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NDRV, (st_data_t)rb_intern2("AF_NDRV", 7));
#endif
#ifdef AF_SIP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SIP, (st_data_t)rb_intern2("AF_SIP", 6));
#endif
#ifdef AF_CNT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CNT, (st_data_t)rb_intern2("AF_CNT", 6));
#endif
#ifdef AF_COIP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_COIP, (st_data_t)rb_intern2("AF_COIP", 7));
#endif
#ifdef AF_LINK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LINK, (st_data_t)rb_intern2("AF_LINK", 7));
#endif
#ifdef AF_ROUTE
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ROUTE, (st_data_t)rb_intern2("AF_ROUTE", 8));
#endif
#ifdef AF_HYLINK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_HYLINK, (st_data_t)rb_intern2("AF_HYLINK", 9));
#endif
#ifdef AF_LAT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LAT, (st_data_t)rb_intern2("AF_LAT", 6));
#endif
#ifdef AF_DLI
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DLI, (st_data_t)rb_intern2("AF_DLI", 6));
#endif
#ifdef AF_DEC
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DEC, (st_data_t)rb_intern2("AF_DEC", 6));
#endif
#ifdef AF_SNA
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SNA, (st_data_t)rb_intern2("AF_SNA", 6));
#endif
#ifdef AF_CCITT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CCITT, (st_data_t)rb_intern2("AF_CCITT", 8));
#endif
#ifdef AF_DATAKIT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DATAKIT, (st_data_t)rb_intern2("AF_DATAKIT", 10));
#endif
#ifdef AF_ECMA
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ECMA, (st_data_t)rb_intern2("AF_ECMA", 7));
#endif
#ifdef AF_OSI
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_OSI, (st_data_t)rb_intern2("AF_OSI", 6));
#endif
#ifdef AF_ISO
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISO, (st_data_t)rb_intern2("AF_ISO", 6));
#endif
#ifdef AF_NS
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NS, (st_data_t)rb_intern2("AF_NS", 5));
#endif
#ifdef AF_CHAOS
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CHAOS, (st_data_t)rb_intern2("AF_CHAOS", 8));
#endif
#ifdef AF_PUP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PUP, (st_data_t)rb_intern2("AF_PUP", 6));
#endif
#ifdef AF_IMPLINK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IMPLINK, (st_data_t)rb_intern2("AF_IMPLINK", 10));
#endif
#ifdef AF_LOCAL
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LOCAL, (st_data_t)rb_intern2("AF_LOCAL", 8));
#endif
#ifdef AF_APPLETALK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_APPLETALK, (st_data_t)rb_intern2("AF_APPLETALK", 12));
#endif
#ifdef AF_IPX
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IPX, (st_data_t)rb_intern2("AF_IPX", 6));
#endif
#ifdef AF_AX25
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_AX25, (st_data_t)rb_intern2("AF_AX25", 7));
#endif
#ifdef AF_UNIX
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNIX, (st_data_t)rb_intern2("AF_UNIX", 7));
#endif
#ifdef AF_INET6
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET6, (st_data_t)rb_intern2("AF_INET6", 8));
#endif
#ifdef AF_INET
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET, (st_data_t)rb_intern2("AF_INET", 7));
#endif
#ifdef AF_UNSPEC
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNSPEC, (st_data_t)rb_intern2("AF_UNSPEC", 9));
#endif
#ifdef AF_E164
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_E164, (st_data_t)rb_intern2("E164", 4));
#endif
#ifdef AF_PACKET
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PACKET, (st_data_t)rb_intern2("PACKET", 6));
#endif
#ifdef AF_MAX
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_MAX, (st_data_t)rb_intern2("MAX", 3));
#endif
#ifdef AF_NETGRAPH
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETGRAPH, (st_data_t)rb_intern2("NETGRAPH", 8));
#endif
#ifdef AF_ATM
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ATM, (st_data_t)rb_intern2("ATM", 3));
#endif
#ifdef AF_PPP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PPP, (st_data_t)rb_intern2("PPP", 3));
#endif
#ifdef AF_NETBIOS
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETBIOS, (st_data_t)rb_intern2("NETBIOS", 7));
#endif
#ifdef AF_SYSTEM
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SYSTEM, (st_data_t)rb_intern2("SYSTEM", 6));
#endif
#ifdef AF_NATM
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NATM, (st_data_t)rb_intern2("NATM", 4));
#endif
#ifdef AF_ISDN
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISDN, (st_data_t)rb_intern2("ISDN", 4));
#endif
#ifdef AF_NDRV
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NDRV, (st_data_t)rb_intern2("NDRV", 4));
#endif
#ifdef AF_SIP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SIP, (st_data_t)rb_intern2("SIP", 3));
#endif
#ifdef AF_CNT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CNT, (st_data_t)rb_intern2("CNT", 3));
#endif
#ifdef AF_COIP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_COIP, (st_data_t)rb_intern2("COIP", 4));
#endif
#ifdef AF_LINK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LINK, (st_data_t)rb_intern2("LINK", 4));
#endif
#ifdef AF_ROUTE
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ROUTE, (st_data_t)rb_intern2("ROUTE", 5));
#endif
#ifdef AF_HYLINK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_HYLINK, (st_data_t)rb_intern2("HYLINK", 6));
#endif
#ifdef AF_LAT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LAT, (st_data_t)rb_intern2("LAT", 3));
#endif
#ifdef AF_DLI
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DLI, (st_data_t)rb_intern2("DLI", 3));
#endif
#ifdef AF_DEC
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DEC, (st_data_t)rb_intern2("DEC", 3));
#endif
#ifdef AF_SNA
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SNA, (st_data_t)rb_intern2("SNA", 3));
#endif
#ifdef AF_CCITT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CCITT, (st_data_t)rb_intern2("CCITT", 5));
#endif
#ifdef AF_DATAKIT
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DATAKIT, (st_data_t)rb_intern2("DATAKIT", 7));
#endif
#ifdef AF_ECMA
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ECMA, (st_data_t)rb_intern2("ECMA", 4));
#endif
#ifdef AF_OSI
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_OSI, (st_data_t)rb_intern2("OSI", 3));
#endif
#ifdef AF_ISO
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISO, (st_data_t)rb_intern2("ISO", 3));
#endif
#ifdef AF_NS
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NS, (st_data_t)rb_intern2("NS", 2));
#endif
#ifdef AF_CHAOS
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CHAOS, (st_data_t)rb_intern2("CHAOS", 5));
#endif
#ifdef AF_PUP
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PUP, (st_data_t)rb_intern2("PUP", 3));
#endif
#ifdef AF_IMPLINK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IMPLINK, (st_data_t)rb_intern2("IMPLINK", 7));
#endif
#ifdef AF_LOCAL
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LOCAL, (st_data_t)rb_intern2("LOCAL", 5));
#endif
#ifdef AF_APPLETALK
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_APPLETALK, (st_data_t)rb_intern2("APPLETALK", 9));
#endif
#ifdef AF_IPX
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IPX, (st_data_t)rb_intern2("IPX", 3));
#endif
#ifdef AF_AX25
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_AX25, (st_data_t)rb_intern2("AX25", 4));
#endif
#ifdef AF_UNIX
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNIX, (st_data_t)rb_intern2("UNIX", 4));
#endif
#ifdef AF_INET6
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET6, (st_data_t)rb_intern2("INET6", 5));
#endif
#ifdef AF_INET
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET, (st_data_t)rb_intern2("INET", 4));
#endif
#ifdef AF_UNSPEC
st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNSPEC, (st_data_t)rb_intern2("UNSPEC", 6));
#endif
rsock_intern_protocol_family_hash = st_init_numtable();
#ifdef PF_KEY
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_KEY, (st_data_t)rb_intern2("PF_KEY", 6));
#endif
#ifdef PF_PIP
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PIP, (st_data_t)rb_intern2("PF_PIP", 6));
#endif
#ifdef PF_RTIP
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_RTIP, (st_data_t)rb_intern2("PF_RTIP", 7));
#endif
#ifdef PF_XTP
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_XTP, (st_data_t)rb_intern2("PF_XTP", 6));
#endif
#ifdef PF_PACKET
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PACKET, (st_data_t)rb_intern2("PF_PACKET", 9));
#endif
#ifdef PF_MAX
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_MAX, (st_data_t)rb_intern2("PF_MAX", 6));
#endif
#ifdef PF_NETGRAPH
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NETGRAPH, (st_data_t)rb_intern2("PF_NETGRAPH", 11));
#endif
#ifdef PF_ATM
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ATM, (st_data_t)rb_intern2("PF_ATM", 6));
#endif
#ifdef PF_PPP
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PPP, (st_data_t)rb_intern2("PF_PPP", 6));
#endif
#ifdef PF_NETBIOS
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NETBIOS, (st_data_t)rb_intern2("PF_NETBIOS", 10));
#endif
#ifdef PF_SYSTEM
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_SYSTEM, (st_data_t)rb_intern2("PF_SYSTEM", 9));
#endif
#ifdef PF_NATM
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NATM, (st_data_t)rb_intern2("PF_NATM", 7));
#endif
#ifdef PF_ISDN
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ISDN, (st_data_t)rb_intern2("PF_ISDN", 7));
#endif
#ifdef PF_NDRV
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NDRV, (st_data_t)rb_intern2("PF_NDRV", 7));
#endif
#ifdef PF_SIP
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_SIP, (st_data_t)rb_intern2("PF_SIP", 6));
#endif
#ifdef PF_CNT
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_CNT, (st_data_t)rb_intern2("PF_CNT", 6));
#endif
#ifdef PF_COIP
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_COIP, (st_data_t)rb_intern2("PF_COIP", 7));
#endif
#ifdef PF_LINK
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_LINK, (st_data_t)rb_intern2("PF_LINK", 7));
#endif
#ifdef PF_ROUTE
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ROUTE, (st_data_t)rb_intern2("PF_ROUTE", 8));
#endif
#ifdef PF_HYLINK
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_HYLINK, (st_data_t)rb_intern2("PF_HYLINK", 9));
#endif
#ifdef PF_LAT
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_LAT, (st_data_t)rb_intern2("PF_LAT", 6));
#endif
#ifdef PF_DLI
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_DLI, (st_data_t)rb_intern2("PF_DLI", 6));
#endif
#ifdef PF_DEC
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_DEC, (st_data_t)rb_intern2("PF_DEC", 6));
#endif
#ifdef PF_SNA
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_SNA, (st_data_t)rb_intern2("PF_SNA", 6));
#endif
#ifdef PF_CCITT
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_CCITT, (st_data_t)rb_intern2("PF_CCITT", 8));
#endif
#ifdef PF_DATAKIT
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_DATAKIT, (st_data_t)rb_intern2("PF_DATAKIT", 10));
#endif
#ifdef PF_ECMA
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ECMA, (st_data_t)rb_intern2("PF_ECMA", 7));
#endif
#ifdef PF_OSI
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_OSI, (st_data_t)rb_intern2("PF_OSI", 6));
#endif
#ifdef PF_ISO
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ISO, (st_data_t)rb_intern2("PF_ISO", 6));
#endif
#ifdef PF_NS
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NS, (st_data_t)rb_intern2("PF_NS", 5));
#endif
#ifdef PF_CHAOS
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_CHAOS, (st_data_t)rb_intern2("PF_CHAOS", 8));
#endif
#ifdef PF_PUP
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PUP, (st_data_t)rb_intern2("PF_PUP", 6));
#endif
#ifdef PF_IMPLINK
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_IMPLINK, (st_data_t)rb_intern2("PF_IMPLINK", 10));
#endif
#ifdef PF_LOCAL
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_LOCAL, (st_data_t)rb_intern2("PF_LOCAL", 8));
#endif
#ifdef PF_APPLETALK
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_APPLETALK, (st_data_t)rb_intern2("PF_APPLETALK", 12));
#endif
#ifdef PF_IPX
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_IPX, (st_data_t)rb_intern2("PF_IPX", 6));
#endif
#ifdef PF_AX25
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_AX25, (st_data_t)rb_intern2("PF_AX25", 7));
#endif
#ifdef PF_UNIX
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_UNIX, (st_data_t)rb_intern2("PF_UNIX", 7));
#endif
#ifdef PF_INET6
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_INET6, (st_data_t)rb_intern2("PF_INET6", 8));
#endif
#ifdef PF_INET
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_INET, (st_data_t)rb_intern2("PF_INET", 7));
#endif
#ifdef PF_UNSPEC
st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_UNSPEC, (st_data_t)rb_intern2("PF_UNSPEC", 9));
#endif
rsock_intern_socktype_hash = st_init_numtable();
#ifdef SOCK_PACKET
st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_PACKET, (st_data_t)rb_intern2("SOCK_PACKET", 11));
#endif
#ifdef SOCK_SEQPACKET
st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_SEQPACKET, (st_data_t)rb_intern2("SOCK_SEQPACKET", 14));
#endif
#ifdef SOCK_RDM
st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_RDM, (st_data_t)rb_intern2("SOCK_RDM", 8));
#endif
#ifdef SOCK_RAW
st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_RAW, (st_data_t)rb_intern2("SOCK_RAW", 8));
#endif
#ifdef SOCK_DGRAM
st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_DGRAM, (st_data_t)rb_intern2("SOCK_DGRAM", 10));
#endif
#ifdef SOCK_STREAM
st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_STREAM, (st_data_t)rb_intern2("SOCK_STREAM", 11));
#endif
rsock_intern_ipproto_hash = st_init_numtable();
#ifdef IPPROTO_MAX
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_MAX, (st_data_t)rb_intern2("IPPROTO_MAX", 11));
#endif
#ifdef IPPROTO_RAW
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_RAW, (st_data_t)rb_intern2("IPPROTO_RAW", 11));
#endif
#ifdef IPPROTO_ROUTING
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ROUTING, (st_data_t)rb_intern2("IPPROTO_ROUTING", 15));
#endif
#ifdef IPPROTO_NONE
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_NONE, (st_data_t)rb_intern2("IPPROTO_NONE", 12));
#endif
#ifdef IPPROTO_IPV6
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IPV6, (st_data_t)rb_intern2("IPPROTO_IPV6", 12));
#endif
#ifdef IPPROTO_ICMPV6
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ICMPV6, (st_data_t)rb_intern2("IPPROTO_ICMPV6", 14));
#endif
#ifdef IPPROTO_HOPOPTS
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_HOPOPTS, (st_data_t)rb_intern2("IPPROTO_HOPOPTS", 15));
#endif
#ifdef IPPROTO_FRAGMENT
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_FRAGMENT, (st_data_t)rb_intern2("IPPROTO_FRAGMENT", 16));
#endif
#ifdef IPPROTO_ESP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ESP, (st_data_t)rb_intern2("IPPROTO_ESP", 11));
#endif
#ifdef IPPROTO_DSTOPTS
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_DSTOPTS, (st_data_t)rb_intern2("IPPROTO_DSTOPTS", 15));
#endif
#ifdef IPPROTO_AH
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_AH, (st_data_t)rb_intern2("IPPROTO_AH", 10));
#endif
#ifdef IPPROTO_BIP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_BIP, (st_data_t)rb_intern2("IPPROTO_BIP", 11));
#endif
#ifdef IPPROTO_EON
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_EON, (st_data_t)rb_intern2("IPPROTO_EON", 11));
#endif
#ifdef IPPROTO_XTP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_XTP, (st_data_t)rb_intern2("IPPROTO_XTP", 11));
#endif
#ifdef IPPROTO_TP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_TP, (st_data_t)rb_intern2("IPPROTO_TP", 10));
#endif
#ifdef IPPROTO_ND
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ND, (st_data_t)rb_intern2("IPPROTO_ND", 10));
#endif
#ifdef IPPROTO_HELLO
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_HELLO, (st_data_t)rb_intern2("IPPROTO_HELLO", 13));
#endif
#ifdef IPPROTO_IDP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IDP, (st_data_t)rb_intern2("IPPROTO_IDP", 11));
#endif
#ifdef IPPROTO_UDP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_UDP, (st_data_t)rb_intern2("IPPROTO_UDP", 11));
#endif
#ifdef IPPROTO_PUP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_PUP, (st_data_t)rb_intern2("IPPROTO_PUP", 11));
#endif
#ifdef IPPROTO_EGP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_EGP, (st_data_t)rb_intern2("IPPROTO_EGP", 11));
#endif
#ifdef IPPROTO_TCP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_TCP, (st_data_t)rb_intern2("IPPROTO_TCP", 11));
#endif
#ifdef IPPROTO_GGP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_GGP, (st_data_t)rb_intern2("IPPROTO_GGP", 11));
#endif
#ifdef IPPROTO_IGMP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IGMP, (st_data_t)rb_intern2("IPPROTO_IGMP", 12));
#endif
#ifdef IPPROTO_ICMP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ICMP, (st_data_t)rb_intern2("IPPROTO_ICMP", 12));
#endif
#ifdef IPPROTO_IP
st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IP, (st_data_t)rb_intern2("IPPROTO_IP", 10));
#endif
rsock_intern_iplevel_hash = st_init_numtable();
#ifdef IPPROTO_MAX
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_MAX, (st_data_t)rb_intern2("IPPROTO_MAX", 11));
#endif
#ifdef IPPROTO_RAW
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_RAW, (st_data_t)rb_intern2("IPPROTO_RAW", 11));
#endif
#ifdef IPPROTO_ROUTING
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ROUTING, (st_data_t)rb_intern2("IPPROTO_ROUTING", 15));
#endif
#ifdef IPPROTO_NONE
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_NONE, (st_data_t)rb_intern2("IPPROTO_NONE", 12));
#endif
#ifdef IPPROTO_IPV6
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IPV6, (st_data_t)rb_intern2("IPPROTO_IPV6", 12));
#endif
#ifdef IPPROTO_ICMPV6
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMPV6, (st_data_t)rb_intern2("IPPROTO_ICMPV6", 14));
#endif
#ifdef IPPROTO_HOPOPTS
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HOPOPTS, (st_data_t)rb_intern2("IPPROTO_HOPOPTS", 15));
#endif
#ifdef IPPROTO_FRAGMENT
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_FRAGMENT, (st_data_t)rb_intern2("IPPROTO_FRAGMENT", 16));
#endif
#ifdef IPPROTO_ESP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ESP, (st_data_t)rb_intern2("IPPROTO_ESP", 11));
#endif
#ifdef IPPROTO_DSTOPTS
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_DSTOPTS, (st_data_t)rb_intern2("IPPROTO_DSTOPTS", 15));
#endif
#ifdef IPPROTO_AH
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_AH, (st_data_t)rb_intern2("IPPROTO_AH", 10));
#endif
#ifdef IPPROTO_BIP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_BIP, (st_data_t)rb_intern2("IPPROTO_BIP", 11));
#endif
#ifdef IPPROTO_EON
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EON, (st_data_t)rb_intern2("IPPROTO_EON", 11));
#endif
#ifdef IPPROTO_XTP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_XTP, (st_data_t)rb_intern2("IPPROTO_XTP", 11));
#endif
#ifdef IPPROTO_TP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TP, (st_data_t)rb_intern2("IPPROTO_TP", 10));
#endif
#ifdef IPPROTO_ND
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ND, (st_data_t)rb_intern2("IPPROTO_ND", 10));
#endif
#ifdef IPPROTO_HELLO
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HELLO, (st_data_t)rb_intern2("IPPROTO_HELLO", 13));
#endif
#ifdef IPPROTO_IDP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IDP, (st_data_t)rb_intern2("IPPROTO_IDP", 11));
#endif
#ifdef IPPROTO_UDP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_UDP, (st_data_t)rb_intern2("IPPROTO_UDP", 11));
#endif
#ifdef IPPROTO_PUP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_PUP, (st_data_t)rb_intern2("IPPROTO_PUP", 11));
#endif
#ifdef IPPROTO_EGP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EGP, (st_data_t)rb_intern2("IPPROTO_EGP", 11));
#endif
#ifdef IPPROTO_TCP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TCP, (st_data_t)rb_intern2("IPPROTO_TCP", 11));
#endif
#ifdef IPPROTO_GGP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_GGP, (st_data_t)rb_intern2("IPPROTO_GGP", 11));
#endif
#ifdef IPPROTO_IGMP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IGMP, (st_data_t)rb_intern2("IPPROTO_IGMP", 12));
#endif
#ifdef IPPROTO_ICMP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMP, (st_data_t)rb_intern2("IPPROTO_ICMP", 12));
#endif
#ifdef IPPROTO_IP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IP, (st_data_t)rb_intern2("IPPROTO_IP", 10));
#endif
#ifdef SOL_SOCKET
st_insert(rsock_intern_iplevel_hash, (st_data_t)SOL_SOCKET, (st_data_t)rb_intern2("SOL_SOCKET", 10));
#endif
#ifdef IPPROTO_MAX
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_MAX, (st_data_t)rb_intern2("MAX", 3));
#endif
#ifdef IPPROTO_RAW
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_RAW, (st_data_t)rb_intern2("RAW", 3));
#endif
#ifdef IPPROTO_ROUTING
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ROUTING, (st_data_t)rb_intern2("ROUTING", 7));
#endif
#ifdef IPPROTO_NONE
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_NONE, (st_data_t)rb_intern2("NONE", 4));
#endif
#ifdef IPPROTO_IPV6
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IPV6, (st_data_t)rb_intern2("IPV6", 4));
#endif
#ifdef IPPROTO_ICMPV6
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMPV6, (st_data_t)rb_intern2("ICMPV6", 6));
#endif
#ifdef IPPROTO_HOPOPTS
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HOPOPTS, (st_data_t)rb_intern2("HOPOPTS", 7));
#endif
#ifdef IPPROTO_FRAGMENT
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_FRAGMENT, (st_data_t)rb_intern2("FRAGMENT", 8));
#endif
#ifdef IPPROTO_ESP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ESP, (st_data_t)rb_intern2("ESP", 3));
#endif
#ifdef IPPROTO_DSTOPTS
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_DSTOPTS, (st_data_t)rb_intern2("DSTOPTS", 7));
#endif
#ifdef IPPROTO_AH
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_AH, (st_data_t)rb_intern2("AH", 2));
#endif
#ifdef IPPROTO_BIP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_BIP, (st_data_t)rb_intern2("BIP", 3));
#endif
#ifdef IPPROTO_EON
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EON, (st_data_t)rb_intern2("EON", 3));
#endif
#ifdef IPPROTO_XTP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_XTP, (st_data_t)rb_intern2("XTP", 3));
#endif
#ifdef IPPROTO_TP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TP, (st_data_t)rb_intern2("TP", 2));
#endif
#ifdef IPPROTO_ND
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ND, (st_data_t)rb_intern2("ND", 2));
#endif
#ifdef IPPROTO_HELLO
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HELLO, (st_data_t)rb_intern2("HELLO", 5));
#endif
#ifdef IPPROTO_IDP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IDP, (st_data_t)rb_intern2("IDP", 3));
#endif
#ifdef IPPROTO_UDP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_UDP, (st_data_t)rb_intern2("UDP", 3));
#endif
#ifdef IPPROTO_PUP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_PUP, (st_data_t)rb_intern2("PUP", 3));
#endif
#ifdef IPPROTO_EGP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EGP, (st_data_t)rb_intern2("EGP", 3));
#endif
#ifdef IPPROTO_TCP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TCP, (st_data_t)rb_intern2("TCP", 3));
#endif
#ifdef IPPROTO_GGP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_GGP, (st_data_t)rb_intern2("GGP", 3));
#endif
#ifdef IPPROTO_IGMP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IGMP, (st_data_t)rb_intern2("IGMP", 4));
#endif
#ifdef IPPROTO_ICMP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMP, (st_data_t)rb_intern2("ICMP", 4));
#endif
#ifdef IPPROTO_IP
st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IP, (st_data_t)rb_intern2("IP", 2));
#endif
#ifdef SOL_SOCKET
st_insert(rsock_intern_iplevel_hash, (st_data_t)SOL_SOCKET, (st_data_t)rb_intern2("SOCKET", 6));
#endif
rsock_intern_so_optname_hash = st_init_numtable();
#ifdef SO_BPF_EXTENSIONS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BPF_EXTENSIONS, (st_data_t)rb_intern2("SO_BPF_EXTENSIONS", 17));
#endif
#ifdef SO_MAX_PACING_RATE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MAX_PACING_RATE, (st_data_t)rb_intern2("SO_MAX_PACING_RATE", 18));
#endif
#ifdef SO_BUSY_POLL
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BUSY_POLL, (st_data_t)rb_intern2("SO_BUSY_POLL", 12));
#endif
#ifdef SO_SELECT_ERR_QUEUE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SELECT_ERR_QUEUE, (st_data_t)rb_intern2("SO_SELECT_ERR_QUEUE", 19));
#endif
#ifdef SO_LOCK_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_LOCK_FILTER, (st_data_t)rb_intern2("SO_LOCK_FILTER", 14));
#endif
#ifdef SO_NOFCS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NOFCS, (st_data_t)rb_intern2("SO_NOFCS", 8));
#endif
#ifdef SO_PEEK_OFF
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEEK_OFF, (st_data_t)rb_intern2("SO_PEEK_OFF", 11));
#endif
#ifdef SO_WIFI_STATUS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WIFI_STATUS, (st_data_t)rb_intern2("SO_WIFI_STATUS", 14));
#endif
#ifdef SO_RXQ_OVFL
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RXQ_OVFL, (st_data_t)rb_intern2("SO_RXQ_OVFL", 11));
#endif
#ifdef SO_DOMAIN
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DOMAIN, (st_data_t)rb_intern2("SO_DOMAIN", 9));
#endif
#ifdef SO_PROTOCOL
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PROTOCOL, (st_data_t)rb_intern2("SO_PROTOCOL", 11));
#endif
#ifdef SO_TIMESTAMPING
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMPING, (st_data_t)rb_intern2("SO_TIMESTAMPING", 15));
#endif
#ifdef SO_MARK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MARK, (st_data_t)rb_intern2("SO_MARK", 7));
#endif
#ifdef SO_PASSSEC
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PASSSEC, (st_data_t)rb_intern2("SO_PASSSEC", 10));
#endif
#ifdef SO_PEERSEC
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERSEC, (st_data_t)rb_intern2("SO_PEERSEC", 10));
#endif
#ifdef SO_ALLZONES
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ALLZONES, (st_data_t)rb_intern2("SO_ALLZONES", 11));
#endif
#ifdef SO_MAC_EXEMPT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MAC_EXEMPT, (st_data_t)rb_intern2("SO_MAC_EXEMPT", 13));
#endif
#ifdef SO_RECVUCRED
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RECVUCRED, (st_data_t)rb_intern2("SO_RECVUCRED", 12));
#endif
#ifdef SO_BINTIME
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINTIME, (st_data_t)rb_intern2("SO_BINTIME", 10));
#endif
#ifdef SO_TIMESTAMPNS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMPNS, (st_data_t)rb_intern2("SO_TIMESTAMPNS", 14));
#endif
#ifdef SO_TIMESTAMP
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMP, (st_data_t)rb_intern2("SO_TIMESTAMP", 12));
#endif
#ifdef SO_PEERNAME
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERNAME, (st_data_t)rb_intern2("SO_PEERNAME", 11));
#endif
#ifdef SO_GET_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_GET_FILTER, (st_data_t)rb_intern2("SO_GET_FILTER", 13));
#endif
#ifdef SO_DETACH_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DETACH_FILTER, (st_data_t)rb_intern2("SO_DETACH_FILTER", 16));
#endif
#ifdef SO_ATTACH_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ATTACH_FILTER, (st_data_t)rb_intern2("SO_ATTACH_FILTER", 16));
#endif
#ifdef SO_BINDTODEVICE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINDTODEVICE, (st_data_t)rb_intern2("SO_BINDTODEVICE", 15));
#endif
#ifdef SO_SECURITY_ENCRYPTION_NETWORK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_NETWORK, (st_data_t)rb_intern2("SO_SECURITY_ENCRYPTION_NETWORK", 30));
#endif
#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_TRANSPORT, (st_data_t)rb_intern2("SO_SECURITY_ENCRYPTION_TRANSPORT", 32));
#endif
#ifdef SO_SECURITY_AUTHENTICATION
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_AUTHENTICATION, (st_data_t)rb_intern2("SO_SECURITY_AUTHENTICATION", 26));
#endif
#ifdef SO_NOSIGPIPE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NOSIGPIPE, (st_data_t)rb_intern2("SO_NOSIGPIPE", 12));
#endif
#ifdef SO_NKE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NKE, (st_data_t)rb_intern2("SO_NKE", 6));
#endif
#ifdef SO_NREAD
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NREAD, (st_data_t)rb_intern2("SO_NREAD", 8));
#endif
#ifdef SO_WANTOOBFLAG
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTOOBFLAG, (st_data_t)rb_intern2("SO_WANTOOBFLAG", 14));
#endif
#ifdef SO_WANTMORE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTMORE, (st_data_t)rb_intern2("SO_WANTMORE", 11));
#endif
#ifdef SO_DONTTRUNC
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTTRUNC, (st_data_t)rb_intern2("SO_DONTTRUNC", 12));
#endif
#ifdef SO_ACCEPTFILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTFILTER, (st_data_t)rb_intern2("SO_ACCEPTFILTER", 15));
#endif
#ifdef SO_USELOOPBACK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_USELOOPBACK, (st_data_t)rb_intern2("SO_USELOOPBACK", 14));
#endif
#ifdef SO_ACCEPTCONN
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTCONN, (st_data_t)rb_intern2("SO_ACCEPTCONN", 13));
#endif
#ifdef SO_SNDTIMEO
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDTIMEO, (st_data_t)rb_intern2("SO_SNDTIMEO", 11));
#endif
#ifdef SO_RCVTIMEO
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVTIMEO, (st_data_t)rb_intern2("SO_RCVTIMEO", 11));
#endif
#ifdef SO_SNDLOWAT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDLOWAT, (st_data_t)rb_intern2("SO_SNDLOWAT", 11));
#endif
#ifdef SO_RCVLOWAT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVLOWAT, (st_data_t)rb_intern2("SO_RCVLOWAT", 11));
#endif
#ifdef SO_PEERCRED
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERCRED, (st_data_t)rb_intern2("SO_PEERCRED", 11));
#endif
#ifdef SO_PASSCRED
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PASSCRED, (st_data_t)rb_intern2("SO_PASSCRED", 11));
#endif
#ifdef SO_LINGER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_LINGER, (st_data_t)rb_intern2("SO_LINGER", 9));
#endif
#ifdef SO_PRIORITY
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PRIORITY, (st_data_t)rb_intern2("SO_PRIORITY", 11));
#endif
#ifdef SO_NO_CHECK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NO_CHECK, (st_data_t)rb_intern2("SO_NO_CHECK", 11));
#endif
#ifdef SO_OOBINLINE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_OOBINLINE, (st_data_t)rb_intern2("SO_OOBINLINE", 12));
#endif
#ifdef SO_KEEPALIVE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_KEEPALIVE, (st_data_t)rb_intern2("SO_KEEPALIVE", 12));
#endif
#ifdef SO_RCVBUFFORCE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVBUFFORCE, (st_data_t)rb_intern2("SO_RCVBUFFORCE", 14));
#endif
#ifdef SO_SNDBUFFORCE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDBUFFORCE, (st_data_t)rb_intern2("SO_SNDBUFFORCE", 14));
#endif
#ifdef SO_RCVBUF
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVBUF, (st_data_t)rb_intern2("SO_RCVBUF", 9));
#endif
#ifdef SO_SNDBUF
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDBUF, (st_data_t)rb_intern2("SO_SNDBUF", 9));
#endif
#ifdef SO_BROADCAST
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BROADCAST, (st_data_t)rb_intern2("SO_BROADCAST", 12));
#endif
#ifdef SO_DONTROUTE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTROUTE, (st_data_t)rb_intern2("SO_DONTROUTE", 12));
#endif
#ifdef SO_ERROR
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ERROR, (st_data_t)rb_intern2("SO_ERROR", 8));
#endif
#ifdef SO_TYPE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TYPE, (st_data_t)rb_intern2("SO_TYPE", 7));
#endif
#ifdef SO_REUSEPORT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEPORT, (st_data_t)rb_intern2("SO_REUSEPORT", 12));
#endif
#ifdef SO_REUSEADDR
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEADDR, (st_data_t)rb_intern2("SO_REUSEADDR", 12));
#endif
#ifdef SO_DEBUG
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DEBUG, (st_data_t)rb_intern2("SO_DEBUG", 8));
#endif
#ifdef SO_BPF_EXTENSIONS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BPF_EXTENSIONS, (st_data_t)rb_intern2("BPF_EXTENSIONS", 14));
#endif
#ifdef SO_MAX_PACING_RATE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MAX_PACING_RATE, (st_data_t)rb_intern2("MAX_PACING_RATE", 15));
#endif
#ifdef SO_BUSY_POLL
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BUSY_POLL, (st_data_t)rb_intern2("BUSY_POLL", 9));
#endif
#ifdef SO_SELECT_ERR_QUEUE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SELECT_ERR_QUEUE, (st_data_t)rb_intern2("SELECT_ERR_QUEUE", 16));
#endif
#ifdef SO_LOCK_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_LOCK_FILTER, (st_data_t)rb_intern2("LOCK_FILTER", 11));
#endif
#ifdef SO_NOFCS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NOFCS, (st_data_t)rb_intern2("NOFCS", 5));
#endif
#ifdef SO_PEEK_OFF
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEEK_OFF, (st_data_t)rb_intern2("PEEK_OFF", 8));
#endif
#ifdef SO_WIFI_STATUS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WIFI_STATUS, (st_data_t)rb_intern2("WIFI_STATUS", 11));
#endif
#ifdef SO_RXQ_OVFL
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RXQ_OVFL, (st_data_t)rb_intern2("RXQ_OVFL", 8));
#endif
#ifdef SO_DOMAIN
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DOMAIN, (st_data_t)rb_intern2("DOMAIN", 6));
#endif
#ifdef SO_PROTOCOL
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PROTOCOL, (st_data_t)rb_intern2("PROTOCOL", 8));
#endif
#ifdef SO_TIMESTAMPING
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMPING, (st_data_t)rb_intern2("TIMESTAMPING", 12));
#endif
#ifdef SO_MARK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MARK, (st_data_t)rb_intern2("MARK", 4));
#endif
#ifdef SO_PASSSEC
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PASSSEC, (st_data_t)rb_intern2("PASSSEC", 7));
#endif
#ifdef SO_PEERSEC
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERSEC, (st_data_t)rb_intern2("PEERSEC", 7));
#endif
#ifdef SO_ALLZONES
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ALLZONES, (st_data_t)rb_intern2("ALLZONES", 8));
#endif
#ifdef SO_MAC_EXEMPT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MAC_EXEMPT, (st_data_t)rb_intern2("MAC_EXEMPT", 10));
#endif
#ifdef SO_RECVUCRED
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RECVUCRED, (st_data_t)rb_intern2("RECVUCRED", 9));
#endif
#ifdef SO_BINTIME
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINTIME, (st_data_t)rb_intern2("BINTIME", 7));
#endif
#ifdef SO_TIMESTAMPNS
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMPNS, (st_data_t)rb_intern2("TIMESTAMPNS", 11));
#endif
#ifdef SO_TIMESTAMP
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMP, (st_data_t)rb_intern2("TIMESTAMP", 9));
#endif
#ifdef SO_PEERNAME
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERNAME, (st_data_t)rb_intern2("PEERNAME", 8));
#endif
#ifdef SO_GET_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_GET_FILTER, (st_data_t)rb_intern2("GET_FILTER", 10));
#endif
#ifdef SO_DETACH_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DETACH_FILTER, (st_data_t)rb_intern2("DETACH_FILTER", 13));
#endif
#ifdef SO_ATTACH_FILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ATTACH_FILTER, (st_data_t)rb_intern2("ATTACH_FILTER", 13));
#endif
#ifdef SO_BINDTODEVICE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINDTODEVICE, (st_data_t)rb_intern2("BINDTODEVICE", 12));
#endif
#ifdef SO_SECURITY_ENCRYPTION_NETWORK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_NETWORK, (st_data_t)rb_intern2("SECURITY_ENCRYPTION_NETWORK", 27));
#endif
#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_TRANSPORT, (st_data_t)rb_intern2("SECURITY_ENCRYPTION_TRANSPORT", 29));
#endif
#ifdef SO_SECURITY_AUTHENTICATION
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_AUTHENTICATION, (st_data_t)rb_intern2("SECURITY_AUTHENTICATION", 23));
#endif
#ifdef SO_NOSIGPIPE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NOSIGPIPE, (st_data_t)rb_intern2("NOSIGPIPE", 9));
#endif
#ifdef SO_NKE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NKE, (st_data_t)rb_intern2("NKE", 3));
#endif
#ifdef SO_NREAD
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NREAD, (st_data_t)rb_intern2("NREAD", 5));
#endif
#ifdef SO_WANTOOBFLAG
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTOOBFLAG, (st_data_t)rb_intern2("WANTOOBFLAG", 11));
#endif
#ifdef SO_WANTMORE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTMORE, (st_data_t)rb_intern2("WANTMORE", 8));
#endif
#ifdef SO_DONTTRUNC
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTTRUNC, (st_data_t)rb_intern2("DONTTRUNC", 9));
#endif
#ifdef SO_ACCEPTFILTER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTFILTER, (st_data_t)rb_intern2("ACCEPTFILTER", 12));
#endif
#ifdef SO_USELOOPBACK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_USELOOPBACK, (st_data_t)rb_intern2("USELOOPBACK", 11));
#endif
#ifdef SO_ACCEPTCONN
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTCONN, (st_data_t)rb_intern2("ACCEPTCONN", 10));
#endif
#ifdef SO_SNDTIMEO
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDTIMEO, (st_data_t)rb_intern2("SNDTIMEO", 8));
#endif
#ifdef SO_RCVTIMEO
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVTIMEO, (st_data_t)rb_intern2("RCVTIMEO", 8));
#endif
#ifdef SO_SNDLOWAT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDLOWAT, (st_data_t)rb_intern2("SNDLOWAT", 8));
#endif
#ifdef SO_RCVLOWAT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVLOWAT, (st_data_t)rb_intern2("RCVLOWAT", 8));
#endif
#ifdef SO_PEERCRED
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERCRED, (st_data_t)rb_intern2("PEERCRED", 8));
#endif
#ifdef SO_PASSCRED
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PASSCRED, (st_data_t)rb_intern2("PASSCRED", 8));
#endif
#ifdef SO_LINGER
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_LINGER, (st_data_t)rb_intern2("LINGER", 6));
#endif
#ifdef SO_PRIORITY
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PRIORITY, (st_data_t)rb_intern2("PRIORITY", 8));
#endif
#ifdef SO_NO_CHECK
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NO_CHECK, (st_data_t)rb_intern2("NO_CHECK", 8));
#endif
#ifdef SO_OOBINLINE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_OOBINLINE, (st_data_t)rb_intern2("OOBINLINE", 9));
#endif
#ifdef SO_KEEPALIVE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_KEEPALIVE, (st_data_t)rb_intern2("KEEPALIVE", 9));
#endif
#ifdef SO_RCVBUFFORCE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVBUFFORCE, (st_data_t)rb_intern2("RCVBUFFORCE", 11));
#endif
#ifdef SO_SNDBUFFORCE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDBUFFORCE, (st_data_t)rb_intern2("SNDBUFFORCE", 11));
#endif
#ifdef SO_RCVBUF
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVBUF, (st_data_t)rb_intern2("RCVBUF", 6));
#endif
#ifdef SO_SNDBUF
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDBUF, (st_data_t)rb_intern2("SNDBUF", 6));
#endif
#ifdef SO_BROADCAST
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BROADCAST, (st_data_t)rb_intern2("BROADCAST", 9));
#endif
#ifdef SO_DONTROUTE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTROUTE, (st_data_t)rb_intern2("DONTROUTE", 9));
#endif
#ifdef SO_ERROR
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ERROR, (st_data_t)rb_intern2("ERROR", 5));
#endif
#ifdef SO_TYPE
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TYPE, (st_data_t)rb_intern2("TYPE", 4));
#endif
#ifdef SO_REUSEPORT
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEPORT, (st_data_t)rb_intern2("REUSEPORT", 9));
#endif
#ifdef SO_REUSEADDR
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEADDR, (st_data_t)rb_intern2("REUSEADDR", 9));
#endif
#ifdef SO_DEBUG
st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DEBUG, (st_data_t)rb_intern2("DEBUG", 5));
#endif
rsock_intern_ip_optname_hash = st_init_numtable();
#ifdef IP_MSFILTER
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MSFILTER, (st_data_t)rb_intern2("IP_MSFILTER", 11));
#endif
#ifdef IP_DROP_SOURCE_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("IP_DROP_SOURCE_MEMBERSHIP", 25));
#endif
#ifdef IP_ADD_SOURCE_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("IP_ADD_SOURCE_MEMBERSHIP", 24));
#endif
#ifdef IP_BLOCK_SOURCE
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_BLOCK_SOURCE, (st_data_t)rb_intern2("IP_BLOCK_SOURCE", 15));
#endif
#ifdef IP_UNBLOCK_SOURCE
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_UNBLOCK_SOURCE, (st_data_t)rb_intern2("IP_UNBLOCK_SOURCE", 17));
#endif
#ifdef IP_PMTUDISC_DO
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DO, (st_data_t)rb_intern2("IP_PMTUDISC_DO", 14));
#endif
#ifdef IP_PMTUDISC_WANT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_WANT, (st_data_t)rb_intern2("IP_PMTUDISC_WANT", 16));
#endif
#ifdef IP_PMTUDISC_DONT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DONT, (st_data_t)rb_intern2("IP_PMTUDISC_DONT", 16));
#endif
#ifdef IP_TRANSPARENT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TRANSPARENT, (st_data_t)rb_intern2("IP_TRANSPARENT", 14));
#endif
#ifdef IP_PASSSEC
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PASSSEC, (st_data_t)rb_intern2("IP_PASSSEC", 10));
#endif
#ifdef IP_XFRM_POLICY
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_XFRM_POLICY, (st_data_t)rb_intern2("IP_XFRM_POLICY", 14));
#endif
#ifdef IP_IPSEC_POLICY
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_IPSEC_POLICY, (st_data_t)rb_intern2("IP_IPSEC_POLICY", 15));
#endif
#ifdef IP_FREEBIND
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_FREEBIND, (st_data_t)rb_intern2("IP_FREEBIND", 11));
#endif
#ifdef IP_MTU
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU, (st_data_t)rb_intern2("IP_MTU", 6));
#endif
#ifdef IP_RECVTOS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTOS, (st_data_t)rb_intern2("IP_RECVTOS", 10));
#endif
#ifdef IP_RECVERR
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVERR, (st_data_t)rb_intern2("IP_RECVERR", 10));
#endif
#ifdef IP_MTU_DISCOVER
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU_DISCOVER, (st_data_t)rb_intern2("IP_MTU_DISCOVER", 15));
#endif
#ifdef IP_PKTOPTIONS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTOPTIONS, (st_data_t)rb_intern2("IP_PKTOPTIONS", 13));
#endif
#ifdef IP_PKTINFO
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTINFO, (st_data_t)rb_intern2("IP_PKTINFO", 10));
#endif
#ifdef IP_ROUTER_ALERT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ROUTER_ALERT, (st_data_t)rb_intern2("IP_ROUTER_ALERT", 15));
#endif
#ifdef IP_MAX_MEMBERSHIPS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MAX_MEMBERSHIPS, (st_data_t)rb_intern2("IP_MAX_MEMBERSHIPS", 18));
#endif
#ifdef IP_DEFAULT_MULTICAST_LOOP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_LOOP, (st_data_t)rb_intern2("IP_DEFAULT_MULTICAST_LOOP", 25));
#endif
#ifdef IP_DEFAULT_MULTICAST_TTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_TTL, (st_data_t)rb_intern2("IP_DEFAULT_MULTICAST_TTL", 24));
#endif
#ifdef IP_DROP_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_MEMBERSHIP, (st_data_t)rb_intern2("IP_DROP_MEMBERSHIP", 18));
#endif
#ifdef IP_ADD_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_MEMBERSHIP, (st_data_t)rb_intern2("IP_ADD_MEMBERSHIP", 17));
#endif
#ifdef IP_MULTICAST_LOOP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_LOOP, (st_data_t)rb_intern2("IP_MULTICAST_LOOP", 17));
#endif
#ifdef IP_MULTICAST_TTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_TTL, (st_data_t)rb_intern2("IP_MULTICAST_TTL", 16));
#endif
#ifdef IP_MULTICAST_IF
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_IF, (st_data_t)rb_intern2("IP_MULTICAST_IF", 15));
#endif
#ifdef IP_PORTRANGE
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PORTRANGE, (st_data_t)rb_intern2("IP_PORTRANGE", 12));
#endif
#ifdef IP_RECVSLLA
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVSLLA, (st_data_t)rb_intern2("IP_RECVSLLA", 11));
#endif
#ifdef IP_RECVIF
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVIF, (st_data_t)rb_intern2("IP_RECVIF", 9));
#endif
#ifdef IP_RECVTTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTTL, (st_data_t)rb_intern2("IP_RECVTTL", 10));
#endif
#ifdef IP_ONESBCAST
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ONESBCAST, (st_data_t)rb_intern2("IP_ONESBCAST", 12));
#endif
#ifdef IP_SENDSRCADDR
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_SENDSRCADDR, (st_data_t)rb_intern2("IP_SENDSRCADDR", 14));
#endif
#ifdef IP_DONTFRAG
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DONTFRAG, (st_data_t)rb_intern2("IP_DONTFRAG", 11));
#endif
#ifdef IP_MINTTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MINTTL, (st_data_t)rb_intern2("IP_MINTTL", 9));
#endif
#ifdef IP_RETOPTS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RETOPTS, (st_data_t)rb_intern2("IP_RETOPTS", 10));
#endif
#ifdef IP_RECVDSTADDR
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVDSTADDR, (st_data_t)rb_intern2("IP_RECVDSTADDR", 14));
#endif
#ifdef IP_RECVRETOPTS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVRETOPTS, (st_data_t)rb_intern2("IP_RECVRETOPTS", 14));
#endif
#ifdef IP_RECVOPTS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVOPTS, (st_data_t)rb_intern2("IP_RECVOPTS", 11));
#endif
#ifdef IP_TTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TTL, (st_data_t)rb_intern2("IP_TTL", 6));
#endif
#ifdef IP_TOS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TOS, (st_data_t)rb_intern2("IP_TOS", 6));
#endif
#ifdef IP_HDRINCL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_HDRINCL, (st_data_t)rb_intern2("IP_HDRINCL", 10));
#endif
#ifdef IP_OPTIONS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_OPTIONS, (st_data_t)rb_intern2("IP_OPTIONS", 10));
#endif
#ifdef IP_MSFILTER
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MSFILTER, (st_data_t)rb_intern2("MSFILTER", 8));
#endif
#ifdef IP_DROP_SOURCE_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("DROP_SOURCE_MEMBERSHIP", 22));
#endif
#ifdef IP_ADD_SOURCE_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("ADD_SOURCE_MEMBERSHIP", 21));
#endif
#ifdef IP_BLOCK_SOURCE
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_BLOCK_SOURCE, (st_data_t)rb_intern2("BLOCK_SOURCE", 12));
#endif
#ifdef IP_UNBLOCK_SOURCE
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_UNBLOCK_SOURCE, (st_data_t)rb_intern2("UNBLOCK_SOURCE", 14));
#endif
#ifdef IP_PMTUDISC_DO
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DO, (st_data_t)rb_intern2("PMTUDISC_DO", 11));
#endif
#ifdef IP_PMTUDISC_WANT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_WANT, (st_data_t)rb_intern2("PMTUDISC_WANT", 13));
#endif
#ifdef IP_PMTUDISC_DONT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DONT, (st_data_t)rb_intern2("PMTUDISC_DONT", 13));
#endif
#ifdef IP_TRANSPARENT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TRANSPARENT, (st_data_t)rb_intern2("TRANSPARENT", 11));
#endif
#ifdef IP_PASSSEC
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PASSSEC, (st_data_t)rb_intern2("PASSSEC", 7));
#endif
#ifdef IP_XFRM_POLICY
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_XFRM_POLICY, (st_data_t)rb_intern2("XFRM_POLICY", 11));
#endif
#ifdef IP_IPSEC_POLICY
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_IPSEC_POLICY, (st_data_t)rb_intern2("IPSEC_POLICY", 12));
#endif
#ifdef IP_FREEBIND
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_FREEBIND, (st_data_t)rb_intern2("FREEBIND", 8));
#endif
#ifdef IP_MTU
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU, (st_data_t)rb_intern2("MTU", 3));
#endif
#ifdef IP_RECVTOS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTOS, (st_data_t)rb_intern2("RECVTOS", 7));
#endif
#ifdef IP_RECVERR
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVERR, (st_data_t)rb_intern2("RECVERR", 7));
#endif
#ifdef IP_MTU_DISCOVER
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU_DISCOVER, (st_data_t)rb_intern2("MTU_DISCOVER", 12));
#endif
#ifdef IP_PKTOPTIONS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTOPTIONS, (st_data_t)rb_intern2("PKTOPTIONS", 10));
#endif
#ifdef IP_PKTINFO
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTINFO, (st_data_t)rb_intern2("PKTINFO", 7));
#endif
#ifdef IP_ROUTER_ALERT
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ROUTER_ALERT, (st_data_t)rb_intern2("ROUTER_ALERT", 12));
#endif
#ifdef IP_MAX_MEMBERSHIPS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MAX_MEMBERSHIPS, (st_data_t)rb_intern2("MAX_MEMBERSHIPS", 15));
#endif
#ifdef IP_DEFAULT_MULTICAST_LOOP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_LOOP, (st_data_t)rb_intern2("DEFAULT_MULTICAST_LOOP", 22));
#endif
#ifdef IP_DEFAULT_MULTICAST_TTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_TTL, (st_data_t)rb_intern2("DEFAULT_MULTICAST_TTL", 21));
#endif
#ifdef IP_DROP_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_MEMBERSHIP, (st_data_t)rb_intern2("DROP_MEMBERSHIP", 15));
#endif
#ifdef IP_ADD_MEMBERSHIP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_MEMBERSHIP, (st_data_t)rb_intern2("ADD_MEMBERSHIP", 14));
#endif
#ifdef IP_MULTICAST_LOOP
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_LOOP, (st_data_t)rb_intern2("MULTICAST_LOOP", 14));
#endif
#ifdef IP_MULTICAST_TTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_TTL, (st_data_t)rb_intern2("MULTICAST_TTL", 13));
#endif
#ifdef IP_MULTICAST_IF
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_IF, (st_data_t)rb_intern2("MULTICAST_IF", 12));
#endif
#ifdef IP_PORTRANGE
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PORTRANGE, (st_data_t)rb_intern2("PORTRANGE", 9));
#endif
#ifdef IP_RECVSLLA
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVSLLA, (st_data_t)rb_intern2("RECVSLLA", 8));
#endif
#ifdef IP_RECVIF
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVIF, (st_data_t)rb_intern2("RECVIF", 6));
#endif
#ifdef IP_RECVTTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTTL, (st_data_t)rb_intern2("RECVTTL", 7));
#endif
#ifdef IP_ONESBCAST
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ONESBCAST, (st_data_t)rb_intern2("ONESBCAST", 9));
#endif
#ifdef IP_SENDSRCADDR
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_SENDSRCADDR, (st_data_t)rb_intern2("SENDSRCADDR", 11));
#endif
#ifdef IP_DONTFRAG
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DONTFRAG, (st_data_t)rb_intern2("DONTFRAG", 8));
#endif
#ifdef IP_MINTTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MINTTL, (st_data_t)rb_intern2("MINTTL", 6));
#endif
#ifdef IP_RETOPTS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RETOPTS, (st_data_t)rb_intern2("RETOPTS", 7));
#endif
#ifdef IP_RECVDSTADDR
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVDSTADDR, (st_data_t)rb_intern2("RECVDSTADDR", 11));
#endif
#ifdef IP_RECVRETOPTS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVRETOPTS, (st_data_t)rb_intern2("RECVRETOPTS", 11));
#endif
#ifdef IP_RECVOPTS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVOPTS, (st_data_t)rb_intern2("RECVOPTS", 8));
#endif
#ifdef IP_TTL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TTL, (st_data_t)rb_intern2("TTL", 3));
#endif
#ifdef IP_TOS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TOS, (st_data_t)rb_intern2("TOS", 3));
#endif
#ifdef IP_HDRINCL
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_HDRINCL, (st_data_t)rb_intern2("HDRINCL", 7));
#endif
#ifdef IP_OPTIONS
st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_OPTIONS, (st_data_t)rb_intern2("OPTIONS", 7));
#endif
rsock_intern_ipv6_optname_hash = st_init_numtable();
#ifdef IPV6_USE_MIN_MTU
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_USE_MIN_MTU, (st_data_t)rb_intern2("IPV6_USE_MIN_MTU", 16));
#endif
#ifdef IPV6_TCLASS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_TCLASS, (st_data_t)rb_intern2("IPV6_TCLASS", 11));
#endif
#ifdef IPV6_RECVPATHMTU
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPATHMTU, (st_data_t)rb_intern2("IPV6_RECVPATHMTU", 16));
#endif
#ifdef IPV6_RTHDR_TYPE_0
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR_TYPE_0, (st_data_t)rb_intern2("IPV6_RTHDR_TYPE_0", 17));
#endif
#ifdef IPV6_RTHDRDSTOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDRDSTOPTS, (st_data_t)rb_intern2("IPV6_RTHDRDSTOPTS", 17));
#endif
#ifdef IPV6_RTHDR
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR, (st_data_t)rb_intern2("IPV6_RTHDR", 10));
#endif
#ifdef IPV6_RECVTCLASS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVTCLASS, (st_data_t)rb_intern2("IPV6_RECVTCLASS", 15));
#endif
#ifdef IPV6_RECVRTHDR
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVRTHDR, (st_data_t)rb_intern2("IPV6_RECVRTHDR", 14));
#endif
#ifdef IPV6_RECVPKTINFO
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPKTINFO, (st_data_t)rb_intern2("IPV6_RECVPKTINFO", 16));
#endif
#ifdef IPV6_RECVHOPOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPOPTS, (st_data_t)rb_intern2("IPV6_RECVHOPOPTS", 16));
#endif
#ifdef IPV6_RECVHOPLIMIT
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPLIMIT, (st_data_t)rb_intern2("IPV6_RECVHOPLIMIT", 17));
#endif
#ifdef IPV6_RECVDSTOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVDSTOPTS, (st_data_t)rb_intern2("IPV6_RECVDSTOPTS", 16));
#endif
#ifdef IPV6_PKTINFO
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PKTINFO, (st_data_t)rb_intern2("IPV6_PKTINFO", 12));
#endif
#ifdef IPV6_PATHMTU
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PATHMTU, (st_data_t)rb_intern2("IPV6_PATHMTU", 12));
#endif
#ifdef IPV6_NEXTHOP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_NEXTHOP, (st_data_t)rb_intern2("IPV6_NEXTHOP", 12));
#endif
#ifdef IPV6_HOPOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPOPTS, (st_data_t)rb_intern2("IPV6_HOPOPTS", 12));
#endif
#ifdef IPV6_HOPLIMIT
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPLIMIT, (st_data_t)rb_intern2("IPV6_HOPLIMIT", 13));
#endif
#ifdef IPV6_DSTOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DSTOPTS, (st_data_t)rb_intern2("IPV6_DSTOPTS", 12));
#endif
#ifdef IPV6_DONTFRAG
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DONTFRAG, (st_data_t)rb_intern2("IPV6_DONTFRAG", 13));
#endif
#ifdef IPV6_CHECKSUM
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_CHECKSUM, (st_data_t)rb_intern2("IPV6_CHECKSUM", 13));
#endif
#ifdef IPV6_V6ONLY
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_V6ONLY, (st_data_t)rb_intern2("IPV6_V6ONLY", 11));
#endif
#ifdef IPV6_UNICAST_HOPS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_UNICAST_HOPS, (st_data_t)rb_intern2("IPV6_UNICAST_HOPS", 17));
#endif
#ifdef IPV6_MULTICAST_LOOP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_LOOP, (st_data_t)rb_intern2("IPV6_MULTICAST_LOOP", 19));
#endif
#ifdef IPV6_MULTICAST_IF
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_IF, (st_data_t)rb_intern2("IPV6_MULTICAST_IF", 17));
#endif
#ifdef IPV6_MULTICAST_HOPS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_HOPS, (st_data_t)rb_intern2("IPV6_MULTICAST_HOPS", 19));
#endif
#ifdef IPV6_LEAVE_GROUP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_LEAVE_GROUP, (st_data_t)rb_intern2("IPV6_LEAVE_GROUP", 16));
#endif
#ifdef IPV6_JOIN_GROUP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_JOIN_GROUP, (st_data_t)rb_intern2("IPV6_JOIN_GROUP", 15));
#endif
#ifdef IPV6_USE_MIN_MTU
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_USE_MIN_MTU, (st_data_t)rb_intern2("USE_MIN_MTU", 11));
#endif
#ifdef IPV6_TCLASS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_TCLASS, (st_data_t)rb_intern2("TCLASS", 6));
#endif
#ifdef IPV6_RECVPATHMTU
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPATHMTU, (st_data_t)rb_intern2("RECVPATHMTU", 11));
#endif
#ifdef IPV6_RTHDR_TYPE_0
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR_TYPE_0, (st_data_t)rb_intern2("RTHDR_TYPE_0", 12));
#endif
#ifdef IPV6_RTHDRDSTOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDRDSTOPTS, (st_data_t)rb_intern2("RTHDRDSTOPTS", 12));
#endif
#ifdef IPV6_RTHDR
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR, (st_data_t)rb_intern2("RTHDR", 5));
#endif
#ifdef IPV6_RECVTCLASS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVTCLASS, (st_data_t)rb_intern2("RECVTCLASS", 10));
#endif
#ifdef IPV6_RECVRTHDR
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVRTHDR, (st_data_t)rb_intern2("RECVRTHDR", 9));
#endif
#ifdef IPV6_RECVPKTINFO
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPKTINFO, (st_data_t)rb_intern2("RECVPKTINFO", 11));
#endif
#ifdef IPV6_RECVHOPOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPOPTS, (st_data_t)rb_intern2("RECVHOPOPTS", 11));
#endif
#ifdef IPV6_RECVHOPLIMIT
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPLIMIT, (st_data_t)rb_intern2("RECVHOPLIMIT", 12));
#endif
#ifdef IPV6_RECVDSTOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVDSTOPTS, (st_data_t)rb_intern2("RECVDSTOPTS", 11));
#endif
#ifdef IPV6_PKTINFO
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PKTINFO, (st_data_t)rb_intern2("PKTINFO", 7));
#endif
#ifdef IPV6_PATHMTU
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PATHMTU, (st_data_t)rb_intern2("PATHMTU", 7));
#endif
#ifdef IPV6_NEXTHOP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_NEXTHOP, (st_data_t)rb_intern2("NEXTHOP", 7));
#endif
#ifdef IPV6_HOPOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPOPTS, (st_data_t)rb_intern2("HOPOPTS", 7));
#endif
#ifdef IPV6_HOPLIMIT
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPLIMIT, (st_data_t)rb_intern2("HOPLIMIT", 8));
#endif
#ifdef IPV6_DSTOPTS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DSTOPTS, (st_data_t)rb_intern2("DSTOPTS", 7));
#endif
#ifdef IPV6_DONTFRAG
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DONTFRAG, (st_data_t)rb_intern2("DONTFRAG", 8));
#endif
#ifdef IPV6_CHECKSUM
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_CHECKSUM, (st_data_t)rb_intern2("CHECKSUM", 8));
#endif
#ifdef IPV6_V6ONLY
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_V6ONLY, (st_data_t)rb_intern2("V6ONLY", 6));
#endif
#ifdef IPV6_UNICAST_HOPS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_UNICAST_HOPS, (st_data_t)rb_intern2("UNICAST_HOPS", 12));
#endif
#ifdef IPV6_MULTICAST_LOOP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_LOOP, (st_data_t)rb_intern2("MULTICAST_LOOP", 14));
#endif
#ifdef IPV6_MULTICAST_IF
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_IF, (st_data_t)rb_intern2("MULTICAST_IF", 12));
#endif
#ifdef IPV6_MULTICAST_HOPS
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_HOPS, (st_data_t)rb_intern2("MULTICAST_HOPS", 14));
#endif
#ifdef IPV6_LEAVE_GROUP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_LEAVE_GROUP, (st_data_t)rb_intern2("LEAVE_GROUP", 11));
#endif
#ifdef IPV6_JOIN_GROUP
st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_JOIN_GROUP, (st_data_t)rb_intern2("JOIN_GROUP", 10));
#endif
rsock_intern_tcp_optname_hash = st_init_numtable();
#ifdef TCP_USER_TIMEOUT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_USER_TIMEOUT, (st_data_t)rb_intern2("TCP_USER_TIMEOUT", 16));
#endif
#ifdef TCP_TIMESTAMP
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_TIMESTAMP, (st_data_t)rb_intern2("TCP_TIMESTAMP", 13));
#endif
#ifdef TCP_THIN_LINEAR_TIMEOUTS
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_THIN_LINEAR_TIMEOUTS, (st_data_t)rb_intern2("TCP_THIN_LINEAR_TIMEOUTS", 24));
#endif
#ifdef TCP_THIN_DUPACK
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_THIN_DUPACK, (st_data_t)rb_intern2("TCP_THIN_DUPACK", 15));
#endif
#ifdef TCP_REPAIR_QUEUE
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_REPAIR_QUEUE, (st_data_t)rb_intern2("TCP_REPAIR_QUEUE", 16));
#endif
#ifdef TCP_REPAIR_OPTIONS
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_REPAIR_OPTIONS, (st_data_t)rb_intern2("TCP_REPAIR_OPTIONS", 18));
#endif
#ifdef TCP_REPAIR
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_REPAIR, (st_data_t)rb_intern2("TCP_REPAIR", 10));
#endif
#ifdef TCP_QUEUE_SEQ
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_QUEUE_SEQ, (st_data_t)rb_intern2("TCP_QUEUE_SEQ", 13));
#endif
#ifdef TCP_COOKIE_TRANSACTIONS
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_COOKIE_TRANSACTIONS, (st_data_t)rb_intern2("TCP_COOKIE_TRANSACTIONS", 23));
#endif
#ifdef TCP_CONGESTION
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_CONGESTION, (st_data_t)rb_intern2("TCP_CONGESTION", 14));
#endif
#ifdef TCP_FASTOPEN
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_FASTOPEN, (st_data_t)rb_intern2("TCP_FASTOPEN", 12));
#endif
#ifdef TCP_WINDOW_CLAMP
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_WINDOW_CLAMP, (st_data_t)rb_intern2("TCP_WINDOW_CLAMP", 16));
#endif
#ifdef TCP_SYNCNT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_SYNCNT, (st_data_t)rb_intern2("TCP_SYNCNT", 10));
#endif
#ifdef TCP_QUICKACK
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_QUICKACK, (st_data_t)rb_intern2("TCP_QUICKACK", 12));
#endif
#ifdef TCP_NOPUSH
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOPUSH, (st_data_t)rb_intern2("TCP_NOPUSH", 10));
#endif
#ifdef TCP_NOOPT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOOPT, (st_data_t)rb_intern2("TCP_NOOPT", 9));
#endif
#ifdef TCP_MD5SIG
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MD5SIG, (st_data_t)rb_intern2("TCP_MD5SIG", 10));
#endif
#ifdef TCP_LINGER2
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_LINGER2, (st_data_t)rb_intern2("TCP_LINGER2", 11));
#endif
#ifdef TCP_KEEPINTVL
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPINTVL, (st_data_t)rb_intern2("TCP_KEEPINTVL", 13));
#endif
#ifdef TCP_KEEPIDLE
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPIDLE, (st_data_t)rb_intern2("TCP_KEEPIDLE", 12));
#endif
#ifdef TCP_KEEPCNT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPCNT, (st_data_t)rb_intern2("TCP_KEEPCNT", 11));
#endif
#ifdef TCP_INFO
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_INFO, (st_data_t)rb_intern2("TCP_INFO", 8));
#endif
#ifdef TCP_DEFER_ACCEPT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_DEFER_ACCEPT, (st_data_t)rb_intern2("TCP_DEFER_ACCEPT", 16));
#endif
#ifdef TCP_CORK
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_CORK, (st_data_t)rb_intern2("TCP_CORK", 8));
#endif
#ifdef TCP_MAXSEG
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MAXSEG, (st_data_t)rb_intern2("TCP_MAXSEG", 10));
#endif
#ifdef TCP_NODELAY
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NODELAY, (st_data_t)rb_intern2("TCP_NODELAY", 11));
#endif
#ifdef TCP_USER_TIMEOUT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_USER_TIMEOUT, (st_data_t)rb_intern2("USER_TIMEOUT", 12));
#endif
#ifdef TCP_TIMESTAMP
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_TIMESTAMP, (st_data_t)rb_intern2("TIMESTAMP", 9));
#endif
#ifdef TCP_THIN_LINEAR_TIMEOUTS
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_THIN_LINEAR_TIMEOUTS, (st_data_t)rb_intern2("THIN_LINEAR_TIMEOUTS", 20));
#endif
#ifdef TCP_THIN_DUPACK
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_THIN_DUPACK, (st_data_t)rb_intern2("THIN_DUPACK", 11));
#endif
#ifdef TCP_REPAIR_QUEUE
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_REPAIR_QUEUE, (st_data_t)rb_intern2("REPAIR_QUEUE", 12));
#endif
#ifdef TCP_REPAIR_OPTIONS
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_REPAIR_OPTIONS, (st_data_t)rb_intern2("REPAIR_OPTIONS", 14));
#endif
#ifdef TCP_REPAIR
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_REPAIR, (st_data_t)rb_intern2("REPAIR", 6));
#endif
#ifdef TCP_QUEUE_SEQ
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_QUEUE_SEQ, (st_data_t)rb_intern2("QUEUE_SEQ", 9));
#endif
#ifdef TCP_COOKIE_TRANSACTIONS
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_COOKIE_TRANSACTIONS, (st_data_t)rb_intern2("COOKIE_TRANSACTIONS", 19));
#endif
#ifdef TCP_CONGESTION
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_CONGESTION, (st_data_t)rb_intern2("CONGESTION", 10));
#endif
#ifdef TCP_FASTOPEN
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_FASTOPEN, (st_data_t)rb_intern2("FASTOPEN", 8));
#endif
#ifdef TCP_WINDOW_CLAMP
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_WINDOW_CLAMP, (st_data_t)rb_intern2("WINDOW_CLAMP", 12));
#endif
#ifdef TCP_SYNCNT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_SYNCNT, (st_data_t)rb_intern2("SYNCNT", 6));
#endif
#ifdef TCP_QUICKACK
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_QUICKACK, (st_data_t)rb_intern2("QUICKACK", 8));
#endif
#ifdef TCP_NOPUSH
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOPUSH, (st_data_t)rb_intern2("NOPUSH", 6));
#endif
#ifdef TCP_NOOPT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOOPT, (st_data_t)rb_intern2("NOOPT", 5));
#endif
#ifdef TCP_MD5SIG
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MD5SIG, (st_data_t)rb_intern2("MD5SIG", 6));
#endif
#ifdef TCP_LINGER2
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_LINGER2, (st_data_t)rb_intern2("LINGER2", 7));
#endif
#ifdef TCP_KEEPINTVL
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPINTVL, (st_data_t)rb_intern2("KEEPINTVL", 9));
#endif
#ifdef TCP_KEEPIDLE
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPIDLE, (st_data_t)rb_intern2("KEEPIDLE", 8));
#endif
#ifdef TCP_KEEPCNT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPCNT, (st_data_t)rb_intern2("KEEPCNT", 7));
#endif
#ifdef TCP_INFO
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_INFO, (st_data_t)rb_intern2("INFO", 4));
#endif
#ifdef TCP_DEFER_ACCEPT
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_DEFER_ACCEPT, (st_data_t)rb_intern2("DEFER_ACCEPT", 12));
#endif
#ifdef TCP_CORK
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_CORK, (st_data_t)rb_intern2("CORK", 4));
#endif
#ifdef TCP_MAXSEG
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MAXSEG, (st_data_t)rb_intern2("MAXSEG", 6));
#endif
#ifdef TCP_NODELAY
st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NODELAY, (st_data_t)rb_intern2("NODELAY", 7));
#endif
rsock_intern_udp_optname_hash = st_init_numtable();
#ifdef UDP_CORK
st_insert(rsock_intern_udp_optname_hash, (st_data_t)UDP_CORK, (st_data_t)rb_intern2("UDP_CORK", 8));
#endif
#ifdef UDP_CORK
st_insert(rsock_intern_udp_optname_hash, (st_data_t)UDP_CORK, (st_data_t)rb_intern2("CORK", 4));
#endif
rsock_intern_scm_optname_hash = st_init_numtable();
#ifdef SCM_WIFI_STATUS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_WIFI_STATUS, (st_data_t)rb_intern2("SCM_WIFI_STATUS", 15));
#endif
#ifdef SCM_UCRED
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_UCRED, (st_data_t)rb_intern2("SCM_UCRED", 9));
#endif
#ifdef SCM_CREDS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDS, (st_data_t)rb_intern2("SCM_CREDS", 9));
#endif
#ifdef SCM_CREDENTIALS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDENTIALS, (st_data_t)rb_intern2("SCM_CREDENTIALS", 15));
#endif
#ifdef SCM_BINTIME
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_BINTIME, (st_data_t)rb_intern2("SCM_BINTIME", 11));
#endif
#ifdef SCM_TIMESTAMPING
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMPING, (st_data_t)rb_intern2("SCM_TIMESTAMPING", 16));
#endif
#ifdef SCM_TIMESTAMPNS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMPNS, (st_data_t)rb_intern2("SCM_TIMESTAMPNS", 15));
#endif
#ifdef SCM_TIMESTAMP
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMP, (st_data_t)rb_intern2("SCM_TIMESTAMP", 13));
#endif
#ifdef SCM_RIGHTS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_RIGHTS, (st_data_t)rb_intern2("SCM_RIGHTS", 10));
#endif
#ifdef SCM_WIFI_STATUS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_WIFI_STATUS, (st_data_t)rb_intern2("WIFI_STATUS", 11));
#endif
#ifdef SCM_UCRED
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_UCRED, (st_data_t)rb_intern2("UCRED", 5));
#endif
#ifdef SCM_CREDS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDS, (st_data_t)rb_intern2("CREDS", 5));
#endif
#ifdef SCM_CREDENTIALS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDENTIALS, (st_data_t)rb_intern2("CREDENTIALS", 11));
#endif
#ifdef SCM_BINTIME
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_BINTIME, (st_data_t)rb_intern2("BINTIME", 7));
#endif
#ifdef SCM_TIMESTAMPING
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMPING, (st_data_t)rb_intern2("TIMESTAMPING", 12));
#endif
#ifdef SCM_TIMESTAMPNS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMPNS, (st_data_t)rb_intern2("TIMESTAMPNS", 11));
#endif
#ifdef SCM_TIMESTAMP
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMP, (st_data_t)rb_intern2("TIMESTAMP", 9));
#endif
#ifdef SCM_RIGHTS
st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_RIGHTS, (st_data_t)rb_intern2("RIGHTS", 6));
#endif
rsock_intern_local_optname_hash = st_init_numtable();
#ifdef LOCAL_CONNWAIT
st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CONNWAIT, (st_data_t)rb_intern2("LOCAL_CONNWAIT", 14));
#endif
#ifdef LOCAL_CREDS
st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CREDS, (st_data_t)rb_intern2("LOCAL_CREDS", 11));
#endif
#ifdef LOCAL_PEERCRED
st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_PEERCRED, (st_data_t)rb_intern2("LOCAL_PEERCRED", 14));
#endif
#ifdef LOCAL_CONNWAIT
st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CONNWAIT, (st_data_t)rb_intern2("CONNWAIT", 8));
#endif
#ifdef LOCAL_CREDS
st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CREDS, (st_data_t)rb_intern2("CREDS", 5));
#endif
#ifdef LOCAL_PEERCRED
st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_PEERCRED, (st_data_t)rb_intern2("PEERCRED", 8));
#endif
}
int
rsock_family_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 2:
#ifdef AF_NS
if (memcmp(str, "NS", 2) == 0) { *valp = AF_NS; return 0; }
#endif
return -1;
case 3:
#ifdef AF_IPX
if (memcmp(str, "IPX", 3) == 0) { *valp = AF_IPX; return 0; }
#endif
#ifdef AF_PUP
if (memcmp(str, "PUP", 3) == 0) { *valp = AF_PUP; return 0; }
#endif
#ifdef AF_ISO
if (memcmp(str, "ISO", 3) == 0) { *valp = AF_ISO; return 0; }
#endif
#ifdef AF_OSI
if (memcmp(str, "OSI", 3) == 0) { *valp = AF_OSI; return 0; }
#endif
#ifdef AF_SNA
if (memcmp(str, "SNA", 3) == 0) { *valp = AF_SNA; return 0; }
#endif
#ifdef AF_DEC
if (memcmp(str, "DEC", 3) == 0) { *valp = AF_DEC; return 0; }
#endif
#ifdef AF_DLI
if (memcmp(str, "DLI", 3) == 0) { *valp = AF_DLI; return 0; }
#endif
#ifdef AF_LAT
if (memcmp(str, "LAT", 3) == 0) { *valp = AF_LAT; return 0; }
#endif
#ifdef AF_CNT
if (memcmp(str, "CNT", 3) == 0) { *valp = AF_CNT; return 0; }
#endif
#ifdef AF_SIP
if (memcmp(str, "SIP", 3) == 0) { *valp = AF_SIP; return 0; }
#endif
#ifdef AF_PPP
if (memcmp(str, "PPP", 3) == 0) { *valp = AF_PPP; return 0; }
#endif
#ifdef AF_ATM
if (memcmp(str, "ATM", 3) == 0) { *valp = AF_ATM; return 0; }
#endif
#ifdef AF_MAX
if (memcmp(str, "MAX", 3) == 0) { *valp = AF_MAX; return 0; }
#endif
return -1;
case 4:
#ifdef AF_INET
if (memcmp(str, "INET", 4) == 0) { *valp = AF_INET; return 0; }
#endif
#ifdef AF_UNIX
if (memcmp(str, "UNIX", 4) == 0) { *valp = AF_UNIX; return 0; }
#endif
#ifdef AF_AX25
if (memcmp(str, "AX25", 4) == 0) { *valp = AF_AX25; return 0; }
#endif
#ifdef AF_ECMA
if (memcmp(str, "ECMA", 4) == 0) { *valp = AF_ECMA; return 0; }
#endif
#ifdef AF_LINK
if (memcmp(str, "LINK", 4) == 0) { *valp = AF_LINK; return 0; }
#endif
#ifdef AF_COIP
if (memcmp(str, "COIP", 4) == 0) { *valp = AF_COIP; return 0; }
#endif
#ifdef AF_NDRV
if (memcmp(str, "NDRV", 4) == 0) { *valp = AF_NDRV; return 0; }
#endif
#ifdef AF_ISDN
if (memcmp(str, "ISDN", 4) == 0) { *valp = AF_ISDN; return 0; }
#endif
#ifdef AF_NATM
if (memcmp(str, "NATM", 4) == 0) { *valp = AF_NATM; return 0; }
#endif
#ifdef AF_E164
if (memcmp(str, "E164", 4) == 0) { *valp = AF_E164; return 0; }
#endif
return -1;
case 5:
#ifdef AF_NS
if (memcmp(str, "AF_NS", 5) == 0) { *valp = AF_NS; return 0; }
#endif
#ifdef PF_NS
if (memcmp(str, "PF_NS", 5) == 0) { *valp = PF_NS; return 0; }
#endif
#ifdef AF_INET6
if (memcmp(str, "INET6", 5) == 0) { *valp = AF_INET6; return 0; }
#endif
#ifdef AF_LOCAL
if (memcmp(str, "LOCAL", 5) == 0) { *valp = AF_LOCAL; return 0; }
#endif
#ifdef AF_CHAOS
if (memcmp(str, "CHAOS", 5) == 0) { *valp = AF_CHAOS; return 0; }
#endif
#ifdef AF_CCITT
if (memcmp(str, "CCITT", 5) == 0) { *valp = AF_CCITT; return 0; }
#endif
#ifdef AF_ROUTE
if (memcmp(str, "ROUTE", 5) == 0) { *valp = AF_ROUTE; return 0; }
#endif
return -1;
case 6:
#ifdef AF_IPX
if (memcmp(str, "AF_IPX", 6) == 0) { *valp = AF_IPX; return 0; }
#endif
#ifdef PF_IPX
if (memcmp(str, "PF_IPX", 6) == 0) { *valp = PF_IPX; return 0; }
#endif
#ifdef AF_PUP
if (memcmp(str, "AF_PUP", 6) == 0) { *valp = AF_PUP; return 0; }
#endif
#ifdef PF_PUP
if (memcmp(str, "PF_PUP", 6) == 0) { *valp = PF_PUP; return 0; }
#endif
#ifdef AF_ISO
if (memcmp(str, "AF_ISO", 6) == 0) { *valp = AF_ISO; return 0; }
#endif
#ifdef PF_ISO
if (memcmp(str, "PF_ISO", 6) == 0) { *valp = PF_ISO; return 0; }
#endif
#ifdef AF_OSI
if (memcmp(str, "AF_OSI", 6) == 0) { *valp = AF_OSI; return 0; }
#endif
#ifdef PF_OSI
if (memcmp(str, "PF_OSI", 6) == 0) { *valp = PF_OSI; return 0; }
#endif
#ifdef AF_SNA
if (memcmp(str, "AF_SNA", 6) == 0) { *valp = AF_SNA; return 0; }
#endif
#ifdef PF_SNA
if (memcmp(str, "PF_SNA", 6) == 0) { *valp = PF_SNA; return 0; }
#endif
#ifdef AF_DEC
if (memcmp(str, "AF_DEC", 6) == 0) { *valp = AF_DEC; return 0; }
#endif
#ifdef PF_DEC
if (memcmp(str, "PF_DEC", 6) == 0) { *valp = PF_DEC; return 0; }
#endif
#ifdef AF_DLI
if (memcmp(str, "AF_DLI", 6) == 0) { *valp = AF_DLI; return 0; }
#endif
#ifdef PF_DLI
if (memcmp(str, "PF_DLI", 6) == 0) { *valp = PF_DLI; return 0; }
#endif
#ifdef AF_LAT
if (memcmp(str, "AF_LAT", 6) == 0) { *valp = AF_LAT; return 0; }
#endif
#ifdef PF_LAT
if (memcmp(str, "PF_LAT", 6) == 0) { *valp = PF_LAT; return 0; }
#endif
#ifdef AF_CNT
if (memcmp(str, "AF_CNT", 6) == 0) { *valp = AF_CNT; return 0; }
#endif
#ifdef PF_CNT
if (memcmp(str, "PF_CNT", 6) == 0) { *valp = PF_CNT; return 0; }
#endif
#ifdef AF_SIP
if (memcmp(str, "AF_SIP", 6) == 0) { *valp = AF_SIP; return 0; }
#endif
#ifdef PF_SIP
if (memcmp(str, "PF_SIP", 6) == 0) { *valp = PF_SIP; return 0; }
#endif
#ifdef AF_PPP
if (memcmp(str, "AF_PPP", 6) == 0) { *valp = AF_PPP; return 0; }
#endif
#ifdef PF_PPP
if (memcmp(str, "PF_PPP", 6) == 0) { *valp = PF_PPP; return 0; }
#endif
#ifdef AF_ATM
if (memcmp(str, "AF_ATM", 6) == 0) { *valp = AF_ATM; return 0; }
#endif
#ifdef PF_ATM
if (memcmp(str, "PF_ATM", 6) == 0) { *valp = PF_ATM; return 0; }
#endif
#ifdef AF_MAX
if (memcmp(str, "AF_MAX", 6) == 0) { *valp = AF_MAX; return 0; }
#endif
#ifdef PF_MAX
if (memcmp(str, "PF_MAX", 6) == 0) { *valp = PF_MAX; return 0; }
#endif
#ifdef PF_XTP
if (memcmp(str, "PF_XTP", 6) == 0) { *valp = PF_XTP; return 0; }
#endif
#ifdef PF_PIP
if (memcmp(str, "PF_PIP", 6) == 0) { *valp = PF_PIP; return 0; }
#endif
#ifdef PF_KEY
if (memcmp(str, "PF_KEY", 6) == 0) { *valp = PF_KEY; return 0; }
#endif
#ifdef AF_UNSPEC
if (memcmp(str, "UNSPEC", 6) == 0) { *valp = AF_UNSPEC; return 0; }
#endif
#ifdef AF_HYLINK
if (memcmp(str, "HYLINK", 6) == 0) { *valp = AF_HYLINK; return 0; }
#endif
#ifdef AF_SYSTEM
if (memcmp(str, "SYSTEM", 6) == 0) { *valp = AF_SYSTEM; return 0; }
#endif
#ifdef AF_PACKET
if (memcmp(str, "PACKET", 6) == 0) { *valp = AF_PACKET; return 0; }
#endif
return -1;
case 7:
#ifdef AF_INET
if (memcmp(str, "AF_INET", 7) == 0) { *valp = AF_INET; return 0; }
#endif
#ifdef PF_INET
if (memcmp(str, "PF_INET", 7) == 0) { *valp = PF_INET; return 0; }
#endif
#ifdef AF_UNIX
if (memcmp(str, "AF_UNIX", 7) == 0) { *valp = AF_UNIX; return 0; }
#endif
#ifdef PF_UNIX
if (memcmp(str, "PF_UNIX", 7) == 0) { *valp = PF_UNIX; return 0; }
#endif
#ifdef AF_AX25
if (memcmp(str, "AF_AX25", 7) == 0) { *valp = AF_AX25; return 0; }
#endif
#ifdef PF_AX25
if (memcmp(str, "PF_AX25", 7) == 0) { *valp = PF_AX25; return 0; }
#endif
#ifdef AF_ECMA
if (memcmp(str, "AF_ECMA", 7) == 0) { *valp = AF_ECMA; return 0; }
#endif
#ifdef PF_ECMA
if (memcmp(str, "PF_ECMA", 7) == 0) { *valp = PF_ECMA; return 0; }
#endif
#ifdef AF_LINK
if (memcmp(str, "AF_LINK", 7) == 0) { *valp = AF_LINK; return 0; }
#endif
#ifdef PF_LINK
if (memcmp(str, "PF_LINK", 7) == 0) { *valp = PF_LINK; return 0; }
#endif
#ifdef AF_COIP
if (memcmp(str, "AF_COIP", 7) == 0) { *valp = AF_COIP; return 0; }
#endif
#ifdef PF_COIP
if (memcmp(str, "PF_COIP", 7) == 0) { *valp = PF_COIP; return 0; }
#endif
#ifdef AF_NDRV
if (memcmp(str, "AF_NDRV", 7) == 0) { *valp = AF_NDRV; return 0; }
#endif
#ifdef PF_NDRV
if (memcmp(str, "PF_NDRV", 7) == 0) { *valp = PF_NDRV; return 0; }
#endif
#ifdef AF_ISDN
if (memcmp(str, "AF_ISDN", 7) == 0) { *valp = AF_ISDN; return 0; }
#endif
#ifdef PF_ISDN
if (memcmp(str, "PF_ISDN", 7) == 0) { *valp = PF_ISDN; return 0; }
#endif
#ifdef AF_NATM
if (memcmp(str, "AF_NATM", 7) == 0) { *valp = AF_NATM; return 0; }
#endif
#ifdef PF_NATM
if (memcmp(str, "PF_NATM", 7) == 0) { *valp = PF_NATM; return 0; }
#endif
#ifdef AF_E164
if (memcmp(str, "AF_E164", 7) == 0) { *valp = AF_E164; return 0; }
#endif
#ifdef PF_RTIP
if (memcmp(str, "PF_RTIP", 7) == 0) { *valp = PF_RTIP; return 0; }
#endif
#ifdef AF_IMPLINK
if (memcmp(str, "IMPLINK", 7) == 0) { *valp = AF_IMPLINK; return 0; }
#endif
#ifdef AF_DATAKIT
if (memcmp(str, "DATAKIT", 7) == 0) { *valp = AF_DATAKIT; return 0; }
#endif
#ifdef AF_NETBIOS
if (memcmp(str, "NETBIOS", 7) == 0) { *valp = AF_NETBIOS; return 0; }
#endif
return -1;
case 8:
#ifdef AF_INET6
if (memcmp(str, "AF_INET6", 8) == 0) { *valp = AF_INET6; return 0; }
#endif
#ifdef PF_INET6
if (memcmp(str, "PF_INET6", 8) == 0) { *valp = PF_INET6; return 0; }
#endif
#ifdef AF_LOCAL
if (memcmp(str, "AF_LOCAL", 8) == 0) { *valp = AF_LOCAL; return 0; }
#endif
#ifdef PF_LOCAL
if (memcmp(str, "PF_LOCAL", 8) == 0) { *valp = PF_LOCAL; return 0; }
#endif
#ifdef AF_CHAOS
if (memcmp(str, "AF_CHAOS", 8) == 0) { *valp = AF_CHAOS; return 0; }
#endif
#ifdef PF_CHAOS
if (memcmp(str, "PF_CHAOS", 8) == 0) { *valp = PF_CHAOS; return 0; }
#endif
#ifdef AF_CCITT
if (memcmp(str, "AF_CCITT", 8) == 0) { *valp = AF_CCITT; return 0; }
#endif
#ifdef PF_CCITT
if (memcmp(str, "PF_CCITT", 8) == 0) { *valp = PF_CCITT; return 0; }
#endif
#ifdef AF_ROUTE
if (memcmp(str, "AF_ROUTE", 8) == 0) { *valp = AF_ROUTE; return 0; }
#endif
#ifdef PF_ROUTE
if (memcmp(str, "PF_ROUTE", 8) == 0) { *valp = PF_ROUTE; return 0; }
#endif
#ifdef AF_NETGRAPH
if (memcmp(str, "NETGRAPH", 8) == 0) { *valp = AF_NETGRAPH; return 0; }
#endif
return -1;
case 9:
#ifdef AF_UNSPEC
if (memcmp(str, "AF_UNSPEC", 9) == 0) { *valp = AF_UNSPEC; return 0; }
#endif
#ifdef PF_UNSPEC
if (memcmp(str, "PF_UNSPEC", 9) == 0) { *valp = PF_UNSPEC; return 0; }
#endif
#ifdef AF_HYLINK
if (memcmp(str, "AF_HYLINK", 9) == 0) { *valp = AF_HYLINK; return 0; }
#endif
#ifdef PF_HYLINK
if (memcmp(str, "PF_HYLINK", 9) == 0) { *valp = PF_HYLINK; return 0; }
#endif
#ifdef AF_SYSTEM
if (memcmp(str, "AF_SYSTEM", 9) == 0) { *valp = AF_SYSTEM; return 0; }
#endif
#ifdef PF_SYSTEM
if (memcmp(str, "PF_SYSTEM", 9) == 0) { *valp = PF_SYSTEM; return 0; }
#endif
#ifdef AF_PACKET
if (memcmp(str, "AF_PACKET", 9) == 0) { *valp = AF_PACKET; return 0; }
#endif
#ifdef PF_PACKET
if (memcmp(str, "PF_PACKET", 9) == 0) { *valp = PF_PACKET; return 0; }
#endif
#ifdef AF_APPLETALK
if (memcmp(str, "APPLETALK", 9) == 0) { *valp = AF_APPLETALK; return 0; }
#endif
return -1;
case 10:
#ifdef AF_IMPLINK
if (memcmp(str, "AF_IMPLINK", 10) == 0) { *valp = AF_IMPLINK; return 0; }
#endif
#ifdef PF_IMPLINK
if (memcmp(str, "PF_IMPLINK", 10) == 0) { *valp = PF_IMPLINK; return 0; }
#endif
#ifdef AF_DATAKIT
if (memcmp(str, "AF_DATAKIT", 10) == 0) { *valp = AF_DATAKIT; return 0; }
#endif
#ifdef PF_DATAKIT
if (memcmp(str, "PF_DATAKIT", 10) == 0) { *valp = PF_DATAKIT; return 0; }
#endif
#ifdef AF_NETBIOS
if (memcmp(str, "AF_NETBIOS", 10) == 0) { *valp = AF_NETBIOS; return 0; }
#endif
#ifdef PF_NETBIOS
if (memcmp(str, "PF_NETBIOS", 10) == 0) { *valp = PF_NETBIOS; return 0; }
#endif
return -1;
case 11:
#ifdef AF_NETGRAPH
if (memcmp(str, "AF_NETGRAPH", 11) == 0) { *valp = AF_NETGRAPH; return 0; }
#endif
#ifdef PF_NETGRAPH
if (memcmp(str, "PF_NETGRAPH", 11) == 0) { *valp = PF_NETGRAPH; return 0; }
#endif
return -1;
case 12:
#ifdef AF_APPLETALK
if (memcmp(str, "AF_APPLETALK", 12) == 0) { *valp = AF_APPLETALK; return 0; }
#endif
#ifdef PF_APPLETALK
if (memcmp(str, "PF_APPLETALK", 12) == 0) { *valp = PF_APPLETALK; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_socktype_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 3:
#ifdef SOCK_RAW
if (memcmp(str, "RAW", 3) == 0) { *valp = SOCK_RAW; return 0; }
#endif
#ifdef SOCK_RDM
if (memcmp(str, "RDM", 3) == 0) { *valp = SOCK_RDM; return 0; }
#endif
return -1;
case 5:
#ifdef SOCK_DGRAM
if (memcmp(str, "DGRAM", 5) == 0) { *valp = SOCK_DGRAM; return 0; }
#endif
return -1;
case 6:
#ifdef SOCK_STREAM
if (memcmp(str, "STREAM", 6) == 0) { *valp = SOCK_STREAM; return 0; }
#endif
#ifdef SOCK_PACKET
if (memcmp(str, "PACKET", 6) == 0) { *valp = SOCK_PACKET; return 0; }
#endif
return -1;
case 8:
#ifdef SOCK_RAW
if (memcmp(str, "SOCK_RAW", 8) == 0) { *valp = SOCK_RAW; return 0; }
#endif
#ifdef SOCK_RDM
if (memcmp(str, "SOCK_RDM", 8) == 0) { *valp = SOCK_RDM; return 0; }
#endif
return -1;
case 9:
#ifdef SOCK_SEQPACKET
if (memcmp(str, "SEQPACKET", 9) == 0) { *valp = SOCK_SEQPACKET; return 0; }
#endif
return -1;
case 10:
#ifdef SOCK_DGRAM
if (memcmp(str, "SOCK_DGRAM", 10) == 0) { *valp = SOCK_DGRAM; return 0; }
#endif
return -1;
case 11:
#ifdef SOCK_STREAM
if (memcmp(str, "SOCK_STREAM", 11) == 0) { *valp = SOCK_STREAM; return 0; }
#endif
#ifdef SOCK_PACKET
if (memcmp(str, "SOCK_PACKET", 11) == 0) { *valp = SOCK_PACKET; return 0; }
#endif
return -1;
case 14:
#ifdef SOCK_SEQPACKET
if (memcmp(str, "SOCK_SEQPACKET", 14) == 0) { *valp = SOCK_SEQPACKET; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_ipproto_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 2:
#ifdef IPPROTO_IP
if (memcmp(str, "IP", 2) == 0) { *valp = IPPROTO_IP; return 0; }
#endif
#ifdef IPPROTO_ND
if (memcmp(str, "ND", 2) == 0) { *valp = IPPROTO_ND; return 0; }
#endif
#ifdef IPPROTO_TP
if (memcmp(str, "TP", 2) == 0) { *valp = IPPROTO_TP; return 0; }
#endif
#ifdef IPPROTO_AH
if (memcmp(str, "AH", 2) == 0) { *valp = IPPROTO_AH; return 0; }
#endif
return -1;
case 3:
#ifdef IPPROTO_GGP
if (memcmp(str, "GGP", 3) == 0) { *valp = IPPROTO_GGP; return 0; }
#endif
#ifdef IPPROTO_TCP
if (memcmp(str, "TCP", 3) == 0) { *valp = IPPROTO_TCP; return 0; }
#endif
#ifdef IPPROTO_EGP
if (memcmp(str, "EGP", 3) == 0) { *valp = IPPROTO_EGP; return 0; }
#endif
#ifdef IPPROTO_PUP
if (memcmp(str, "PUP", 3) == 0) { *valp = IPPROTO_PUP; return 0; }
#endif
#ifdef IPPROTO_UDP
if (memcmp(str, "UDP", 3) == 0) { *valp = IPPROTO_UDP; return 0; }
#endif
#ifdef IPPROTO_IDP
if (memcmp(str, "IDP", 3) == 0) { *valp = IPPROTO_IDP; return 0; }
#endif
#ifdef IPPROTO_XTP
if (memcmp(str, "XTP", 3) == 0) { *valp = IPPROTO_XTP; return 0; }
#endif
#ifdef IPPROTO_EON
if (memcmp(str, "EON", 3) == 0) { *valp = IPPROTO_EON; return 0; }
#endif
#ifdef IPPROTO_BIP
if (memcmp(str, "BIP", 3) == 0) { *valp = IPPROTO_BIP; return 0; }
#endif
#ifdef IPPROTO_ESP
if (memcmp(str, "ESP", 3) == 0) { *valp = IPPROTO_ESP; return 0; }
#endif
#ifdef IPPROTO_RAW
if (memcmp(str, "RAW", 3) == 0) { *valp = IPPROTO_RAW; return 0; }
#endif
#ifdef IPPROTO_MAX
if (memcmp(str, "MAX", 3) == 0) { *valp = IPPROTO_MAX; return 0; }
#endif
return -1;
case 4:
#ifdef IPPROTO_ICMP
if (memcmp(str, "ICMP", 4) == 0) { *valp = IPPROTO_ICMP; return 0; }
#endif
#ifdef IPPROTO_IGMP
if (memcmp(str, "IGMP", 4) == 0) { *valp = IPPROTO_IGMP; return 0; }
#endif
#ifdef IPPROTO_IPV6
if (memcmp(str, "IPV6", 4) == 0) { *valp = IPPROTO_IPV6; return 0; }
#endif
#ifdef IPPROTO_NONE
if (memcmp(str, "NONE", 4) == 0) { *valp = IPPROTO_NONE; return 0; }
#endif
return -1;
case 5:
#ifdef IPPROTO_HELLO
if (memcmp(str, "HELLO", 5) == 0) { *valp = IPPROTO_HELLO; return 0; }
#endif
return -1;
case 6:
#ifdef IPPROTO_ICMPV6
if (memcmp(str, "ICMPV6", 6) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
#endif
return -1;
case 7:
#ifdef IPPROTO_DSTOPTS
if (memcmp(str, "DSTOPTS", 7) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
#endif
#ifdef IPPROTO_HOPOPTS
if (memcmp(str, "HOPOPTS", 7) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
#endif
#ifdef IPPROTO_ROUTING
if (memcmp(str, "ROUTING", 7) == 0) { *valp = IPPROTO_ROUTING; return 0; }
#endif
return -1;
case 8:
#ifdef IPPROTO_FRAGMENT
if (memcmp(str, "FRAGMENT", 8) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
#endif
return -1;
case 10:
#ifdef IPPROTO_IP
if (memcmp(str, "IPPROTO_IP", 10) == 0) { *valp = IPPROTO_IP; return 0; }
#endif
#ifdef IPPROTO_ND
if (memcmp(str, "IPPROTO_ND", 10) == 0) { *valp = IPPROTO_ND; return 0; }
#endif
#ifdef IPPROTO_TP
if (memcmp(str, "IPPROTO_TP", 10) == 0) { *valp = IPPROTO_TP; return 0; }
#endif
#ifdef IPPROTO_AH
if (memcmp(str, "IPPROTO_AH", 10) == 0) { *valp = IPPROTO_AH; return 0; }
#endif
return -1;
case 11:
#ifdef IPPROTO_GGP
if (memcmp(str, "IPPROTO_GGP", 11) == 0) { *valp = IPPROTO_GGP; return 0; }
#endif
#ifdef IPPROTO_TCP
if (memcmp(str, "IPPROTO_TCP", 11) == 0) { *valp = IPPROTO_TCP; return 0; }
#endif
#ifdef IPPROTO_EGP
if (memcmp(str, "IPPROTO_EGP", 11) == 0) { *valp = IPPROTO_EGP; return 0; }
#endif
#ifdef IPPROTO_PUP
if (memcmp(str, "IPPROTO_PUP", 11) == 0) { *valp = IPPROTO_PUP; return 0; }
#endif
#ifdef IPPROTO_UDP
if (memcmp(str, "IPPROTO_UDP", 11) == 0) { *valp = IPPROTO_UDP; return 0; }
#endif
#ifdef IPPROTO_IDP
if (memcmp(str, "IPPROTO_IDP", 11) == 0) { *valp = IPPROTO_IDP; return 0; }
#endif
#ifdef IPPROTO_XTP
if (memcmp(str, "IPPROTO_XTP", 11) == 0) { *valp = IPPROTO_XTP; return 0; }
#endif
#ifdef IPPROTO_EON
if (memcmp(str, "IPPROTO_EON", 11) == 0) { *valp = IPPROTO_EON; return 0; }
#endif
#ifdef IPPROTO_BIP
if (memcmp(str, "IPPROTO_BIP", 11) == 0) { *valp = IPPROTO_BIP; return 0; }
#endif
#ifdef IPPROTO_ESP
if (memcmp(str, "IPPROTO_ESP", 11) == 0) { *valp = IPPROTO_ESP; return 0; }
#endif
#ifdef IPPROTO_RAW
if (memcmp(str, "IPPROTO_RAW", 11) == 0) { *valp = IPPROTO_RAW; return 0; }
#endif
#ifdef IPPROTO_MAX
if (memcmp(str, "IPPROTO_MAX", 11) == 0) { *valp = IPPROTO_MAX; return 0; }
#endif
return -1;
case 12:
#ifdef IPPROTO_ICMP
if (memcmp(str, "IPPROTO_ICMP", 12) == 0) { *valp = IPPROTO_ICMP; return 0; }
#endif
#ifdef IPPROTO_IGMP
if (memcmp(str, "IPPROTO_IGMP", 12) == 0) { *valp = IPPROTO_IGMP; return 0; }
#endif
#ifdef IPPROTO_IPV6
if (memcmp(str, "IPPROTO_IPV6", 12) == 0) { *valp = IPPROTO_IPV6; return 0; }
#endif
#ifdef IPPROTO_NONE
if (memcmp(str, "IPPROTO_NONE", 12) == 0) { *valp = IPPROTO_NONE; return 0; }
#endif
return -1;
case 13:
#ifdef IPPROTO_HELLO
if (memcmp(str, "IPPROTO_HELLO", 13) == 0) { *valp = IPPROTO_HELLO; return 0; }
#endif
return -1;
case 14:
#ifdef IPPROTO_ICMPV6
if (memcmp(str, "IPPROTO_ICMPV6", 14) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
#endif
return -1;
case 15:
#ifdef IPPROTO_DSTOPTS
if (memcmp(str, "IPPROTO_DSTOPTS", 15) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
#endif
#ifdef IPPROTO_HOPOPTS
if (memcmp(str, "IPPROTO_HOPOPTS", 15) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
#endif
#ifdef IPPROTO_ROUTING
if (memcmp(str, "IPPROTO_ROUTING", 15) == 0) { *valp = IPPROTO_ROUTING; return 0; }
#endif
return -1;
case 16:
#ifdef IPPROTO_FRAGMENT
if (memcmp(str, "IPPROTO_FRAGMENT", 16) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_unknown_level_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 6:
#ifdef SOL_SOCKET
if (memcmp(str, "SOCKET", 6) == 0) { *valp = SOL_SOCKET; return 0; }
#endif
return -1;
case 10:
#ifdef SOL_SOCKET
if (memcmp(str, "SOL_SOCKET", 10) == 0) { *valp = SOL_SOCKET; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_ip_level_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 2:
#ifdef IPPROTO_IP
if (memcmp(str, "IP", 2) == 0) { *valp = IPPROTO_IP; return 0; }
#endif
#ifdef IPPROTO_ND
if (memcmp(str, "ND", 2) == 0) { *valp = IPPROTO_ND; return 0; }
#endif
#ifdef IPPROTO_TP
if (memcmp(str, "TP", 2) == 0) { *valp = IPPROTO_TP; return 0; }
#endif
#ifdef IPPROTO_AH
if (memcmp(str, "AH", 2) == 0) { *valp = IPPROTO_AH; return 0; }
#endif
return -1;
case 3:
#ifdef IPPROTO_GGP
if (memcmp(str, "GGP", 3) == 0) { *valp = IPPROTO_GGP; return 0; }
#endif
#ifdef IPPROTO_TCP
if (memcmp(str, "TCP", 3) == 0) { *valp = IPPROTO_TCP; return 0; }
#endif
#ifdef IPPROTO_EGP
if (memcmp(str, "EGP", 3) == 0) { *valp = IPPROTO_EGP; return 0; }
#endif
#ifdef IPPROTO_PUP
if (memcmp(str, "PUP", 3) == 0) { *valp = IPPROTO_PUP; return 0; }
#endif
#ifdef IPPROTO_UDP
if (memcmp(str, "UDP", 3) == 0) { *valp = IPPROTO_UDP; return 0; }
#endif
#ifdef IPPROTO_IDP
if (memcmp(str, "IDP", 3) == 0) { *valp = IPPROTO_IDP; return 0; }
#endif
#ifdef IPPROTO_XTP
if (memcmp(str, "XTP", 3) == 0) { *valp = IPPROTO_XTP; return 0; }
#endif
#ifdef IPPROTO_EON
if (memcmp(str, "EON", 3) == 0) { *valp = IPPROTO_EON; return 0; }
#endif
#ifdef IPPROTO_BIP
if (memcmp(str, "BIP", 3) == 0) { *valp = IPPROTO_BIP; return 0; }
#endif
#ifdef IPPROTO_ESP
if (memcmp(str, "ESP", 3) == 0) { *valp = IPPROTO_ESP; return 0; }
#endif
#ifdef IPPROTO_RAW
if (memcmp(str, "RAW", 3) == 0) { *valp = IPPROTO_RAW; return 0; }
#endif
#ifdef IPPROTO_MAX
if (memcmp(str, "MAX", 3) == 0) { *valp = IPPROTO_MAX; return 0; }
#endif
return -1;
case 4:
#ifdef IPPROTO_ICMP
if (memcmp(str, "ICMP", 4) == 0) { *valp = IPPROTO_ICMP; return 0; }
#endif
#ifdef IPPROTO_IGMP
if (memcmp(str, "IGMP", 4) == 0) { *valp = IPPROTO_IGMP; return 0; }
#endif
#ifdef IPPROTO_IPV6
if (memcmp(str, "IPV6", 4) == 0) { *valp = IPPROTO_IPV6; return 0; }
#endif
#ifdef IPPROTO_NONE
if (memcmp(str, "NONE", 4) == 0) { *valp = IPPROTO_NONE; return 0; }
#endif
return -1;
case 5:
#ifdef IPPROTO_HELLO
if (memcmp(str, "HELLO", 5) == 0) { *valp = IPPROTO_HELLO; return 0; }
#endif
return -1;
case 6:
#ifdef SOL_SOCKET
if (memcmp(str, "SOCKET", 6) == 0) { *valp = SOL_SOCKET; return 0; }
#endif
#ifdef IPPROTO_ICMPV6
if (memcmp(str, "ICMPV6", 6) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
#endif
return -1;
case 7:
#ifdef IPPROTO_DSTOPTS
if (memcmp(str, "DSTOPTS", 7) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
#endif
#ifdef IPPROTO_HOPOPTS
if (memcmp(str, "HOPOPTS", 7) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
#endif
#ifdef IPPROTO_ROUTING
if (memcmp(str, "ROUTING", 7) == 0) { *valp = IPPROTO_ROUTING; return 0; }
#endif
return -1;
case 8:
#ifdef IPPROTO_FRAGMENT
if (memcmp(str, "FRAGMENT", 8) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
#endif
return -1;
case 10:
#ifdef SOL_SOCKET
if (memcmp(str, "SOL_SOCKET", 10) == 0) { *valp = SOL_SOCKET; return 0; }
#endif
#ifdef IPPROTO_IP
if (memcmp(str, "IPPROTO_IP", 10) == 0) { *valp = IPPROTO_IP; return 0; }
#endif
#ifdef IPPROTO_ND
if (memcmp(str, "IPPROTO_ND", 10) == 0) { *valp = IPPROTO_ND; return 0; }
#endif
#ifdef IPPROTO_TP
if (memcmp(str, "IPPROTO_TP", 10) == 0) { *valp = IPPROTO_TP; return 0; }
#endif
#ifdef IPPROTO_AH
if (memcmp(str, "IPPROTO_AH", 10) == 0) { *valp = IPPROTO_AH; return 0; }
#endif
return -1;
case 11:
#ifdef IPPROTO_GGP
if (memcmp(str, "IPPROTO_GGP", 11) == 0) { *valp = IPPROTO_GGP; return 0; }
#endif
#ifdef IPPROTO_TCP
if (memcmp(str, "IPPROTO_TCP", 11) == 0) { *valp = IPPROTO_TCP; return 0; }
#endif
#ifdef IPPROTO_EGP
if (memcmp(str, "IPPROTO_EGP", 11) == 0) { *valp = IPPROTO_EGP; return 0; }
#endif
#ifdef IPPROTO_PUP
if (memcmp(str, "IPPROTO_PUP", 11) == 0) { *valp = IPPROTO_PUP; return 0; }
#endif
#ifdef IPPROTO_UDP
if (memcmp(str, "IPPROTO_UDP", 11) == 0) { *valp = IPPROTO_UDP; return 0; }
#endif
#ifdef IPPROTO_IDP
if (memcmp(str, "IPPROTO_IDP", 11) == 0) { *valp = IPPROTO_IDP; return 0; }
#endif
#ifdef IPPROTO_XTP
if (memcmp(str, "IPPROTO_XTP", 11) == 0) { *valp = IPPROTO_XTP; return 0; }
#endif
#ifdef IPPROTO_EON
if (memcmp(str, "IPPROTO_EON", 11) == 0) { *valp = IPPROTO_EON; return 0; }
#endif
#ifdef IPPROTO_BIP
if (memcmp(str, "IPPROTO_BIP", 11) == 0) { *valp = IPPROTO_BIP; return 0; }
#endif
#ifdef IPPROTO_ESP
if (memcmp(str, "IPPROTO_ESP", 11) == 0) { *valp = IPPROTO_ESP; return 0; }
#endif
#ifdef IPPROTO_RAW
if (memcmp(str, "IPPROTO_RAW", 11) == 0) { *valp = IPPROTO_RAW; return 0; }
#endif
#ifdef IPPROTO_MAX
if (memcmp(str, "IPPROTO_MAX", 11) == 0) { *valp = IPPROTO_MAX; return 0; }
#endif
return -1;
case 12:
#ifdef IPPROTO_ICMP
if (memcmp(str, "IPPROTO_ICMP", 12) == 0) { *valp = IPPROTO_ICMP; return 0; }
#endif
#ifdef IPPROTO_IGMP
if (memcmp(str, "IPPROTO_IGMP", 12) == 0) { *valp = IPPROTO_IGMP; return 0; }
#endif
#ifdef IPPROTO_IPV6
if (memcmp(str, "IPPROTO_IPV6", 12) == 0) { *valp = IPPROTO_IPV6; return 0; }
#endif
#ifdef IPPROTO_NONE
if (memcmp(str, "IPPROTO_NONE", 12) == 0) { *valp = IPPROTO_NONE; return 0; }
#endif
return -1;
case 13:
#ifdef IPPROTO_HELLO
if (memcmp(str, "IPPROTO_HELLO", 13) == 0) { *valp = IPPROTO_HELLO; return 0; }
#endif
return -1;
case 14:
#ifdef IPPROTO_ICMPV6
if (memcmp(str, "IPPROTO_ICMPV6", 14) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
#endif
return -1;
case 15:
#ifdef IPPROTO_DSTOPTS
if (memcmp(str, "IPPROTO_DSTOPTS", 15) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
#endif
#ifdef IPPROTO_HOPOPTS
if (memcmp(str, "IPPROTO_HOPOPTS", 15) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
#endif
#ifdef IPPROTO_ROUTING
if (memcmp(str, "IPPROTO_ROUTING", 15) == 0) { *valp = IPPROTO_ROUTING; return 0; }
#endif
return -1;
case 16:
#ifdef IPPROTO_FRAGMENT
if (memcmp(str, "IPPROTO_FRAGMENT", 16) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_so_optname_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 3:
#ifdef SO_NKE
if (memcmp(str, "NKE", 3) == 0) { *valp = SO_NKE; return 0; }
#endif
return -1;
case 4:
#ifdef SO_TYPE
if (memcmp(str, "TYPE", 4) == 0) { *valp = SO_TYPE; return 0; }
#endif
#ifdef SO_MARK
if (memcmp(str, "MARK", 4) == 0) { *valp = SO_MARK; return 0; }
#endif
return -1;
case 5:
#ifdef SO_DEBUG
if (memcmp(str, "DEBUG", 5) == 0) { *valp = SO_DEBUG; return 0; }
#endif
#ifdef SO_ERROR
if (memcmp(str, "ERROR", 5) == 0) { *valp = SO_ERROR; return 0; }
#endif
#ifdef SO_NREAD
if (memcmp(str, "NREAD", 5) == 0) { *valp = SO_NREAD; return 0; }
#endif
#ifdef SO_NOFCS
if (memcmp(str, "NOFCS", 5) == 0) { *valp = SO_NOFCS; return 0; }
#endif
return -1;
case 6:
#ifdef SO_NKE
if (memcmp(str, "SO_NKE", 6) == 0) { *valp = SO_NKE; return 0; }
#endif
#ifdef SO_SNDBUF
if (memcmp(str, "SNDBUF", 6) == 0) { *valp = SO_SNDBUF; return 0; }
#endif
#ifdef SO_RCVBUF
if (memcmp(str, "RCVBUF", 6) == 0) { *valp = SO_RCVBUF; return 0; }
#endif
#ifdef SO_LINGER
if (memcmp(str, "LINGER", 6) == 0) { *valp = SO_LINGER; return 0; }
#endif
#ifdef SO_DOMAIN
if (memcmp(str, "DOMAIN", 6) == 0) { *valp = SO_DOMAIN; return 0; }
#endif
return -1;
case 7:
#ifdef SO_TYPE
if (memcmp(str, "SO_TYPE", 7) == 0) { *valp = SO_TYPE; return 0; }
#endif
#ifdef SO_MARK
if (memcmp(str, "SO_MARK", 7) == 0) { *valp = SO_MARK; return 0; }
#endif
#ifdef SO_BINTIME
if (memcmp(str, "BINTIME", 7) == 0) { *valp = SO_BINTIME; return 0; }
#endif
#ifdef SO_PEERSEC
if (memcmp(str, "PEERSEC", 7) == 0) { *valp = SO_PEERSEC; return 0; }
#endif
#ifdef SO_PASSSEC
if (memcmp(str, "PASSSEC", 7) == 0) { *valp = SO_PASSSEC; return 0; }
#endif
return -1;
case 8:
#ifdef SO_DEBUG
if (memcmp(str, "SO_DEBUG", 8) == 0) { *valp = SO_DEBUG; return 0; }
#endif
#ifdef SO_ERROR
if (memcmp(str, "SO_ERROR", 8) == 0) { *valp = SO_ERROR; return 0; }
#endif
#ifdef SO_NREAD
if (memcmp(str, "SO_NREAD", 8) == 0) { *valp = SO_NREAD; return 0; }
#endif
#ifdef SO_NOFCS
if (memcmp(str, "SO_NOFCS", 8) == 0) { *valp = SO_NOFCS; return 0; }
#endif
#ifdef SO_NO_CHECK
if (memcmp(str, "NO_CHECK", 8) == 0) { *valp = SO_NO_CHECK; return 0; }
#endif
#ifdef SO_PRIORITY
if (memcmp(str, "PRIORITY", 8) == 0) { *valp = SO_PRIORITY; return 0; }
#endif
#ifdef SO_PASSCRED
if (memcmp(str, "PASSCRED", 8) == 0) { *valp = SO_PASSCRED; return 0; }
#endif
#ifdef SO_PEERCRED
if (memcmp(str, "PEERCRED", 8) == 0) { *valp = SO_PEERCRED; return 0; }
#endif
#ifdef SO_RCVLOWAT
if (memcmp(str, "RCVLOWAT", 8) == 0) { *valp = SO_RCVLOWAT; return 0; }
#endif
#ifdef SO_SNDLOWAT
if (memcmp(str, "SNDLOWAT", 8) == 0) { *valp = SO_SNDLOWAT; return 0; }
#endif
#ifdef SO_RCVTIMEO
if (memcmp(str, "RCVTIMEO", 8) == 0) { *valp = SO_RCVTIMEO; return 0; }
#endif
#ifdef SO_SNDTIMEO
if (memcmp(str, "SNDTIMEO", 8) == 0) { *valp = SO_SNDTIMEO; return 0; }
#endif
#ifdef SO_WANTMORE
if (memcmp(str, "WANTMORE", 8) == 0) { *valp = SO_WANTMORE; return 0; }
#endif
#ifdef SO_PEERNAME
if (memcmp(str, "PEERNAME", 8) == 0) { *valp = SO_PEERNAME; return 0; }
#endif
#ifdef SO_ALLZONES
if (memcmp(str, "ALLZONES", 8) == 0) { *valp = SO_ALLZONES; return 0; }
#endif
#ifdef SO_PROTOCOL
if (memcmp(str, "PROTOCOL", 8) == 0) { *valp = SO_PROTOCOL; return 0; }
#endif
#ifdef SO_RXQ_OVFL
if (memcmp(str, "RXQ_OVFL", 8) == 0) { *valp = SO_RXQ_OVFL; return 0; }
#endif
#ifdef SO_PEEK_OFF
if (memcmp(str, "PEEK_OFF", 8) == 0) { *valp = SO_PEEK_OFF; return 0; }
#endif
return -1;
case 9:
#ifdef SO_SNDBUF
if (memcmp(str, "SO_SNDBUF", 9) == 0) { *valp = SO_SNDBUF; return 0; }
#endif
#ifdef SO_RCVBUF
if (memcmp(str, "SO_RCVBUF", 9) == 0) { *valp = SO_RCVBUF; return 0; }
#endif
#ifdef SO_LINGER
if (memcmp(str, "SO_LINGER", 9) == 0) { *valp = SO_LINGER; return 0; }
#endif
#ifdef SO_DOMAIN
if (memcmp(str, "SO_DOMAIN", 9) == 0) { *valp = SO_DOMAIN; return 0; }
#endif
#ifdef SO_REUSEADDR
if (memcmp(str, "REUSEADDR", 9) == 0) { *valp = SO_REUSEADDR; return 0; }
#endif
#ifdef SO_REUSEPORT
if (memcmp(str, "REUSEPORT", 9) == 0) { *valp = SO_REUSEPORT; return 0; }
#endif
#ifdef SO_DONTROUTE
if (memcmp(str, "DONTROUTE", 9) == 0) { *valp = SO_DONTROUTE; return 0; }
#endif
#ifdef SO_BROADCAST
if (memcmp(str, "BROADCAST", 9) == 0) { *valp = SO_BROADCAST; return 0; }
#endif
#ifdef SO_KEEPALIVE
if (memcmp(str, "KEEPALIVE", 9) == 0) { *valp = SO_KEEPALIVE; return 0; }
#endif
#ifdef SO_OOBINLINE
if (memcmp(str, "OOBINLINE", 9) == 0) { *valp = SO_OOBINLINE; return 0; }
#endif
#ifdef SO_DONTTRUNC
if (memcmp(str, "DONTTRUNC", 9) == 0) { *valp = SO_DONTTRUNC; return 0; }
#endif
#ifdef SO_NOSIGPIPE
if (memcmp(str, "NOSIGPIPE", 9) == 0) { *valp = SO_NOSIGPIPE; return 0; }
#endif
#ifdef SO_TIMESTAMP
if (memcmp(str, "TIMESTAMP", 9) == 0) { *valp = SO_TIMESTAMP; return 0; }
#endif
#ifdef SO_RECVUCRED
if (memcmp(str, "RECVUCRED", 9) == 0) { *valp = SO_RECVUCRED; return 0; }
#endif
#ifdef SO_BUSY_POLL
if (memcmp(str, "BUSY_POLL", 9) == 0) { *valp = SO_BUSY_POLL; return 0; }
#endif
return -1;
case 10:
#ifdef SO_BINTIME
if (memcmp(str, "SO_BINTIME", 10) == 0) { *valp = SO_BINTIME; return 0; }
#endif
#ifdef SO_PEERSEC
if (memcmp(str, "SO_PEERSEC", 10) == 0) { *valp = SO_PEERSEC; return 0; }
#endif
#ifdef SO_PASSSEC
if (memcmp(str, "SO_PASSSEC", 10) == 0) { *valp = SO_PASSSEC; return 0; }
#endif
#ifdef SO_ACCEPTCONN
if (memcmp(str, "ACCEPTCONN", 10) == 0) { *valp = SO_ACCEPTCONN; return 0; }
#endif
#ifdef SO_GET_FILTER
if (memcmp(str, "GET_FILTER", 10) == 0) { *valp = SO_GET_FILTER; return 0; }
#endif
#ifdef SO_MAC_EXEMPT
if (memcmp(str, "MAC_EXEMPT", 10) == 0) { *valp = SO_MAC_EXEMPT; return 0; }
#endif
return -1;
case 11:
#ifdef SO_NO_CHECK
if (memcmp(str, "SO_NO_CHECK", 11) == 0) { *valp = SO_NO_CHECK; return 0; }
#endif
#ifdef SO_PRIORITY
if (memcmp(str, "SO_PRIORITY", 11) == 0) { *valp = SO_PRIORITY; return 0; }
#endif
#ifdef SO_PASSCRED
if (memcmp(str, "SO_PASSCRED", 11) == 0) { *valp = SO_PASSCRED; return 0; }
#endif
#ifdef SO_PEERCRED
if (memcmp(str, "SO_PEERCRED", 11) == 0) { *valp = SO_PEERCRED; return 0; }
#endif
#ifdef SO_RCVLOWAT
if (memcmp(str, "SO_RCVLOWAT", 11) == 0) { *valp = SO_RCVLOWAT; return 0; }
#endif
#ifdef SO_SNDLOWAT
if (memcmp(str, "SO_SNDLOWAT", 11) == 0) { *valp = SO_SNDLOWAT; return 0; }
#endif
#ifdef SO_RCVTIMEO
if (memcmp(str, "SO_RCVTIMEO", 11) == 0) { *valp = SO_RCVTIMEO; return 0; }
#endif
#ifdef SO_SNDTIMEO
if (memcmp(str, "SO_SNDTIMEO", 11) == 0) { *valp = SO_SNDTIMEO; return 0; }
#endif
#ifdef SO_WANTMORE
if (memcmp(str, "SO_WANTMORE", 11) == 0) { *valp = SO_WANTMORE; return 0; }
#endif
#ifdef SO_PEERNAME
if (memcmp(str, "SO_PEERNAME", 11) == 0) { *valp = SO_PEERNAME; return 0; }
#endif
#ifdef SO_ALLZONES
if (memcmp(str, "SO_ALLZONES", 11) == 0) { *valp = SO_ALLZONES; return 0; }
#endif
#ifdef SO_PROTOCOL
if (memcmp(str, "SO_PROTOCOL", 11) == 0) { *valp = SO_PROTOCOL; return 0; }
#endif
#ifdef SO_RXQ_OVFL
if (memcmp(str, "SO_RXQ_OVFL", 11) == 0) { *valp = SO_RXQ_OVFL; return 0; }
#endif
#ifdef SO_PEEK_OFF
if (memcmp(str, "SO_PEEK_OFF", 11) == 0) { *valp = SO_PEEK_OFF; return 0; }
#endif
#ifdef SO_SNDBUFFORCE
if (memcmp(str, "SNDBUFFORCE", 11) == 0) { *valp = SO_SNDBUFFORCE; return 0; }
#endif
#ifdef SO_RCVBUFFORCE
if (memcmp(str, "RCVBUFFORCE", 11) == 0) { *valp = SO_RCVBUFFORCE; return 0; }
#endif
#ifdef SO_USELOOPBACK
if (memcmp(str, "USELOOPBACK", 11) == 0) { *valp = SO_USELOOPBACK; return 0; }
#endif
#ifdef SO_WANTOOBFLAG
if (memcmp(str, "WANTOOBFLAG", 11) == 0) { *valp = SO_WANTOOBFLAG; return 0; }
#endif
#ifdef SO_TIMESTAMPNS
if (memcmp(str, "TIMESTAMPNS", 11) == 0) { *valp = SO_TIMESTAMPNS; return 0; }
#endif
#ifdef SO_WIFI_STATUS
if (memcmp(str, "WIFI_STATUS", 11) == 0) { *valp = SO_WIFI_STATUS; return 0; }
#endif
#ifdef SO_LOCK_FILTER
if (memcmp(str, "LOCK_FILTER", 11) == 0) { *valp = SO_LOCK_FILTER; return 0; }
#endif
return -1;
case 12:
#ifdef SO_REUSEADDR
if (memcmp(str, "SO_REUSEADDR", 12) == 0) { *valp = SO_REUSEADDR; return 0; }
#endif
#ifdef SO_REUSEPORT
if (memcmp(str, "SO_REUSEPORT", 12) == 0) { *valp = SO_REUSEPORT; return 0; }
#endif
#ifdef SO_DONTROUTE
if (memcmp(str, "SO_DONTROUTE", 12) == 0) { *valp = SO_DONTROUTE; return 0; }
#endif
#ifdef SO_BROADCAST
if (memcmp(str, "SO_BROADCAST", 12) == 0) { *valp = SO_BROADCAST; return 0; }
#endif
#ifdef SO_KEEPALIVE
if (memcmp(str, "SO_KEEPALIVE", 12) == 0) { *valp = SO_KEEPALIVE; return 0; }
#endif
#ifdef SO_OOBINLINE
if (memcmp(str, "SO_OOBINLINE", 12) == 0) { *valp = SO_OOBINLINE; return 0; }
#endif
#ifdef SO_DONTTRUNC
if (memcmp(str, "SO_DONTTRUNC", 12) == 0) { *valp = SO_DONTTRUNC; return 0; }
#endif
#ifdef SO_NOSIGPIPE
if (memcmp(str, "SO_NOSIGPIPE", 12) == 0) { *valp = SO_NOSIGPIPE; return 0; }
#endif
#ifdef SO_TIMESTAMP
if (memcmp(str, "SO_TIMESTAMP", 12) == 0) { *valp = SO_TIMESTAMP; return 0; }
#endif
#ifdef SO_RECVUCRED
if (memcmp(str, "SO_RECVUCRED", 12) == 0) { *valp = SO_RECVUCRED; return 0; }
#endif
#ifdef SO_BUSY_POLL
if (memcmp(str, "SO_BUSY_POLL", 12) == 0) { *valp = SO_BUSY_POLL; return 0; }
#endif
#ifdef SO_ACCEPTFILTER
if (memcmp(str, "ACCEPTFILTER", 12) == 0) { *valp = SO_ACCEPTFILTER; return 0; }
#endif
#ifdef SO_BINDTODEVICE
if (memcmp(str, "BINDTODEVICE", 12) == 0) { *valp = SO_BINDTODEVICE; return 0; }
#endif
#ifdef SO_TIMESTAMPING
if (memcmp(str, "TIMESTAMPING", 12) == 0) { *valp = SO_TIMESTAMPING; return 0; }
#endif
return -1;
case 13:
#ifdef SO_ACCEPTCONN
if (memcmp(str, "SO_ACCEPTCONN", 13) == 0) { *valp = SO_ACCEPTCONN; return 0; }
#endif
#ifdef SO_GET_FILTER
if (memcmp(str, "SO_GET_FILTER", 13) == 0) { *valp = SO_GET_FILTER; return 0; }
#endif
#ifdef SO_MAC_EXEMPT
if (memcmp(str, "SO_MAC_EXEMPT", 13) == 0) { *valp = SO_MAC_EXEMPT; return 0; }
#endif
#ifdef SO_ATTACH_FILTER
if (memcmp(str, "ATTACH_FILTER", 13) == 0) { *valp = SO_ATTACH_FILTER; return 0; }
#endif
#ifdef SO_DETACH_FILTER
if (memcmp(str, "DETACH_FILTER", 13) == 0) { *valp = SO_DETACH_FILTER; return 0; }
#endif
return -1;
case 14:
#ifdef SO_SNDBUFFORCE
if (memcmp(str, "SO_SNDBUFFORCE", 14) == 0) { *valp = SO_SNDBUFFORCE; return 0; }
#endif
#ifdef SO_RCVBUFFORCE
if (memcmp(str, "SO_RCVBUFFORCE", 14) == 0) { *valp = SO_RCVBUFFORCE; return 0; }
#endif
#ifdef SO_USELOOPBACK
if (memcmp(str, "SO_USELOOPBACK", 14) == 0) { *valp = SO_USELOOPBACK; return 0; }
#endif
#ifdef SO_WANTOOBFLAG
if (memcmp(str, "SO_WANTOOBFLAG", 14) == 0) { *valp = SO_WANTOOBFLAG; return 0; }
#endif
#ifdef SO_TIMESTAMPNS
if (memcmp(str, "SO_TIMESTAMPNS", 14) == 0) { *valp = SO_TIMESTAMPNS; return 0; }
#endif
#ifdef SO_WIFI_STATUS
if (memcmp(str, "SO_WIFI_STATUS", 14) == 0) { *valp = SO_WIFI_STATUS; return 0; }
#endif
#ifdef SO_LOCK_FILTER
if (memcmp(str, "SO_LOCK_FILTER", 14) == 0) { *valp = SO_LOCK_FILTER; return 0; }
#endif
#ifdef SO_BPF_EXTENSIONS
if (memcmp(str, "BPF_EXTENSIONS", 14) == 0) { *valp = SO_BPF_EXTENSIONS; return 0; }
#endif
return -1;
case 15:
#ifdef SO_ACCEPTFILTER
if (memcmp(str, "SO_ACCEPTFILTER", 15) == 0) { *valp = SO_ACCEPTFILTER; return 0; }
#endif
#ifdef SO_BINDTODEVICE
if (memcmp(str, "SO_BINDTODEVICE", 15) == 0) { *valp = SO_BINDTODEVICE; return 0; }
#endif
#ifdef SO_TIMESTAMPING
if (memcmp(str, "SO_TIMESTAMPING", 15) == 0) { *valp = SO_TIMESTAMPING; return 0; }
#endif
#ifdef SO_MAX_PACING_RATE
if (memcmp(str, "MAX_PACING_RATE", 15) == 0) { *valp = SO_MAX_PACING_RATE; return 0; }
#endif
return -1;
case 16:
#ifdef SO_ATTACH_FILTER
if (memcmp(str, "SO_ATTACH_FILTER", 16) == 0) { *valp = SO_ATTACH_FILTER; return 0; }
#endif
#ifdef SO_DETACH_FILTER
if (memcmp(str, "SO_DETACH_FILTER", 16) == 0) { *valp = SO_DETACH_FILTER; return 0; }
#endif
#ifdef SO_SELECT_ERR_QUEUE
if (memcmp(str, "SELECT_ERR_QUEUE", 16) == 0) { *valp = SO_SELECT_ERR_QUEUE; return 0; }
#endif
return -1;
case 17:
#ifdef SO_BPF_EXTENSIONS
if (memcmp(str, "SO_BPF_EXTENSIONS", 17) == 0) { *valp = SO_BPF_EXTENSIONS; return 0; }
#endif
return -1;
case 18:
#ifdef SO_MAX_PACING_RATE
if (memcmp(str, "SO_MAX_PACING_RATE", 18) == 0) { *valp = SO_MAX_PACING_RATE; return 0; }
#endif
return -1;
case 19:
#ifdef SO_SELECT_ERR_QUEUE
if (memcmp(str, "SO_SELECT_ERR_QUEUE", 19) == 0) { *valp = SO_SELECT_ERR_QUEUE; return 0; }
#endif
return -1;
case 23:
#ifdef SO_SECURITY_AUTHENTICATION
if (memcmp(str, "SECURITY_AUTHENTICATION", 23) == 0) { *valp = SO_SECURITY_AUTHENTICATION; return 0; }
#endif
return -1;
case 26:
#ifdef SO_SECURITY_AUTHENTICATION
if (memcmp(str, "SO_SECURITY_AUTHENTICATION", 26) == 0) { *valp = SO_SECURITY_AUTHENTICATION; return 0; }
#endif
return -1;
case 27:
#ifdef SO_SECURITY_ENCRYPTION_NETWORK
if (memcmp(str, "SECURITY_ENCRYPTION_NETWORK", 27) == 0) { *valp = SO_SECURITY_ENCRYPTION_NETWORK; return 0; }
#endif
return -1;
case 29:
#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
if (memcmp(str, "SECURITY_ENCRYPTION_TRANSPORT", 29) == 0) { *valp = SO_SECURITY_ENCRYPTION_TRANSPORT; return 0; }
#endif
return -1;
case 30:
#ifdef SO_SECURITY_ENCRYPTION_NETWORK
if (memcmp(str, "SO_SECURITY_ENCRYPTION_NETWORK", 30) == 0) { *valp = SO_SECURITY_ENCRYPTION_NETWORK; return 0; }
#endif
return -1;
case 32:
#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
if (memcmp(str, "SO_SECURITY_ENCRYPTION_TRANSPORT", 32) == 0) { *valp = SO_SECURITY_ENCRYPTION_TRANSPORT; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_ip_optname_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 3:
#ifdef IP_TOS
if (memcmp(str, "TOS", 3) == 0) { *valp = IP_TOS; return 0; }
#endif
#ifdef IP_TTL
if (memcmp(str, "TTL", 3) == 0) { *valp = IP_TTL; return 0; }
#endif
#ifdef IP_MTU
if (memcmp(str, "MTU", 3) == 0) { *valp = IP_MTU; return 0; }
#endif
return -1;
case 6:
#ifdef IP_TOS
if (memcmp(str, "IP_TOS", 6) == 0) { *valp = IP_TOS; return 0; }
#endif
#ifdef IP_TTL
if (memcmp(str, "IP_TTL", 6) == 0) { *valp = IP_TTL; return 0; }
#endif
#ifdef IP_MTU
if (memcmp(str, "IP_MTU", 6) == 0) { *valp = IP_MTU; return 0; }
#endif
#ifdef IP_MINTTL
if (memcmp(str, "MINTTL", 6) == 0) { *valp = IP_MINTTL; return 0; }
#endif
#ifdef IP_RECVIF
if (memcmp(str, "RECVIF", 6) == 0) { *valp = IP_RECVIF; return 0; }
#endif
return -1;
case 7:
#ifdef IP_OPTIONS
if (memcmp(str, "OPTIONS", 7) == 0) { *valp = IP_OPTIONS; return 0; }
#endif
#ifdef IP_HDRINCL
if (memcmp(str, "HDRINCL", 7) == 0) { *valp = IP_HDRINCL; return 0; }
#endif
#ifdef IP_RETOPTS
if (memcmp(str, "RETOPTS", 7) == 0) { *valp = IP_RETOPTS; return 0; }
#endif
#ifdef IP_RECVTTL
if (memcmp(str, "RECVTTL", 7) == 0) { *valp = IP_RECVTTL; return 0; }
#endif
#ifdef IP_PKTINFO
if (memcmp(str, "PKTINFO", 7) == 0) { *valp = IP_PKTINFO; return 0; }
#endif
#ifdef IP_RECVERR
if (memcmp(str, "RECVERR", 7) == 0) { *valp = IP_RECVERR; return 0; }
#endif
#ifdef IP_RECVTOS
if (memcmp(str, "RECVTOS", 7) == 0) { *valp = IP_RECVTOS; return 0; }
#endif
#ifdef IP_PASSSEC
if (memcmp(str, "PASSSEC", 7) == 0) { *valp = IP_PASSSEC; return 0; }
#endif
return -1;
case 8:
#ifdef IP_RECVOPTS
if (memcmp(str, "RECVOPTS", 8) == 0) { *valp = IP_RECVOPTS; return 0; }
#endif
#ifdef IP_DONTFRAG
if (memcmp(str, "DONTFRAG", 8) == 0) { *valp = IP_DONTFRAG; return 0; }
#endif
#ifdef IP_RECVSLLA
if (memcmp(str, "RECVSLLA", 8) == 0) { *valp = IP_RECVSLLA; return 0; }
#endif
#ifdef IP_FREEBIND
if (memcmp(str, "FREEBIND", 8) == 0) { *valp = IP_FREEBIND; return 0; }
#endif
#ifdef IP_MSFILTER
if (memcmp(str, "MSFILTER", 8) == 0) { *valp = IP_MSFILTER; return 0; }
#endif
return -1;
case 9:
#ifdef IP_MINTTL
if (memcmp(str, "IP_MINTTL", 9) == 0) { *valp = IP_MINTTL; return 0; }
#endif
#ifdef IP_RECVIF
if (memcmp(str, "IP_RECVIF", 9) == 0) { *valp = IP_RECVIF; return 0; }
#endif
#ifdef IP_ONESBCAST
if (memcmp(str, "ONESBCAST", 9) == 0) { *valp = IP_ONESBCAST; return 0; }
#endif
#ifdef IP_PORTRANGE
if (memcmp(str, "PORTRANGE", 9) == 0) { *valp = IP_PORTRANGE; return 0; }
#endif
return -1;
case 10:
#ifdef IP_OPTIONS
if (memcmp(str, "IP_OPTIONS", 10) == 0) { *valp = IP_OPTIONS; return 0; }
#endif
#ifdef IP_HDRINCL
if (memcmp(str, "IP_HDRINCL", 10) == 0) { *valp = IP_HDRINCL; return 0; }
#endif
#ifdef IP_RETOPTS
if (memcmp(str, "IP_RETOPTS", 10) == 0) { *valp = IP_RETOPTS; return 0; }
#endif
#ifdef IP_RECVTTL
if (memcmp(str, "IP_RECVTTL", 10) == 0) { *valp = IP_RECVTTL; return 0; }
#endif
#ifdef IP_PKTINFO
if (memcmp(str, "IP_PKTINFO", 10) == 0) { *valp = IP_PKTINFO; return 0; }
#endif
#ifdef IP_RECVERR
if (memcmp(str, "IP_RECVERR", 10) == 0) { *valp = IP_RECVERR; return 0; }
#endif
#ifdef IP_RECVTOS
if (memcmp(str, "IP_RECVTOS", 10) == 0) { *valp = IP_RECVTOS; return 0; }
#endif
#ifdef IP_PASSSEC
if (memcmp(str, "IP_PASSSEC", 10) == 0) { *valp = IP_PASSSEC; return 0; }
#endif
#ifdef IP_PKTOPTIONS
if (memcmp(str, "PKTOPTIONS", 10) == 0) { *valp = IP_PKTOPTIONS; return 0; }
#endif
return -1;
case 11:
#ifdef IP_RECVOPTS
if (memcmp(str, "IP_RECVOPTS", 11) == 0) { *valp = IP_RECVOPTS; return 0; }
#endif
#ifdef IP_DONTFRAG
if (memcmp(str, "IP_DONTFRAG", 11) == 0) { *valp = IP_DONTFRAG; return 0; }
#endif
#ifdef IP_RECVSLLA
if (memcmp(str, "IP_RECVSLLA", 11) == 0) { *valp = IP_RECVSLLA; return 0; }
#endif
#ifdef IP_FREEBIND
if (memcmp(str, "IP_FREEBIND", 11) == 0) { *valp = IP_FREEBIND; return 0; }
#endif
#ifdef IP_MSFILTER
if (memcmp(str, "IP_MSFILTER", 11) == 0) { *valp = IP_MSFILTER; return 0; }
#endif
#ifdef IP_RECVRETOPTS
if (memcmp(str, "RECVRETOPTS", 11) == 0) { *valp = IP_RECVRETOPTS; return 0; }
#endif
#ifdef IP_RECVDSTADDR
if (memcmp(str, "RECVDSTADDR", 11) == 0) { *valp = IP_RECVDSTADDR; return 0; }
#endif
#ifdef IP_SENDSRCADDR
if (memcmp(str, "SENDSRCADDR", 11) == 0) { *valp = IP_SENDSRCADDR; return 0; }
#endif
#ifdef IP_XFRM_POLICY
if (memcmp(str, "XFRM_POLICY", 11) == 0) { *valp = IP_XFRM_POLICY; return 0; }
#endif
#ifdef IP_TRANSPARENT
if (memcmp(str, "TRANSPARENT", 11) == 0) { *valp = IP_TRANSPARENT; return 0; }
#endif
#ifdef IP_PMTUDISC_DO
if (memcmp(str, "PMTUDISC_DO", 11) == 0) { *valp = IP_PMTUDISC_DO; return 0; }
#endif
return -1;
case 12:
#ifdef IP_ONESBCAST
if (memcmp(str, "IP_ONESBCAST", 12) == 0) { *valp = IP_ONESBCAST; return 0; }
#endif
#ifdef IP_PORTRANGE
if (memcmp(str, "IP_PORTRANGE", 12) == 0) { *valp = IP_PORTRANGE; return 0; }
#endif
#ifdef IP_MULTICAST_IF
if (memcmp(str, "MULTICAST_IF", 12) == 0) { *valp = IP_MULTICAST_IF; return 0; }
#endif
#ifdef IP_ROUTER_ALERT
if (memcmp(str, "ROUTER_ALERT", 12) == 0) { *valp = IP_ROUTER_ALERT; return 0; }
#endif
#ifdef IP_MTU_DISCOVER
if (memcmp(str, "MTU_DISCOVER", 12) == 0) { *valp = IP_MTU_DISCOVER; return 0; }
#endif
#ifdef IP_IPSEC_POLICY
if (memcmp(str, "IPSEC_POLICY", 12) == 0) { *valp = IP_IPSEC_POLICY; return 0; }
#endif
#ifdef IP_BLOCK_SOURCE
if (memcmp(str, "BLOCK_SOURCE", 12) == 0) { *valp = IP_BLOCK_SOURCE; return 0; }
#endif
return -1;
case 13:
#ifdef IP_PKTOPTIONS
if (memcmp(str, "IP_PKTOPTIONS", 13) == 0) { *valp = IP_PKTOPTIONS; return 0; }
#endif
#ifdef IP_MULTICAST_TTL
if (memcmp(str, "MULTICAST_TTL", 13) == 0) { *valp = IP_MULTICAST_TTL; return 0; }
#endif
#ifdef IP_PMTUDISC_DONT
if (memcmp(str, "PMTUDISC_DONT", 13) == 0) { *valp = IP_PMTUDISC_DONT; return 0; }
#endif
#ifdef IP_PMTUDISC_WANT
if (memcmp(str, "PMTUDISC_WANT", 13) == 0) { *valp = IP_PMTUDISC_WANT; return 0; }
#endif
return -1;
case 14:
#ifdef IP_RECVRETOPTS
if (memcmp(str, "IP_RECVRETOPTS", 14) == 0) { *valp = IP_RECVRETOPTS; return 0; }
#endif
#ifdef IP_RECVDSTADDR
if (memcmp(str, "IP_RECVDSTADDR", 14) == 0) { *valp = IP_RECVDSTADDR; return 0; }
#endif
#ifdef IP_SENDSRCADDR
if (memcmp(str, "IP_SENDSRCADDR", 14) == 0) { *valp = IP_SENDSRCADDR; return 0; }
#endif
#ifdef IP_XFRM_POLICY
if (memcmp(str, "IP_XFRM_POLICY", 14) == 0) { *valp = IP_XFRM_POLICY; return 0; }
#endif
#ifdef IP_TRANSPARENT
if (memcmp(str, "IP_TRANSPARENT", 14) == 0) { *valp = IP_TRANSPARENT; return 0; }
#endif
#ifdef IP_PMTUDISC_DO
if (memcmp(str, "IP_PMTUDISC_DO", 14) == 0) { *valp = IP_PMTUDISC_DO; return 0; }
#endif
#ifdef IP_MULTICAST_LOOP
if (memcmp(str, "MULTICAST_LOOP", 14) == 0) { *valp = IP_MULTICAST_LOOP; return 0; }
#endif
#ifdef IP_ADD_MEMBERSHIP
if (memcmp(str, "ADD_MEMBERSHIP", 14) == 0) { *valp = IP_ADD_MEMBERSHIP; return 0; }
#endif
#ifdef IP_UNBLOCK_SOURCE
if (memcmp(str, "UNBLOCK_SOURCE", 14) == 0) { *valp = IP_UNBLOCK_SOURCE; return 0; }
#endif
return -1;
case 15:
#ifdef IP_MULTICAST_IF
if (memcmp(str, "IP_MULTICAST_IF", 15) == 0) { *valp = IP_MULTICAST_IF; return 0; }
#endif
#ifdef IP_ROUTER_ALERT
if (memcmp(str, "IP_ROUTER_ALERT", 15) == 0) { *valp = IP_ROUTER_ALERT; return 0; }
#endif
#ifdef IP_MTU_DISCOVER
if (memcmp(str, "IP_MTU_DISCOVER", 15) == 0) { *valp = IP_MTU_DISCOVER; return 0; }
#endif
#ifdef IP_IPSEC_POLICY
if (memcmp(str, "IP_IPSEC_POLICY", 15) == 0) { *valp = IP_IPSEC_POLICY; return 0; }
#endif
#ifdef IP_BLOCK_SOURCE
if (memcmp(str, "IP_BLOCK_SOURCE", 15) == 0) { *valp = IP_BLOCK_SOURCE; return 0; }
#endif
#ifdef IP_DROP_MEMBERSHIP
if (memcmp(str, "DROP_MEMBERSHIP", 15) == 0) { *valp = IP_DROP_MEMBERSHIP; return 0; }
#endif
#ifdef IP_MAX_MEMBERSHIPS
if (memcmp(str, "MAX_MEMBERSHIPS", 15) == 0) { *valp = IP_MAX_MEMBERSHIPS; return 0; }
#endif
return -1;
case 16:
#ifdef IP_MULTICAST_TTL
if (memcmp(str, "IP_MULTICAST_TTL", 16) == 0) { *valp = IP_MULTICAST_TTL; return 0; }
#endif
#ifdef IP_PMTUDISC_DONT
if (memcmp(str, "IP_PMTUDISC_DONT", 16) == 0) { *valp = IP_PMTUDISC_DONT; return 0; }
#endif
#ifdef IP_PMTUDISC_WANT
if (memcmp(str, "IP_PMTUDISC_WANT", 16) == 0) { *valp = IP_PMTUDISC_WANT; return 0; }
#endif
return -1;
case 17:
#ifdef IP_MULTICAST_LOOP
if (memcmp(str, "IP_MULTICAST_LOOP", 17) == 0) { *valp = IP_MULTICAST_LOOP; return 0; }
#endif
#ifdef IP_ADD_MEMBERSHIP
if (memcmp(str, "IP_ADD_MEMBERSHIP", 17) == 0) { *valp = IP_ADD_MEMBERSHIP; return 0; }
#endif
#ifdef IP_UNBLOCK_SOURCE
if (memcmp(str, "IP_UNBLOCK_SOURCE", 17) == 0) { *valp = IP_UNBLOCK_SOURCE; return 0; }
#endif
return -1;
case 18:
#ifdef IP_DROP_MEMBERSHIP
if (memcmp(str, "IP_DROP_MEMBERSHIP", 18) == 0) { *valp = IP_DROP_MEMBERSHIP; return 0; }
#endif
#ifdef IP_MAX_MEMBERSHIPS
if (memcmp(str, "IP_MAX_MEMBERSHIPS", 18) == 0) { *valp = IP_MAX_MEMBERSHIPS; return 0; }
#endif
return -1;
case 21:
#ifdef IP_DEFAULT_MULTICAST_TTL
if (memcmp(str, "DEFAULT_MULTICAST_TTL", 21) == 0) { *valp = IP_DEFAULT_MULTICAST_TTL; return 0; }
#endif
#ifdef IP_ADD_SOURCE_MEMBERSHIP
if (memcmp(str, "ADD_SOURCE_MEMBERSHIP", 21) == 0) { *valp = IP_ADD_SOURCE_MEMBERSHIP; return 0; }
#endif
return -1;
case 22:
#ifdef IP_DEFAULT_MULTICAST_LOOP
if (memcmp(str, "DEFAULT_MULTICAST_LOOP", 22) == 0) { *valp = IP_DEFAULT_MULTICAST_LOOP; return 0; }
#endif
#ifdef IP_DROP_SOURCE_MEMBERSHIP
if (memcmp(str, "DROP_SOURCE_MEMBERSHIP", 22) == 0) { *valp = IP_DROP_SOURCE_MEMBERSHIP; return 0; }
#endif
return -1;
case 24:
#ifdef IP_DEFAULT_MULTICAST_TTL
if (memcmp(str, "IP_DEFAULT_MULTICAST_TTL", 24) == 0) { *valp = IP_DEFAULT_MULTICAST_TTL; return 0; }
#endif
#ifdef IP_ADD_SOURCE_MEMBERSHIP
if (memcmp(str, "IP_ADD_SOURCE_MEMBERSHIP", 24) == 0) { *valp = IP_ADD_SOURCE_MEMBERSHIP; return 0; }
#endif
return -1;
case 25:
#ifdef IP_DEFAULT_MULTICAST_LOOP
if (memcmp(str, "IP_DEFAULT_MULTICAST_LOOP", 25) == 0) { *valp = IP_DEFAULT_MULTICAST_LOOP; return 0; }
#endif
#ifdef IP_DROP_SOURCE_MEMBERSHIP
if (memcmp(str, "IP_DROP_SOURCE_MEMBERSHIP", 25) == 0) { *valp = IP_DROP_SOURCE_MEMBERSHIP; return 0; }
#endif
return -1;
default:
return -1;
}
}
#ifdef IPPROTO_IPV6
int
rsock_ipv6_optname_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 5:
#ifdef IPV6_RTHDR
if (memcmp(str, "RTHDR", 5) == 0) { *valp = IPV6_RTHDR; return 0; }
#endif
return -1;
case 6:
#ifdef IPV6_V6ONLY
if (memcmp(str, "V6ONLY", 6) == 0) { *valp = IPV6_V6ONLY; return 0; }
#endif
#ifdef IPV6_TCLASS
if (memcmp(str, "TCLASS", 6) == 0) { *valp = IPV6_TCLASS; return 0; }
#endif
return -1;
case 7:
#ifdef IPV6_DSTOPTS
if (memcmp(str, "DSTOPTS", 7) == 0) { *valp = IPV6_DSTOPTS; return 0; }
#endif
#ifdef IPV6_HOPOPTS
if (memcmp(str, "HOPOPTS", 7) == 0) { *valp = IPV6_HOPOPTS; return 0; }
#endif
#ifdef IPV6_NEXTHOP
if (memcmp(str, "NEXTHOP", 7) == 0) { *valp = IPV6_NEXTHOP; return 0; }
#endif
#ifdef IPV6_PATHMTU
if (memcmp(str, "PATHMTU", 7) == 0) { *valp = IPV6_PATHMTU; return 0; }
#endif
#ifdef IPV6_PKTINFO
if (memcmp(str, "PKTINFO", 7) == 0) { *valp = IPV6_PKTINFO; return 0; }
#endif
return -1;
case 8:
#ifdef IPV6_CHECKSUM
if (memcmp(str, "CHECKSUM", 8) == 0) { *valp = IPV6_CHECKSUM; return 0; }
#endif
#ifdef IPV6_DONTFRAG
if (memcmp(str, "DONTFRAG", 8) == 0) { *valp = IPV6_DONTFRAG; return 0; }
#endif
#ifdef IPV6_HOPLIMIT
if (memcmp(str, "HOPLIMIT", 8) == 0) { *valp = IPV6_HOPLIMIT; return 0; }
#endif
return -1;
case 9:
#ifdef IPV6_RECVRTHDR
if (memcmp(str, "RECVRTHDR", 9) == 0) { *valp = IPV6_RECVRTHDR; return 0; }
#endif
return -1;
case 10:
#ifdef IPV6_RTHDR
if (memcmp(str, "IPV6_RTHDR", 10) == 0) { *valp = IPV6_RTHDR; return 0; }
#endif
#ifdef IPV6_JOIN_GROUP
if (memcmp(str, "JOIN_GROUP", 10) == 0) { *valp = IPV6_JOIN_GROUP; return 0; }
#endif
#ifdef IPV6_RECVTCLASS
if (memcmp(str, "RECVTCLASS", 10) == 0) { *valp = IPV6_RECVTCLASS; return 0; }
#endif
return -1;
case 11:
#ifdef IPV6_V6ONLY
if (memcmp(str, "IPV6_V6ONLY", 11) == 0) { *valp = IPV6_V6ONLY; return 0; }
#endif
#ifdef IPV6_TCLASS
if (memcmp(str, "IPV6_TCLASS", 11) == 0) { *valp = IPV6_TCLASS; return 0; }
#endif
#ifdef IPV6_LEAVE_GROUP
if (memcmp(str, "LEAVE_GROUP", 11) == 0) { *valp = IPV6_LEAVE_GROUP; return 0; }
#endif
#ifdef IPV6_RECVDSTOPTS
if (memcmp(str, "RECVDSTOPTS", 11) == 0) { *valp = IPV6_RECVDSTOPTS; return 0; }
#endif
#ifdef IPV6_RECVHOPOPTS
if (memcmp(str, "RECVHOPOPTS", 11) == 0) { *valp = IPV6_RECVHOPOPTS; return 0; }
#endif
#ifdef IPV6_RECVPKTINFO
if (memcmp(str, "RECVPKTINFO", 11) == 0) { *valp = IPV6_RECVPKTINFO; return 0; }
#endif
#ifdef IPV6_RECVPATHMTU
if (memcmp(str, "RECVPATHMTU", 11) == 0) { *valp = IPV6_RECVPATHMTU; return 0; }
#endif
#ifdef IPV6_USE_MIN_MTU
if (memcmp(str, "USE_MIN_MTU", 11) == 0) { *valp = IPV6_USE_MIN_MTU; return 0; }
#endif
return -1;
case 12:
#ifdef IPV6_DSTOPTS
if (memcmp(str, "IPV6_DSTOPTS", 12) == 0) { *valp = IPV6_DSTOPTS; return 0; }
#endif
#ifdef IPV6_HOPOPTS
if (memcmp(str, "IPV6_HOPOPTS", 12) == 0) { *valp = IPV6_HOPOPTS; return 0; }
#endif
#ifdef IPV6_NEXTHOP
if (memcmp(str, "IPV6_NEXTHOP", 12) == 0) { *valp = IPV6_NEXTHOP; return 0; }
#endif
#ifdef IPV6_PATHMTU
if (memcmp(str, "IPV6_PATHMTU", 12) == 0) { *valp = IPV6_PATHMTU; return 0; }
#endif
#ifdef IPV6_PKTINFO
if (memcmp(str, "IPV6_PKTINFO", 12) == 0) { *valp = IPV6_PKTINFO; return 0; }
#endif
#ifdef IPV6_MULTICAST_IF
if (memcmp(str, "MULTICAST_IF", 12) == 0) { *valp = IPV6_MULTICAST_IF; return 0; }
#endif
#ifdef IPV6_UNICAST_HOPS
if (memcmp(str, "UNICAST_HOPS", 12) == 0) { *valp = IPV6_UNICAST_HOPS; return 0; }
#endif
#ifdef IPV6_RECVHOPLIMIT
if (memcmp(str, "RECVHOPLIMIT", 12) == 0) { *valp = IPV6_RECVHOPLIMIT; return 0; }
#endif
#ifdef IPV6_RTHDRDSTOPTS
if (memcmp(str, "RTHDRDSTOPTS", 12) == 0) { *valp = IPV6_RTHDRDSTOPTS; return 0; }
#endif
#ifdef IPV6_RTHDR_TYPE_0
if (memcmp(str, "RTHDR_TYPE_0", 12) == 0) { *valp = IPV6_RTHDR_TYPE_0; return 0; }
#endif
return -1;
case 13:
#ifdef IPV6_CHECKSUM
if (memcmp(str, "IPV6_CHECKSUM", 13) == 0) { *valp = IPV6_CHECKSUM; return 0; }
#endif
#ifdef IPV6_DONTFRAG
if (memcmp(str, "IPV6_DONTFRAG", 13) == 0) { *valp = IPV6_DONTFRAG; return 0; }
#endif
#ifdef IPV6_HOPLIMIT
if (memcmp(str, "IPV6_HOPLIMIT", 13) == 0) { *valp = IPV6_HOPLIMIT; return 0; }
#endif
return -1;
case 14:
#ifdef IPV6_RECVRTHDR
if (memcmp(str, "IPV6_RECVRTHDR", 14) == 0) { *valp = IPV6_RECVRTHDR; return 0; }
#endif
#ifdef IPV6_MULTICAST_HOPS
if (memcmp(str, "MULTICAST_HOPS", 14) == 0) { *valp = IPV6_MULTICAST_HOPS; return 0; }
#endif
#ifdef IPV6_MULTICAST_LOOP
if (memcmp(str, "MULTICAST_LOOP", 14) == 0) { *valp = IPV6_MULTICAST_LOOP; return 0; }
#endif
return -1;
case 15:
#ifdef IPV6_JOIN_GROUP
if (memcmp(str, "IPV6_JOIN_GROUP", 15) == 0) { *valp = IPV6_JOIN_GROUP; return 0; }
#endif
#ifdef IPV6_RECVTCLASS
if (memcmp(str, "IPV6_RECVTCLASS", 15) == 0) { *valp = IPV6_RECVTCLASS; return 0; }
#endif
return -1;
case 16:
#ifdef IPV6_LEAVE_GROUP
if (memcmp(str, "IPV6_LEAVE_GROUP", 16) == 0) { *valp = IPV6_LEAVE_GROUP; return 0; }
#endif
#ifdef IPV6_RECVDSTOPTS
if (memcmp(str, "IPV6_RECVDSTOPTS", 16) == 0) { *valp = IPV6_RECVDSTOPTS; return 0; }
#endif
#ifdef IPV6_RECVHOPOPTS
if (memcmp(str, "IPV6_RECVHOPOPTS", 16) == 0) { *valp = IPV6_RECVHOPOPTS; return 0; }
#endif
#ifdef IPV6_RECVPKTINFO
if (memcmp(str, "IPV6_RECVPKTINFO", 16) == 0) { *valp = IPV6_RECVPKTINFO; return 0; }
#endif
#ifdef IPV6_RECVPATHMTU
if (memcmp(str, "IPV6_RECVPATHMTU", 16) == 0) { *valp = IPV6_RECVPATHMTU; return 0; }
#endif
#ifdef IPV6_USE_MIN_MTU
if (memcmp(str, "IPV6_USE_MIN_MTU", 16) == 0) { *valp = IPV6_USE_MIN_MTU; return 0; }
#endif
return -1;
case 17:
#ifdef IPV6_MULTICAST_IF
if (memcmp(str, "IPV6_MULTICAST_IF", 17) == 0) { *valp = IPV6_MULTICAST_IF; return 0; }
#endif
#ifdef IPV6_UNICAST_HOPS
if (memcmp(str, "IPV6_UNICAST_HOPS", 17) == 0) { *valp = IPV6_UNICAST_HOPS; return 0; }
#endif
#ifdef IPV6_RECVHOPLIMIT
if (memcmp(str, "IPV6_RECVHOPLIMIT", 17) == 0) { *valp = IPV6_RECVHOPLIMIT; return 0; }
#endif
#ifdef IPV6_RTHDRDSTOPTS
if (memcmp(str, "IPV6_RTHDRDSTOPTS", 17) == 0) { *valp = IPV6_RTHDRDSTOPTS; return 0; }
#endif
#ifdef IPV6_RTHDR_TYPE_0
if (memcmp(str, "IPV6_RTHDR_TYPE_0", 17) == 0) { *valp = IPV6_RTHDR_TYPE_0; return 0; }
#endif
return -1;
case 19:
#ifdef IPV6_MULTICAST_HOPS
if (memcmp(str, "IPV6_MULTICAST_HOPS", 19) == 0) { *valp = IPV6_MULTICAST_HOPS; return 0; }
#endif
#ifdef IPV6_MULTICAST_LOOP
if (memcmp(str, "IPV6_MULTICAST_LOOP", 19) == 0) { *valp = IPV6_MULTICAST_LOOP; return 0; }
#endif
return -1;
default:
return -1;
}
}
#endif
int
rsock_tcp_optname_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 4:
#ifdef TCP_CORK
if (memcmp(str, "CORK", 4) == 0) { *valp = TCP_CORK; return 0; }
#endif
#ifdef TCP_INFO
if (memcmp(str, "INFO", 4) == 0) { *valp = TCP_INFO; return 0; }
#endif
return -1;
case 5:
#ifdef TCP_NOOPT
if (memcmp(str, "NOOPT", 5) == 0) { *valp = TCP_NOOPT; return 0; }
#endif
return -1;
case 6:
#ifdef TCP_MAXSEG
if (memcmp(str, "MAXSEG", 6) == 0) { *valp = TCP_MAXSEG; return 0; }
#endif
#ifdef TCP_MD5SIG
if (memcmp(str, "MD5SIG", 6) == 0) { *valp = TCP_MD5SIG; return 0; }
#endif
#ifdef TCP_NOPUSH
if (memcmp(str, "NOPUSH", 6) == 0) { *valp = TCP_NOPUSH; return 0; }
#endif
#ifdef TCP_SYNCNT
if (memcmp(str, "SYNCNT", 6) == 0) { *valp = TCP_SYNCNT; return 0; }
#endif
#ifdef TCP_REPAIR
if (memcmp(str, "REPAIR", 6) == 0) { *valp = TCP_REPAIR; return 0; }
#endif
return -1;
case 7:
#ifdef TCP_NODELAY
if (memcmp(str, "NODELAY", 7) == 0) { *valp = TCP_NODELAY; return 0; }
#endif
#ifdef TCP_KEEPCNT
if (memcmp(str, "KEEPCNT", 7) == 0) { *valp = TCP_KEEPCNT; return 0; }
#endif
#ifdef TCP_LINGER2
if (memcmp(str, "LINGER2", 7) == 0) { *valp = TCP_LINGER2; return 0; }
#endif
return -1;
case 8:
#ifdef TCP_CORK
if (memcmp(str, "TCP_CORK", 8) == 0) { *valp = TCP_CORK; return 0; }
#endif
#ifdef TCP_INFO
if (memcmp(str, "TCP_INFO", 8) == 0) { *valp = TCP_INFO; return 0; }
#endif
#ifdef TCP_KEEPIDLE
if (memcmp(str, "KEEPIDLE", 8) == 0) { *valp = TCP_KEEPIDLE; return 0; }
#endif
#ifdef TCP_QUICKACK
if (memcmp(str, "QUICKACK", 8) == 0) { *valp = TCP_QUICKACK; return 0; }
#endif
#ifdef TCP_FASTOPEN
if (memcmp(str, "FASTOPEN", 8) == 0) { *valp = TCP_FASTOPEN; return 0; }
#endif
return -1;
case 9:
#ifdef TCP_NOOPT
if (memcmp(str, "TCP_NOOPT", 9) == 0) { *valp = TCP_NOOPT; return 0; }
#endif
#ifdef TCP_KEEPINTVL
if (memcmp(str, "KEEPINTVL", 9) == 0) { *valp = TCP_KEEPINTVL; return 0; }
#endif
#ifdef TCP_QUEUE_SEQ
if (memcmp(str, "QUEUE_SEQ", 9) == 0) { *valp = TCP_QUEUE_SEQ; return 0; }
#endif
#ifdef TCP_TIMESTAMP
if (memcmp(str, "TIMESTAMP", 9) == 0) { *valp = TCP_TIMESTAMP; return 0; }
#endif
return -1;
case 10:
#ifdef TCP_MAXSEG
if (memcmp(str, "TCP_MAXSEG", 10) == 0) { *valp = TCP_MAXSEG; return 0; }
#endif
#ifdef TCP_MD5SIG
if (memcmp(str, "TCP_MD5SIG", 10) == 0) { *valp = TCP_MD5SIG; return 0; }
#endif
#ifdef TCP_NOPUSH
if (memcmp(str, "TCP_NOPUSH", 10) == 0) { *valp = TCP_NOPUSH; return 0; }
#endif
#ifdef TCP_SYNCNT
if (memcmp(str, "TCP_SYNCNT", 10) == 0) { *valp = TCP_SYNCNT; return 0; }
#endif
#ifdef TCP_REPAIR
if (memcmp(str, "TCP_REPAIR", 10) == 0) { *valp = TCP_REPAIR; return 0; }
#endif
#ifdef TCP_CONGESTION
if (memcmp(str, "CONGESTION", 10) == 0) { *valp = TCP_CONGESTION; return 0; }
#endif
return -1;
case 11:
#ifdef TCP_NODELAY
if (memcmp(str, "TCP_NODELAY", 11) == 0) { *valp = TCP_NODELAY; return 0; }
#endif
#ifdef TCP_KEEPCNT
if (memcmp(str, "TCP_KEEPCNT", 11) == 0) { *valp = TCP_KEEPCNT; return 0; }
#endif
#ifdef TCP_LINGER2
if (memcmp(str, "TCP_LINGER2", 11) == 0) { *valp = TCP_LINGER2; return 0; }
#endif
#ifdef TCP_THIN_DUPACK
if (memcmp(str, "THIN_DUPACK", 11) == 0) { *valp = TCP_THIN_DUPACK; return 0; }
#endif
return -1;
case 12:
#ifdef TCP_KEEPIDLE
if (memcmp(str, "TCP_KEEPIDLE", 12) == 0) { *valp = TCP_KEEPIDLE; return 0; }
#endif
#ifdef TCP_QUICKACK
if (memcmp(str, "TCP_QUICKACK", 12) == 0) { *valp = TCP_QUICKACK; return 0; }
#endif
#ifdef TCP_FASTOPEN
if (memcmp(str, "TCP_FASTOPEN", 12) == 0) { *valp = TCP_FASTOPEN; return 0; }
#endif
#ifdef TCP_DEFER_ACCEPT
if (memcmp(str, "DEFER_ACCEPT", 12) == 0) { *valp = TCP_DEFER_ACCEPT; return 0; }
#endif
#ifdef TCP_WINDOW_CLAMP
if (memcmp(str, "WINDOW_CLAMP", 12) == 0) { *valp = TCP_WINDOW_CLAMP; return 0; }
#endif
#ifdef TCP_REPAIR_QUEUE
if (memcmp(str, "REPAIR_QUEUE", 12) == 0) { *valp = TCP_REPAIR_QUEUE; return 0; }
#endif
#ifdef TCP_USER_TIMEOUT
if (memcmp(str, "USER_TIMEOUT", 12) == 0) { *valp = TCP_USER_TIMEOUT; return 0; }
#endif
return -1;
case 13:
#ifdef TCP_KEEPINTVL
if (memcmp(str, "TCP_KEEPINTVL", 13) == 0) { *valp = TCP_KEEPINTVL; return 0; }
#endif
#ifdef TCP_QUEUE_SEQ
if (memcmp(str, "TCP_QUEUE_SEQ", 13) == 0) { *valp = TCP_QUEUE_SEQ; return 0; }
#endif
#ifdef TCP_TIMESTAMP
if (memcmp(str, "TCP_TIMESTAMP", 13) == 0) { *valp = TCP_TIMESTAMP; return 0; }
#endif
return -1;
case 14:
#ifdef TCP_CONGESTION
if (memcmp(str, "TCP_CONGESTION", 14) == 0) { *valp = TCP_CONGESTION; return 0; }
#endif
#ifdef TCP_REPAIR_OPTIONS
if (memcmp(str, "REPAIR_OPTIONS", 14) == 0) { *valp = TCP_REPAIR_OPTIONS; return 0; }
#endif
return -1;
case 15:
#ifdef TCP_THIN_DUPACK
if (memcmp(str, "TCP_THIN_DUPACK", 15) == 0) { *valp = TCP_THIN_DUPACK; return 0; }
#endif
return -1;
case 16:
#ifdef TCP_DEFER_ACCEPT
if (memcmp(str, "TCP_DEFER_ACCEPT", 16) == 0) { *valp = TCP_DEFER_ACCEPT; return 0; }
#endif
#ifdef TCP_WINDOW_CLAMP
if (memcmp(str, "TCP_WINDOW_CLAMP", 16) == 0) { *valp = TCP_WINDOW_CLAMP; return 0; }
#endif
#ifdef TCP_REPAIR_QUEUE
if (memcmp(str, "TCP_REPAIR_QUEUE", 16) == 0) { *valp = TCP_REPAIR_QUEUE; return 0; }
#endif
#ifdef TCP_USER_TIMEOUT
if (memcmp(str, "TCP_USER_TIMEOUT", 16) == 0) { *valp = TCP_USER_TIMEOUT; return 0; }
#endif
return -1;
case 18:
#ifdef TCP_REPAIR_OPTIONS
if (memcmp(str, "TCP_REPAIR_OPTIONS", 18) == 0) { *valp = TCP_REPAIR_OPTIONS; return 0; }
#endif
return -1;
case 19:
#ifdef TCP_COOKIE_TRANSACTIONS
if (memcmp(str, "COOKIE_TRANSACTIONS", 19) == 0) { *valp = TCP_COOKIE_TRANSACTIONS; return 0; }
#endif
return -1;
case 20:
#ifdef TCP_THIN_LINEAR_TIMEOUTS
if (memcmp(str, "THIN_LINEAR_TIMEOUTS", 20) == 0) { *valp = TCP_THIN_LINEAR_TIMEOUTS; return 0; }
#endif
return -1;
case 23:
#ifdef TCP_COOKIE_TRANSACTIONS
if (memcmp(str, "TCP_COOKIE_TRANSACTIONS", 23) == 0) { *valp = TCP_COOKIE_TRANSACTIONS; return 0; }
#endif
return -1;
case 24:
#ifdef TCP_THIN_LINEAR_TIMEOUTS
if (memcmp(str, "TCP_THIN_LINEAR_TIMEOUTS", 24) == 0) { *valp = TCP_THIN_LINEAR_TIMEOUTS; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_udp_optname_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 4:
#ifdef UDP_CORK
if (memcmp(str, "CORK", 4) == 0) { *valp = UDP_CORK; return 0; }
#endif
return -1;
case 8:
#ifdef UDP_CORK
if (memcmp(str, "UDP_CORK", 8) == 0) { *valp = UDP_CORK; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_shutdown_how_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 2:
#ifdef SHUT_RD
if (memcmp(str, "RD", 2) == 0) { *valp = SHUT_RD; return 0; }
#endif
#ifdef SHUT_WR
if (memcmp(str, "WR", 2) == 0) { *valp = SHUT_WR; return 0; }
#endif
return -1;
case 4:
#ifdef SHUT_RDWR
if (memcmp(str, "RDWR", 4) == 0) { *valp = SHUT_RDWR; return 0; }
#endif
return -1;
case 7:
#ifdef SHUT_RD
if (memcmp(str, "SHUT_RD", 7) == 0) { *valp = SHUT_RD; return 0; }
#endif
#ifdef SHUT_WR
if (memcmp(str, "SHUT_WR", 7) == 0) { *valp = SHUT_WR; return 0; }
#endif
return -1;
case 9:
#ifdef SHUT_RDWR
if (memcmp(str, "SHUT_RDWR", 9) == 0) { *valp = SHUT_RDWR; return 0; }
#endif
return -1;
default:
return -1;
}
}
int
rsock_scm_optname_to_int(const char *str, long len, int *valp)
{
switch (len) {
case 5:
#ifdef SCM_CREDS
if (memcmp(str, "CREDS", 5) == 0) { *valp = SCM_CREDS; return 0; }
#endif
#ifdef SCM_UCRED
if (memcmp(str, "UCRED", 5) == 0) { *valp = SCM_UCRED; return 0; }
#endif
return -1;
case 6:
#ifdef SCM_RIGHTS
if (memcmp(str, "RIGHTS", 6) == 0) { *valp = SCM_RIGHTS; return 0; }
#endif
return -1;
case 7:
#ifdef SCM_BINTIME
if (memcmp(str, "BINTIME", 7) == 0) { *valp = SCM_BINTIME; return 0; }
#endif
return -1;
case 9:
#ifdef SCM_CREDS
if (memcmp(str, "SCM_CREDS", 9) == 0) { *valp = SCM_CREDS; return 0; }
#endif
#ifdef SCM_UCRED
if (memcmp(str, "SCM_UCRED", 9) == 0) { *valp = SCM_UCRED; return 0; }
#endif
#ifdef SCM_TIMESTAMP
if (memcmp(str, "TIMESTAMP", 9) == 0) { *valp = SCM_TIMESTAMP; return 0; }
#endif
return -1;
case 10:
#ifdef SCM_RIGHTS
if (memcmp(str, "SCM_RIGHTS", 10) == 0) { *valp = SCM_RIGHTS; return 0; }
#endif
return -1;
case 11:
#ifdef SCM_BINTIME
if (memcmp(str, "SCM_BINTIME", 11) == 0) { *valp = SCM_BINTIME; return 0; }
#endif
#ifdef SCM_TIMESTAMPNS
if (memcmp(str, "TIMESTAMPNS", 11) == 0) { *valp = SCM_TIMESTAMPNS; return 0; }
#endif
#ifdef SCM_CREDENTIALS
if (memcmp(str, "CREDENTIALS", 11) == 0) { *valp = SCM_CREDENTIALS; return 0; }
#endif
#ifdef SCM_WIFI_STATUS
if (memcmp(str, "WIFI_STATUS", 11) == 0) { *valp = SCM_WIFI_STATUS; return 0; }
#endif
return -1;
case 12:
#ifdef SCM_TIMESTAMPING
if (memcmp(str, "TIMESTAMPING", 12) == 0) { *valp = SCM_TIMESTAMPING; return 0; }
#endif
return -1;
case 13:
#ifdef SCM_TIMESTAMP
if (memcmp(str, "SCM_TIMESTAMP", 13) == 0) { *valp = SCM_TIMESTAMP; return 0; }
#endif
return -1;
case 15:
#ifdef SCM_TIMESTAMPNS
if (memcmp(str, "SCM_TIMESTAMPNS", 15) == 0) { *valp = SCM_TIMESTAMPNS; return 0; }
#endif
#ifdef SCM_CREDENTIALS
if (memcmp(str, "SCM_CREDENTIALS", 15) == 0) { *valp = SCM_CREDENTIALS; return 0; }
#endif
#ifdef SCM_WIFI_STATUS
if (memcmp(str, "SCM_WIFI_STATUS", 15) == 0) { *valp = SCM_WIFI_STATUS; return 0; }
#endif
return -1;
case 16:
#ifdef SCM_TIMESTAMPING
if (memcmp(str, "SCM_TIMESTAMPING", 16) == 0) { *valp = SCM_TIMESTAMPING; return 0; }
#endif
return -1;
default:
return -1;
}
}
ID
rsock_intern_family(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_family_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_family_noprefix(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_family_noprefix_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_protocol_family(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_protocol_family_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_socktype(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_socktype_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_ipproto(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_ipproto_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_iplevel(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_iplevel_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_so_optname(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_so_optname_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_ip_optname(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_ip_optname_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_ipv6_optname(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_ipv6_optname_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_tcp_optname(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_tcp_optname_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_udp_optname(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_udp_optname_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_scm_optname(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_scm_optname_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}
ID
rsock_intern_local_optname(int val)
{
st_data_t name;
if (st_lookup(rsock_intern_local_optname_hash, (st_data_t)val, &name))
return (ID)name;
return 0;
}