ext/socket/constdefs.c

Go to the documentation of this file.
00001 /* autogenerated file */
00002 
00003 static st_table *rsock_intern_family_hash;
00004 static st_table *rsock_intern_family_noprefix_hash;
00005 static st_table *rsock_intern_protocol_family_hash;
00006 static st_table *rsock_intern_socktype_hash;
00007 static st_table *rsock_intern_ipproto_hash;
00008 static st_table *rsock_intern_iplevel_hash;
00009 static st_table *rsock_intern_so_optname_hash;
00010 static st_table *rsock_intern_ip_optname_hash;
00011 static st_table *rsock_intern_ipv6_optname_hash;
00012 static st_table *rsock_intern_tcp_optname_hash;
00013 static st_table *rsock_intern_udp_optname_hash;
00014 static st_table *rsock_intern_scm_optname_hash;
00015 static st_table *rsock_intern_local_optname_hash;
00016 
00017 #ifdef HAVE_LONG_LONG
00018 #define INTEGER2NUM(n) \
00019     (FIXNUM_MAX < (n) ? ULL2NUM(n) : \
00020      FIXNUM_MIN > (LONG_LONG)(n) ? LL2NUM(n) : \
00021      LONG2FIX(n))
00022 #else
00023 #define INTEGER2NUM(n) \
00024     (FIXNUM_MAX < (n) ? ULONG2NUM(n) : \
00025      FIXNUM_MIN > (long)(n) ? LONG2NUM(n) : \
00026      LONG2FIX(n))
00027 #endif
00028 
00029 static void
00030 init_constants(void)
00031 {
00032     /*
00033      * Document-module: Socket::Constants
00034      *
00035      * Socket::Constants provides socket-related constants.  All possible
00036      * socket constants are listed in the documentation but they may not all
00037      * be present on your platform.
00038      *
00039      * If the underlying platform doesn't define a constant the corresponding
00040      * Ruby constant is not defined.
00041      *
00042      */
00043     rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants");
00044 
00045 #if defined(SOCK_STREAM)
00046     /* A stream socket provides a sequenced, reliable two-way connection for a byte stream */
00047     rb_define_const(rb_cSocket, "SOCK_STREAM", INTEGER2NUM(SOCK_STREAM));
00048     /* A stream socket provides a sequenced, reliable two-way connection for a byte stream */
00049     rb_define_const(rb_mSockConst, "SOCK_STREAM", INTEGER2NUM(SOCK_STREAM));
00050 #endif
00051 #if defined(SOCK_DGRAM)
00052     /* A datagram socket provides connectionless, unreliable messaging */
00053     rb_define_const(rb_cSocket, "SOCK_DGRAM", INTEGER2NUM(SOCK_DGRAM));
00054     /* A datagram socket provides connectionless, unreliable messaging */
00055     rb_define_const(rb_mSockConst, "SOCK_DGRAM", INTEGER2NUM(SOCK_DGRAM));
00056 #endif
00057 #if defined(SOCK_RAW)
00058     /* A raw socket provides low-level access for direct access or implementing network protocols */
00059     rb_define_const(rb_cSocket, "SOCK_RAW", INTEGER2NUM(SOCK_RAW));
00060     /* A raw socket provides low-level access for direct access or implementing network protocols */
00061     rb_define_const(rb_mSockConst, "SOCK_RAW", INTEGER2NUM(SOCK_RAW));
00062 #endif
00063 #if defined(SOCK_RDM)
00064     /* A reliable datagram socket provides reliable delivery of messages */
00065     rb_define_const(rb_cSocket, "SOCK_RDM", INTEGER2NUM(SOCK_RDM));
00066     /* A reliable datagram socket provides reliable delivery of messages */
00067     rb_define_const(rb_mSockConst, "SOCK_RDM", INTEGER2NUM(SOCK_RDM));
00068 #endif
00069 #if defined(SOCK_SEQPACKET)
00070     /* A sequential packet socket provides sequenced, reliable two-way connection for datagrams */
00071     rb_define_const(rb_cSocket, "SOCK_SEQPACKET", INTEGER2NUM(SOCK_SEQPACKET));
00072     /* A sequential packet socket provides sequenced, reliable two-way connection for datagrams */
00073     rb_define_const(rb_mSockConst, "SOCK_SEQPACKET", INTEGER2NUM(SOCK_SEQPACKET));
00074 #endif
00075 #if defined(SOCK_PACKET)
00076     /* Device-level packet access */
00077     rb_define_const(rb_cSocket, "SOCK_PACKET", INTEGER2NUM(SOCK_PACKET));
00078     /* Device-level packet access */
00079     rb_define_const(rb_mSockConst, "SOCK_PACKET", INTEGER2NUM(SOCK_PACKET));
00080 #endif
00081 #if defined(AF_UNSPEC)
00082     /* Unspecified protocol, any supported address family */
00083     rb_define_const(rb_cSocket, "AF_UNSPEC", INTEGER2NUM(AF_UNSPEC));
00084     /* Unspecified protocol, any supported address family */
00085     rb_define_const(rb_mSockConst, "AF_UNSPEC", INTEGER2NUM(AF_UNSPEC));
00086 #endif
00087 #if defined(PF_UNSPEC)
00088     /* Unspecified protocol, any supported address family */
00089     rb_define_const(rb_cSocket, "PF_UNSPEC", INTEGER2NUM(PF_UNSPEC));
00090     /* Unspecified protocol, any supported address family */
00091     rb_define_const(rb_mSockConst, "PF_UNSPEC", INTEGER2NUM(PF_UNSPEC));
00092 #endif
00093 #if defined(AF_INET)
00094     /* IPv4 protocol */
00095     rb_define_const(rb_cSocket, "AF_INET", INTEGER2NUM(AF_INET));
00096     /* IPv4 protocol */
00097     rb_define_const(rb_mSockConst, "AF_INET", INTEGER2NUM(AF_INET));
00098 #endif
00099 #if defined(PF_INET)
00100     /* IPv4 protocol */
00101     rb_define_const(rb_cSocket, "PF_INET", INTEGER2NUM(PF_INET));
00102     /* IPv4 protocol */
00103     rb_define_const(rb_mSockConst, "PF_INET", INTEGER2NUM(PF_INET));
00104 #endif
00105 #if defined(INET6)
00106 #if defined(AF_INET6)
00107     /* IPv6 protocol */
00108     rb_define_const(rb_cSocket, "AF_INET6", INTEGER2NUM(AF_INET6));
00109     /* IPv6 protocol */
00110     rb_define_const(rb_mSockConst, "AF_INET6", INTEGER2NUM(AF_INET6));
00111 #endif
00112 #endif
00113 #if defined(INET6)
00114 #if defined(PF_INET6)
00115     /* IPv6 protocol */
00116     rb_define_const(rb_cSocket, "PF_INET6", INTEGER2NUM(PF_INET6));
00117     /* IPv6 protocol */
00118     rb_define_const(rb_mSockConst, "PF_INET6", INTEGER2NUM(PF_INET6));
00119 #endif
00120 #endif
00121 #if defined(AF_UNIX)
00122     /* UNIX sockets */
00123     rb_define_const(rb_cSocket, "AF_UNIX", INTEGER2NUM(AF_UNIX));
00124     /* UNIX sockets */
00125     rb_define_const(rb_mSockConst, "AF_UNIX", INTEGER2NUM(AF_UNIX));
00126 #endif
00127 #if defined(PF_UNIX)
00128     /* UNIX sockets */
00129     rb_define_const(rb_cSocket, "PF_UNIX", INTEGER2NUM(PF_UNIX));
00130     /* UNIX sockets */
00131     rb_define_const(rb_mSockConst, "PF_UNIX", INTEGER2NUM(PF_UNIX));
00132 #endif
00133 #if defined(AF_AX25)
00134     /* AX.25 protocol */
00135     rb_define_const(rb_cSocket, "AF_AX25", INTEGER2NUM(AF_AX25));
00136     /* AX.25 protocol */
00137     rb_define_const(rb_mSockConst, "AF_AX25", INTEGER2NUM(AF_AX25));
00138 #endif
00139 #if defined(PF_AX25)
00140     /* AX.25 protocol */
00141     rb_define_const(rb_cSocket, "PF_AX25", INTEGER2NUM(PF_AX25));
00142     /* AX.25 protocol */
00143     rb_define_const(rb_mSockConst, "PF_AX25", INTEGER2NUM(PF_AX25));
00144 #endif
00145 #if defined(AF_IPX)
00146     /* IPX protocol */
00147     rb_define_const(rb_cSocket, "AF_IPX", INTEGER2NUM(AF_IPX));
00148     /* IPX protocol */
00149     rb_define_const(rb_mSockConst, "AF_IPX", INTEGER2NUM(AF_IPX));
00150 #endif
00151 #if defined(PF_IPX)
00152     /* IPX protocol */
00153     rb_define_const(rb_cSocket, "PF_IPX", INTEGER2NUM(PF_IPX));
00154     /* IPX protocol */
00155     rb_define_const(rb_mSockConst, "PF_IPX", INTEGER2NUM(PF_IPX));
00156 #endif
00157 #if defined(AF_APPLETALK)
00158     /* AppleTalk protocol */
00159     rb_define_const(rb_cSocket, "AF_APPLETALK", INTEGER2NUM(AF_APPLETALK));
00160     /* AppleTalk protocol */
00161     rb_define_const(rb_mSockConst, "AF_APPLETALK", INTEGER2NUM(AF_APPLETALK));
00162 #endif
00163 #if defined(PF_APPLETALK)
00164     /* AppleTalk protocol */
00165     rb_define_const(rb_cSocket, "PF_APPLETALK", INTEGER2NUM(PF_APPLETALK));
00166     /* AppleTalk protocol */
00167     rb_define_const(rb_mSockConst, "PF_APPLETALK", INTEGER2NUM(PF_APPLETALK));
00168 #endif
00169 #if defined(AF_LOCAL)
00170     /* Host-internal protocols */
00171     rb_define_const(rb_cSocket, "AF_LOCAL", INTEGER2NUM(AF_LOCAL));
00172     /* Host-internal protocols */
00173     rb_define_const(rb_mSockConst, "AF_LOCAL", INTEGER2NUM(AF_LOCAL));
00174 #endif
00175 #if defined(PF_LOCAL)
00176     /* Host-internal protocols */
00177     rb_define_const(rb_cSocket, "PF_LOCAL", INTEGER2NUM(PF_LOCAL));
00178     /* Host-internal protocols */
00179     rb_define_const(rb_mSockConst, "PF_LOCAL", INTEGER2NUM(PF_LOCAL));
00180 #endif
00181 #if defined(AF_IMPLINK)
00182     /* ARPANET IMP protocol */
00183     rb_define_const(rb_cSocket, "AF_IMPLINK", INTEGER2NUM(AF_IMPLINK));
00184     /* ARPANET IMP protocol */
00185     rb_define_const(rb_mSockConst, "AF_IMPLINK", INTEGER2NUM(AF_IMPLINK));
00186 #endif
00187 #if defined(PF_IMPLINK)
00188     /* ARPANET IMP protocol */
00189     rb_define_const(rb_cSocket, "PF_IMPLINK", INTEGER2NUM(PF_IMPLINK));
00190     /* ARPANET IMP protocol */
00191     rb_define_const(rb_mSockConst, "PF_IMPLINK", INTEGER2NUM(PF_IMPLINK));
00192 #endif
00193 #if defined(AF_PUP)
00194     /* PARC Universal Packet protocol */
00195     rb_define_const(rb_cSocket, "AF_PUP", INTEGER2NUM(AF_PUP));
00196     /* PARC Universal Packet protocol */
00197     rb_define_const(rb_mSockConst, "AF_PUP", INTEGER2NUM(AF_PUP));
00198 #endif
00199 #if defined(PF_PUP)
00200     /* PARC Universal Packet protocol */
00201     rb_define_const(rb_cSocket, "PF_PUP", INTEGER2NUM(PF_PUP));
00202     /* PARC Universal Packet protocol */
00203     rb_define_const(rb_mSockConst, "PF_PUP", INTEGER2NUM(PF_PUP));
00204 #endif
00205 #if defined(AF_CHAOS)
00206     /* MIT CHAOS protocols */
00207     rb_define_const(rb_cSocket, "AF_CHAOS", INTEGER2NUM(AF_CHAOS));
00208     /* MIT CHAOS protocols */
00209     rb_define_const(rb_mSockConst, "AF_CHAOS", INTEGER2NUM(AF_CHAOS));
00210 #endif
00211 #if defined(PF_CHAOS)
00212     /* MIT CHAOS protocols */
00213     rb_define_const(rb_cSocket, "PF_CHAOS", INTEGER2NUM(PF_CHAOS));
00214     /* MIT CHAOS protocols */
00215     rb_define_const(rb_mSockConst, "PF_CHAOS", INTEGER2NUM(PF_CHAOS));
00216 #endif
00217 #if defined(AF_NS)
00218     /* XEROX NS protocols */
00219     rb_define_const(rb_cSocket, "AF_NS", INTEGER2NUM(AF_NS));
00220     /* XEROX NS protocols */
00221     rb_define_const(rb_mSockConst, "AF_NS", INTEGER2NUM(AF_NS));
00222 #endif
00223 #if defined(PF_NS)
00224     /* XEROX NS protocols */
00225     rb_define_const(rb_cSocket, "PF_NS", INTEGER2NUM(PF_NS));
00226     /* XEROX NS protocols */
00227     rb_define_const(rb_mSockConst, "PF_NS", INTEGER2NUM(PF_NS));
00228 #endif
00229 #if defined(AF_ISO)
00230     /* ISO Open Systems Interconnection protocols */
00231     rb_define_const(rb_cSocket, "AF_ISO", INTEGER2NUM(AF_ISO));
00232     /* ISO Open Systems Interconnection protocols */
00233     rb_define_const(rb_mSockConst, "AF_ISO", INTEGER2NUM(AF_ISO));
00234 #endif
00235 #if defined(PF_ISO)
00236     /* ISO Open Systems Interconnection protocols */
00237     rb_define_const(rb_cSocket, "PF_ISO", INTEGER2NUM(PF_ISO));
00238     /* ISO Open Systems Interconnection protocols */
00239     rb_define_const(rb_mSockConst, "PF_ISO", INTEGER2NUM(PF_ISO));
00240 #endif
00241 #if defined(AF_OSI)
00242     /* ISO Open Systems Interconnection protocols */
00243     rb_define_const(rb_cSocket, "AF_OSI", INTEGER2NUM(AF_OSI));
00244     /* ISO Open Systems Interconnection protocols */
00245     rb_define_const(rb_mSockConst, "AF_OSI", INTEGER2NUM(AF_OSI));
00246 #endif
00247 #if defined(PF_OSI)
00248     /* ISO Open Systems Interconnection protocols */
00249     rb_define_const(rb_cSocket, "PF_OSI", INTEGER2NUM(PF_OSI));
00250     /* ISO Open Systems Interconnection protocols */
00251     rb_define_const(rb_mSockConst, "PF_OSI", INTEGER2NUM(PF_OSI));
00252 #endif
00253 #if defined(AF_ECMA)
00254     /* European Computer Manufacturers protocols */
00255     rb_define_const(rb_cSocket, "AF_ECMA", INTEGER2NUM(AF_ECMA));
00256     /* European Computer Manufacturers protocols */
00257     rb_define_const(rb_mSockConst, "AF_ECMA", INTEGER2NUM(AF_ECMA));
00258 #endif
00259 #if defined(PF_ECMA)
00260     /* European Computer Manufacturers protocols */
00261     rb_define_const(rb_cSocket, "PF_ECMA", INTEGER2NUM(PF_ECMA));
00262     /* European Computer Manufacturers protocols */
00263     rb_define_const(rb_mSockConst, "PF_ECMA", INTEGER2NUM(PF_ECMA));
00264 #endif
00265 #if defined(AF_DATAKIT)
00266     /* Datakit protocol */
00267     rb_define_const(rb_cSocket, "AF_DATAKIT", INTEGER2NUM(AF_DATAKIT));
00268     /* Datakit protocol */
00269     rb_define_const(rb_mSockConst, "AF_DATAKIT", INTEGER2NUM(AF_DATAKIT));
00270 #endif
00271 #if defined(PF_DATAKIT)
00272     /* Datakit protocol */
00273     rb_define_const(rb_cSocket, "PF_DATAKIT", INTEGER2NUM(PF_DATAKIT));
00274     /* Datakit protocol */
00275     rb_define_const(rb_mSockConst, "PF_DATAKIT", INTEGER2NUM(PF_DATAKIT));
00276 #endif
00277 #if defined(AF_CCITT)
00278     /* CCITT (now ITU-T) protocols */
00279     rb_define_const(rb_cSocket, "AF_CCITT", INTEGER2NUM(AF_CCITT));
00280     /* CCITT (now ITU-T) protocols */
00281     rb_define_const(rb_mSockConst, "AF_CCITT", INTEGER2NUM(AF_CCITT));
00282 #endif
00283 #if defined(PF_CCITT)
00284     /* CCITT (now ITU-T) protocols */
00285     rb_define_const(rb_cSocket, "PF_CCITT", INTEGER2NUM(PF_CCITT));
00286     /* CCITT (now ITU-T) protocols */
00287     rb_define_const(rb_mSockConst, "PF_CCITT", INTEGER2NUM(PF_CCITT));
00288 #endif
00289 #if defined(AF_SNA)
00290     /* IBM SNA protocol */
00291     rb_define_const(rb_cSocket, "AF_SNA", INTEGER2NUM(AF_SNA));
00292     /* IBM SNA protocol */
00293     rb_define_const(rb_mSockConst, "AF_SNA", INTEGER2NUM(AF_SNA));
00294 #endif
00295 #if defined(PF_SNA)
00296     /* IBM SNA protocol */
00297     rb_define_const(rb_cSocket, "PF_SNA", INTEGER2NUM(PF_SNA));
00298     /* IBM SNA protocol */
00299     rb_define_const(rb_mSockConst, "PF_SNA", INTEGER2NUM(PF_SNA));
00300 #endif
00301 #if defined(AF_DEC)
00302     /* DECnet protocol */
00303     rb_define_const(rb_cSocket, "AF_DEC", INTEGER2NUM(AF_DEC));
00304     /* DECnet protocol */
00305     rb_define_const(rb_mSockConst, "AF_DEC", INTEGER2NUM(AF_DEC));
00306 #endif
00307 #if defined(PF_DEC)
00308     /* DECnet protocol */
00309     rb_define_const(rb_cSocket, "PF_DEC", INTEGER2NUM(PF_DEC));
00310     /* DECnet protocol */
00311     rb_define_const(rb_mSockConst, "PF_DEC", INTEGER2NUM(PF_DEC));
00312 #endif
00313 #if defined(AF_DLI)
00314     /* DEC Direct Data Link Interface protocol */
00315     rb_define_const(rb_cSocket, "AF_DLI", INTEGER2NUM(AF_DLI));
00316     /* DEC Direct Data Link Interface protocol */
00317     rb_define_const(rb_mSockConst, "AF_DLI", INTEGER2NUM(AF_DLI));
00318 #endif
00319 #if defined(PF_DLI)
00320     /* DEC Direct Data Link Interface protocol */
00321     rb_define_const(rb_cSocket, "PF_DLI", INTEGER2NUM(PF_DLI));
00322     /* DEC Direct Data Link Interface protocol */
00323     rb_define_const(rb_mSockConst, "PF_DLI", INTEGER2NUM(PF_DLI));
00324 #endif
00325 #if defined(AF_LAT)
00326     /* Local Area Transport protocol */
00327     rb_define_const(rb_cSocket, "AF_LAT", INTEGER2NUM(AF_LAT));
00328     /* Local Area Transport protocol */
00329     rb_define_const(rb_mSockConst, "AF_LAT", INTEGER2NUM(AF_LAT));
00330 #endif
00331 #if defined(PF_LAT)
00332     /* Local Area Transport protocol */
00333     rb_define_const(rb_cSocket, "PF_LAT", INTEGER2NUM(PF_LAT));
00334     /* Local Area Transport protocol */
00335     rb_define_const(rb_mSockConst, "PF_LAT", INTEGER2NUM(PF_LAT));
00336 #endif
00337 #if defined(AF_HYLINK)
00338     /* NSC Hyperchannel protocol */
00339     rb_define_const(rb_cSocket, "AF_HYLINK", INTEGER2NUM(AF_HYLINK));
00340     /* NSC Hyperchannel protocol */
00341     rb_define_const(rb_mSockConst, "AF_HYLINK", INTEGER2NUM(AF_HYLINK));
00342 #endif
00343 #if defined(PF_HYLINK)
00344     /* NSC Hyperchannel protocol */
00345     rb_define_const(rb_cSocket, "PF_HYLINK", INTEGER2NUM(PF_HYLINK));
00346     /* NSC Hyperchannel protocol */
00347     rb_define_const(rb_mSockConst, "PF_HYLINK", INTEGER2NUM(PF_HYLINK));
00348 #endif
00349 #if defined(AF_ROUTE)
00350     /* Internal routing protocol */
00351     rb_define_const(rb_cSocket, "AF_ROUTE", INTEGER2NUM(AF_ROUTE));
00352     /* Internal routing protocol */
00353     rb_define_const(rb_mSockConst, "AF_ROUTE", INTEGER2NUM(AF_ROUTE));
00354 #endif
00355 #if defined(PF_ROUTE)
00356     /* Internal routing protocol */
00357     rb_define_const(rb_cSocket, "PF_ROUTE", INTEGER2NUM(PF_ROUTE));
00358     /* Internal routing protocol */
00359     rb_define_const(rb_mSockConst, "PF_ROUTE", INTEGER2NUM(PF_ROUTE));
00360 #endif
00361 #if defined(AF_LINK)
00362     /* Link layer interface */
00363     rb_define_const(rb_cSocket, "AF_LINK", INTEGER2NUM(AF_LINK));
00364     /* Link layer interface */
00365     rb_define_const(rb_mSockConst, "AF_LINK", INTEGER2NUM(AF_LINK));
00366 #endif
00367 #if defined(PF_LINK)
00368     /* Link layer interface */
00369     rb_define_const(rb_cSocket, "PF_LINK", INTEGER2NUM(PF_LINK));
00370     /* Link layer interface */
00371     rb_define_const(rb_mSockConst, "PF_LINK", INTEGER2NUM(PF_LINK));
00372 #endif
00373 #if defined(AF_COIP)
00374     /* Connection-oriented IP */
00375     rb_define_const(rb_cSocket, "AF_COIP", INTEGER2NUM(AF_COIP));
00376     /* Connection-oriented IP */
00377     rb_define_const(rb_mSockConst, "AF_COIP", INTEGER2NUM(AF_COIP));
00378 #endif
00379 #if defined(PF_COIP)
00380     /* Connection-oriented IP */
00381     rb_define_const(rb_cSocket, "PF_COIP", INTEGER2NUM(PF_COIP));
00382     /* Connection-oriented IP */
00383     rb_define_const(rb_mSockConst, "PF_COIP", INTEGER2NUM(PF_COIP));
00384 #endif
00385 #if defined(AF_CNT)
00386     /* Computer Network Technology */
00387     rb_define_const(rb_cSocket, "AF_CNT", INTEGER2NUM(AF_CNT));
00388     /* Computer Network Technology */
00389     rb_define_const(rb_mSockConst, "AF_CNT", INTEGER2NUM(AF_CNT));
00390 #endif
00391 #if defined(PF_CNT)
00392     /* Computer Network Technology */
00393     rb_define_const(rb_cSocket, "PF_CNT", INTEGER2NUM(PF_CNT));
00394     /* Computer Network Technology */
00395     rb_define_const(rb_mSockConst, "PF_CNT", INTEGER2NUM(PF_CNT));
00396 #endif
00397 #if defined(AF_SIP)
00398     /* Simple Internet Protocol */
00399     rb_define_const(rb_cSocket, "AF_SIP", INTEGER2NUM(AF_SIP));
00400     /* Simple Internet Protocol */
00401     rb_define_const(rb_mSockConst, "AF_SIP", INTEGER2NUM(AF_SIP));
00402 #endif
00403 #if defined(PF_SIP)
00404     /* Simple Internet Protocol */
00405     rb_define_const(rb_cSocket, "PF_SIP", INTEGER2NUM(PF_SIP));
00406     /* Simple Internet Protocol */
00407     rb_define_const(rb_mSockConst, "PF_SIP", INTEGER2NUM(PF_SIP));
00408 #endif
00409 #if defined(AF_NDRV)
00410     /* Network driver raw access */
00411     rb_define_const(rb_cSocket, "AF_NDRV", INTEGER2NUM(AF_NDRV));
00412     /* Network driver raw access */
00413     rb_define_const(rb_mSockConst, "AF_NDRV", INTEGER2NUM(AF_NDRV));
00414 #endif
00415 #if defined(PF_NDRV)
00416     /* Network driver raw access */
00417     rb_define_const(rb_cSocket, "PF_NDRV", INTEGER2NUM(PF_NDRV));
00418     /* Network driver raw access */
00419     rb_define_const(rb_mSockConst, "PF_NDRV", INTEGER2NUM(PF_NDRV));
00420 #endif
00421 #if defined(AF_ISDN)
00422     /* Integrated Services Digital Network */
00423     rb_define_const(rb_cSocket, "AF_ISDN", INTEGER2NUM(AF_ISDN));
00424     /* Integrated Services Digital Network */
00425     rb_define_const(rb_mSockConst, "AF_ISDN", INTEGER2NUM(AF_ISDN));
00426 #endif
00427 #if defined(PF_ISDN)
00428     /* Integrated Services Digital Network */
00429     rb_define_const(rb_cSocket, "PF_ISDN", INTEGER2NUM(PF_ISDN));
00430     /* Integrated Services Digital Network */
00431     rb_define_const(rb_mSockConst, "PF_ISDN", INTEGER2NUM(PF_ISDN));
00432 #endif
00433 #if defined(AF_NATM)
00434     /* Native ATM access */
00435     rb_define_const(rb_cSocket, "AF_NATM", INTEGER2NUM(AF_NATM));
00436     /* Native ATM access */
00437     rb_define_const(rb_mSockConst, "AF_NATM", INTEGER2NUM(AF_NATM));
00438 #endif
00439 #if defined(PF_NATM)
00440     /* Native ATM access */
00441     rb_define_const(rb_cSocket, "PF_NATM", INTEGER2NUM(PF_NATM));
00442     /* Native ATM access */
00443     rb_define_const(rb_mSockConst, "PF_NATM", INTEGER2NUM(PF_NATM));
00444 #endif
00445 #if defined(AF_SYSTEM)
00446     /*  */
00447     rb_define_const(rb_cSocket, "AF_SYSTEM", INTEGER2NUM(AF_SYSTEM));
00448     /*  */
00449     rb_define_const(rb_mSockConst, "AF_SYSTEM", INTEGER2NUM(AF_SYSTEM));
00450 #endif
00451 #if defined(PF_SYSTEM)
00452     /*  */
00453     rb_define_const(rb_cSocket, "PF_SYSTEM", INTEGER2NUM(PF_SYSTEM));
00454     /*  */
00455     rb_define_const(rb_mSockConst, "PF_SYSTEM", INTEGER2NUM(PF_SYSTEM));
00456 #endif
00457 #if defined(AF_NETBIOS)
00458     /* NetBIOS */
00459     rb_define_const(rb_cSocket, "AF_NETBIOS", INTEGER2NUM(AF_NETBIOS));
00460     /* NetBIOS */
00461     rb_define_const(rb_mSockConst, "AF_NETBIOS", INTEGER2NUM(AF_NETBIOS));
00462 #endif
00463 #if defined(PF_NETBIOS)
00464     /* NetBIOS */
00465     rb_define_const(rb_cSocket, "PF_NETBIOS", INTEGER2NUM(PF_NETBIOS));
00466     /* NetBIOS */
00467     rb_define_const(rb_mSockConst, "PF_NETBIOS", INTEGER2NUM(PF_NETBIOS));
00468 #endif
00469 #if defined(AF_PPP)
00470     /* Point-to-Point Protocol */
00471     rb_define_const(rb_cSocket, "AF_PPP", INTEGER2NUM(AF_PPP));
00472     /* Point-to-Point Protocol */
00473     rb_define_const(rb_mSockConst, "AF_PPP", INTEGER2NUM(AF_PPP));
00474 #endif
00475 #if defined(PF_PPP)
00476     /* Point-to-Point Protocol */
00477     rb_define_const(rb_cSocket, "PF_PPP", INTEGER2NUM(PF_PPP));
00478     /* Point-to-Point Protocol */
00479     rb_define_const(rb_mSockConst, "PF_PPP", INTEGER2NUM(PF_PPP));
00480 #endif
00481 #if defined(AF_ATM)
00482     /* Asynchronous Transfer Mode */
00483     rb_define_const(rb_cSocket, "AF_ATM", INTEGER2NUM(AF_ATM));
00484     /* Asynchronous Transfer Mode */
00485     rb_define_const(rb_mSockConst, "AF_ATM", INTEGER2NUM(AF_ATM));
00486 #endif
00487 #if defined(PF_ATM)
00488     /* Asynchronous Transfer Mode */
00489     rb_define_const(rb_cSocket, "PF_ATM", INTEGER2NUM(PF_ATM));
00490     /* Asynchronous Transfer Mode */
00491     rb_define_const(rb_mSockConst, "PF_ATM", INTEGER2NUM(PF_ATM));
00492 #endif
00493 #if defined(AF_NETGRAPH)
00494     /* Netgraph sockets */
00495     rb_define_const(rb_cSocket, "AF_NETGRAPH", INTEGER2NUM(AF_NETGRAPH));
00496     /* Netgraph sockets */
00497     rb_define_const(rb_mSockConst, "AF_NETGRAPH", INTEGER2NUM(AF_NETGRAPH));
00498 #endif
00499 #if defined(PF_NETGRAPH)
00500     /* Netgraph sockets */
00501     rb_define_const(rb_cSocket, "PF_NETGRAPH", INTEGER2NUM(PF_NETGRAPH));
00502     /* Netgraph sockets */
00503     rb_define_const(rb_mSockConst, "PF_NETGRAPH", INTEGER2NUM(PF_NETGRAPH));
00504 #endif
00505 #if defined(AF_MAX)
00506     /* Maximum address family for this platform */
00507     rb_define_const(rb_cSocket, "AF_MAX", INTEGER2NUM(AF_MAX));
00508     /* Maximum address family for this platform */
00509     rb_define_const(rb_mSockConst, "AF_MAX", INTEGER2NUM(AF_MAX));
00510 #endif
00511 #if defined(PF_MAX)
00512     /* Maximum address family for this platform */
00513     rb_define_const(rb_cSocket, "PF_MAX", INTEGER2NUM(PF_MAX));
00514     /* Maximum address family for this platform */
00515     rb_define_const(rb_mSockConst, "PF_MAX", INTEGER2NUM(PF_MAX));
00516 #endif
00517 #if defined(AF_PACKET)
00518     /* Direct link-layer access */
00519     rb_define_const(rb_cSocket, "AF_PACKET", INTEGER2NUM(AF_PACKET));
00520     /* Direct link-layer access */
00521     rb_define_const(rb_mSockConst, "AF_PACKET", INTEGER2NUM(AF_PACKET));
00522 #endif
00523 #if defined(PF_PACKET)
00524     /* Direct link-layer access */
00525     rb_define_const(rb_cSocket, "PF_PACKET", INTEGER2NUM(PF_PACKET));
00526     /* Direct link-layer access */
00527     rb_define_const(rb_mSockConst, "PF_PACKET", INTEGER2NUM(PF_PACKET));
00528 #endif
00529 #if defined(AF_E164)
00530     /* CCITT (ITU-T) E.164 recommendation */
00531     rb_define_const(rb_cSocket, "AF_E164", INTEGER2NUM(AF_E164));
00532     /* CCITT (ITU-T) E.164 recommendation */
00533     rb_define_const(rb_mSockConst, "AF_E164", INTEGER2NUM(AF_E164));
00534 #endif
00535 #if defined(PF_XTP)
00536     /* eXpress Transfer Protocol */
00537     rb_define_const(rb_cSocket, "PF_XTP", INTEGER2NUM(PF_XTP));
00538     /* eXpress Transfer Protocol */
00539     rb_define_const(rb_mSockConst, "PF_XTP", INTEGER2NUM(PF_XTP));
00540 #endif
00541 #if defined(PF_RTIP)
00542     /*  */
00543     rb_define_const(rb_cSocket, "PF_RTIP", INTEGER2NUM(PF_RTIP));
00544     /*  */
00545     rb_define_const(rb_mSockConst, "PF_RTIP", INTEGER2NUM(PF_RTIP));
00546 #endif
00547 #if defined(PF_PIP)
00548     /*  */
00549     rb_define_const(rb_cSocket, "PF_PIP", INTEGER2NUM(PF_PIP));
00550     /*  */
00551     rb_define_const(rb_mSockConst, "PF_PIP", INTEGER2NUM(PF_PIP));
00552 #endif
00553 #if defined(PF_KEY)
00554     /*  */
00555     rb_define_const(rb_cSocket, "PF_KEY", INTEGER2NUM(PF_KEY));
00556     /*  */
00557     rb_define_const(rb_mSockConst, "PF_KEY", INTEGER2NUM(PF_KEY));
00558 #endif
00559 #if defined(MSG_OOB)
00560     /* Process out-of-band data */
00561     rb_define_const(rb_cSocket, "MSG_OOB", INTEGER2NUM(MSG_OOB));
00562     /* Process out-of-band data */
00563     rb_define_const(rb_mSockConst, "MSG_OOB", INTEGER2NUM(MSG_OOB));
00564 #endif
00565 #if defined(MSG_PEEK)
00566     /* Peek at incoming message */
00567     rb_define_const(rb_cSocket, "MSG_PEEK", INTEGER2NUM(MSG_PEEK));
00568     /* Peek at incoming message */
00569     rb_define_const(rb_mSockConst, "MSG_PEEK", INTEGER2NUM(MSG_PEEK));
00570 #endif
00571 #if defined(MSG_DONTROUTE)
00572     /* Send without using the routing tables */
00573     rb_define_const(rb_cSocket, "MSG_DONTROUTE", INTEGER2NUM(MSG_DONTROUTE));
00574     /* Send without using the routing tables */
00575     rb_define_const(rb_mSockConst, "MSG_DONTROUTE", INTEGER2NUM(MSG_DONTROUTE));
00576 #endif
00577 #if defined(MSG_EOR)
00578     /* Data completes record */
00579     rb_define_const(rb_cSocket, "MSG_EOR", INTEGER2NUM(MSG_EOR));
00580     /* Data completes record */
00581     rb_define_const(rb_mSockConst, "MSG_EOR", INTEGER2NUM(MSG_EOR));
00582 #endif
00583 #if defined(MSG_TRUNC)
00584     /* Data discarded before delivery */
00585     rb_define_const(rb_cSocket, "MSG_TRUNC", INTEGER2NUM(MSG_TRUNC));
00586     /* Data discarded before delivery */
00587     rb_define_const(rb_mSockConst, "MSG_TRUNC", INTEGER2NUM(MSG_TRUNC));
00588 #endif
00589 #if defined(MSG_CTRUNC)
00590     /* Control data lost before delivery */
00591     rb_define_const(rb_cSocket, "MSG_CTRUNC", INTEGER2NUM(MSG_CTRUNC));
00592     /* Control data lost before delivery */
00593     rb_define_const(rb_mSockConst, "MSG_CTRUNC", INTEGER2NUM(MSG_CTRUNC));
00594 #endif
00595 #if defined(MSG_WAITALL)
00596     /* Wait for full request or error */
00597     rb_define_const(rb_cSocket, "MSG_WAITALL", INTEGER2NUM(MSG_WAITALL));
00598     /* Wait for full request or error */
00599     rb_define_const(rb_mSockConst, "MSG_WAITALL", INTEGER2NUM(MSG_WAITALL));
00600 #endif
00601 #if defined(MSG_DONTWAIT)
00602     /* This message should be non-blocking */
00603     rb_define_const(rb_cSocket, "MSG_DONTWAIT", INTEGER2NUM(MSG_DONTWAIT));
00604     /* This message should be non-blocking */
00605     rb_define_const(rb_mSockConst, "MSG_DONTWAIT", INTEGER2NUM(MSG_DONTWAIT));
00606 #endif
00607 #if defined(MSG_EOF)
00608     /* Data completes connection */
00609     rb_define_const(rb_cSocket, "MSG_EOF", INTEGER2NUM(MSG_EOF));
00610     /* Data completes connection */
00611     rb_define_const(rb_mSockConst, "MSG_EOF", INTEGER2NUM(MSG_EOF));
00612 #endif
00613 #if defined(MSG_FLUSH)
00614     /* Start of a hold sequence.  Dumps to so_temp */
00615     rb_define_const(rb_cSocket, "MSG_FLUSH", INTEGER2NUM(MSG_FLUSH));
00616     /* Start of a hold sequence.  Dumps to so_temp */
00617     rb_define_const(rb_mSockConst, "MSG_FLUSH", INTEGER2NUM(MSG_FLUSH));
00618 #endif
00619 #if defined(MSG_HOLD)
00620     /* Hold fragment in so_temp */
00621     rb_define_const(rb_cSocket, "MSG_HOLD", INTEGER2NUM(MSG_HOLD));
00622     /* Hold fragment in so_temp */
00623     rb_define_const(rb_mSockConst, "MSG_HOLD", INTEGER2NUM(MSG_HOLD));
00624 #endif
00625 #if defined(MSG_SEND)
00626     /* Send the packet in so_temp */
00627     rb_define_const(rb_cSocket, "MSG_SEND", INTEGER2NUM(MSG_SEND));
00628     /* Send the packet in so_temp */
00629     rb_define_const(rb_mSockConst, "MSG_SEND", INTEGER2NUM(MSG_SEND));
00630 #endif
00631 #if defined(MSG_HAVEMORE)
00632     /* Data ready to be read */
00633     rb_define_const(rb_cSocket, "MSG_HAVEMORE", INTEGER2NUM(MSG_HAVEMORE));
00634     /* Data ready to be read */
00635     rb_define_const(rb_mSockConst, "MSG_HAVEMORE", INTEGER2NUM(MSG_HAVEMORE));
00636 #endif
00637 #if defined(MSG_RCVMORE)
00638     /* Data remains in the current packet */
00639     rb_define_const(rb_cSocket, "MSG_RCVMORE", INTEGER2NUM(MSG_RCVMORE));
00640     /* Data remains in the current packet */
00641     rb_define_const(rb_mSockConst, "MSG_RCVMORE", INTEGER2NUM(MSG_RCVMORE));
00642 #endif
00643 #if defined(MSG_COMPAT)
00644     /* End of record */
00645     rb_define_const(rb_cSocket, "MSG_COMPAT", INTEGER2NUM(MSG_COMPAT));
00646     /* End of record */
00647     rb_define_const(rb_mSockConst, "MSG_COMPAT", INTEGER2NUM(MSG_COMPAT));
00648 #endif
00649 #if defined(MSG_PROXY)
00650     /* Wait for full request */
00651     rb_define_const(rb_cSocket, "MSG_PROXY", INTEGER2NUM(MSG_PROXY));
00652     /* Wait for full request */
00653     rb_define_const(rb_mSockConst, "MSG_PROXY", INTEGER2NUM(MSG_PROXY));
00654 #endif
00655 #if defined(MSG_FIN)
00656     /*  */
00657     rb_define_const(rb_cSocket, "MSG_FIN", INTEGER2NUM(MSG_FIN));
00658     /*  */
00659     rb_define_const(rb_mSockConst, "MSG_FIN", INTEGER2NUM(MSG_FIN));
00660 #endif
00661 #if defined(MSG_SYN)
00662     /*  */
00663     rb_define_const(rb_cSocket, "MSG_SYN", INTEGER2NUM(MSG_SYN));
00664     /*  */
00665     rb_define_const(rb_mSockConst, "MSG_SYN", INTEGER2NUM(MSG_SYN));
00666 #endif
00667 #if defined(MSG_CONFIRM)
00668     /* Confirm path validity */
00669     rb_define_const(rb_cSocket, "MSG_CONFIRM", INTEGER2NUM(MSG_CONFIRM));
00670     /* Confirm path validity */
00671     rb_define_const(rb_mSockConst, "MSG_CONFIRM", INTEGER2NUM(MSG_CONFIRM));
00672 #endif
00673 #if defined(MSG_RST)
00674     /*  */
00675     rb_define_const(rb_cSocket, "MSG_RST", INTEGER2NUM(MSG_RST));
00676     /*  */
00677     rb_define_const(rb_mSockConst, "MSG_RST", INTEGER2NUM(MSG_RST));
00678 #endif
00679 #if defined(MSG_ERRQUEUE)
00680     /* Fetch message from error queue */
00681     rb_define_const(rb_cSocket, "MSG_ERRQUEUE", INTEGER2NUM(MSG_ERRQUEUE));
00682     /* Fetch message from error queue */
00683     rb_define_const(rb_mSockConst, "MSG_ERRQUEUE", INTEGER2NUM(MSG_ERRQUEUE));
00684 #endif
00685 #if defined(MSG_NOSIGNAL)
00686     /* Do not generate SIGPIPE */
00687     rb_define_const(rb_cSocket, "MSG_NOSIGNAL", INTEGER2NUM(MSG_NOSIGNAL));
00688     /* Do not generate SIGPIPE */
00689     rb_define_const(rb_mSockConst, "MSG_NOSIGNAL", INTEGER2NUM(MSG_NOSIGNAL));
00690 #endif
00691 #if defined(MSG_MORE)
00692     /* Sender will send more */
00693     rb_define_const(rb_cSocket, "MSG_MORE", INTEGER2NUM(MSG_MORE));
00694     /* Sender will send more */
00695     rb_define_const(rb_mSockConst, "MSG_MORE", INTEGER2NUM(MSG_MORE));
00696 #endif
00697 #if defined(MSG_FASTOPEN)
00698     /* Reduce step of the handshake process */
00699     rb_define_const(rb_cSocket, "MSG_FASTOPEN", INTEGER2NUM(MSG_FASTOPEN));
00700     /* Reduce step of the handshake process */
00701     rb_define_const(rb_mSockConst, "MSG_FASTOPEN", INTEGER2NUM(MSG_FASTOPEN));
00702 #endif
00703 #if defined(SOL_SOCKET)
00704     /* Socket-level options */
00705     rb_define_const(rb_cSocket, "SOL_SOCKET", INTEGER2NUM(SOL_SOCKET));
00706     /* Socket-level options */
00707     rb_define_const(rb_mSockConst, "SOL_SOCKET", INTEGER2NUM(SOL_SOCKET));
00708 #endif
00709 #if defined(SOL_IP)
00710     /* IP socket options */
00711     rb_define_const(rb_cSocket, "SOL_IP", INTEGER2NUM(SOL_IP));
00712     /* IP socket options */
00713     rb_define_const(rb_mSockConst, "SOL_IP", INTEGER2NUM(SOL_IP));
00714 #endif
00715 #if defined(SOL_IPX)
00716     /* IPX socket options */
00717     rb_define_const(rb_cSocket, "SOL_IPX", INTEGER2NUM(SOL_IPX));
00718     /* IPX socket options */
00719     rb_define_const(rb_mSockConst, "SOL_IPX", INTEGER2NUM(SOL_IPX));
00720 #endif
00721 #if defined(SOL_AX25)
00722     /* AX.25 socket options */
00723     rb_define_const(rb_cSocket, "SOL_AX25", INTEGER2NUM(SOL_AX25));
00724     /* AX.25 socket options */
00725     rb_define_const(rb_mSockConst, "SOL_AX25", INTEGER2NUM(SOL_AX25));
00726 #endif
00727 #if defined(SOL_ATALK)
00728     /* AppleTalk socket options */
00729     rb_define_const(rb_cSocket, "SOL_ATALK", INTEGER2NUM(SOL_ATALK));
00730     /* AppleTalk socket options */
00731     rb_define_const(rb_mSockConst, "SOL_ATALK", INTEGER2NUM(SOL_ATALK));
00732 #endif
00733 #if defined(SOL_TCP)
00734     /* TCP socket options */
00735     rb_define_const(rb_cSocket, "SOL_TCP", INTEGER2NUM(SOL_TCP));
00736     /* TCP socket options */
00737     rb_define_const(rb_mSockConst, "SOL_TCP", INTEGER2NUM(SOL_TCP));
00738 #endif
00739 #if defined(SOL_UDP)
00740     /* UDP socket options */
00741     rb_define_const(rb_cSocket, "SOL_UDP", INTEGER2NUM(SOL_UDP));
00742     /* UDP socket options */
00743     rb_define_const(rb_mSockConst, "SOL_UDP", INTEGER2NUM(SOL_UDP));
00744 #endif
00745 #if defined(IPPROTO_IP)
00746     /* Dummy protocol for IP */
00747     rb_define_const(rb_cSocket, "IPPROTO_IP", INTEGER2NUM(IPPROTO_IP));
00748     /* Dummy protocol for IP */
00749     rb_define_const(rb_mSockConst, "IPPROTO_IP", INTEGER2NUM(IPPROTO_IP));
00750 #endif
00751 #if defined(IPPROTO_ICMP)
00752     /* Control message protocol */
00753     rb_define_const(rb_cSocket, "IPPROTO_ICMP", INTEGER2NUM(IPPROTO_ICMP));
00754     /* Control message protocol */
00755     rb_define_const(rb_mSockConst, "IPPROTO_ICMP", INTEGER2NUM(IPPROTO_ICMP));
00756 #endif
00757 #if defined(IPPROTO_IGMP)
00758     /* Group Management Protocol */
00759     rb_define_const(rb_cSocket, "IPPROTO_IGMP", INTEGER2NUM(IPPROTO_IGMP));
00760     /* Group Management Protocol */
00761     rb_define_const(rb_mSockConst, "IPPROTO_IGMP", INTEGER2NUM(IPPROTO_IGMP));
00762 #endif
00763 #if defined(IPPROTO_GGP)
00764     /* Gateway to Gateway Protocol */
00765     rb_define_const(rb_cSocket, "IPPROTO_GGP", INTEGER2NUM(IPPROTO_GGP));
00766     /* Gateway to Gateway Protocol */
00767     rb_define_const(rb_mSockConst, "IPPROTO_GGP", INTEGER2NUM(IPPROTO_GGP));
00768 #endif
00769 #if defined(IPPROTO_TCP)
00770     /* TCP */
00771     rb_define_const(rb_cSocket, "IPPROTO_TCP", INTEGER2NUM(IPPROTO_TCP));
00772     /* TCP */
00773     rb_define_const(rb_mSockConst, "IPPROTO_TCP", INTEGER2NUM(IPPROTO_TCP));
00774 #endif
00775 #if defined(IPPROTO_EGP)
00776     /* Exterior Gateway Protocol */
00777     rb_define_const(rb_cSocket, "IPPROTO_EGP", INTEGER2NUM(IPPROTO_EGP));
00778     /* Exterior Gateway Protocol */
00779     rb_define_const(rb_mSockConst, "IPPROTO_EGP", INTEGER2NUM(IPPROTO_EGP));
00780 #endif
00781 #if defined(IPPROTO_PUP)
00782     /* PARC Universal Packet protocol */
00783     rb_define_const(rb_cSocket, "IPPROTO_PUP", INTEGER2NUM(IPPROTO_PUP));
00784     /* PARC Universal Packet protocol */
00785     rb_define_const(rb_mSockConst, "IPPROTO_PUP", INTEGER2NUM(IPPROTO_PUP));
00786 #endif
00787 #if defined(IPPROTO_UDP)
00788     /* UDP */
00789     rb_define_const(rb_cSocket, "IPPROTO_UDP", INTEGER2NUM(IPPROTO_UDP));
00790     /* UDP */
00791     rb_define_const(rb_mSockConst, "IPPROTO_UDP", INTEGER2NUM(IPPROTO_UDP));
00792 #endif
00793 #if defined(IPPROTO_IDP)
00794     /* XNS IDP */
00795     rb_define_const(rb_cSocket, "IPPROTO_IDP", INTEGER2NUM(IPPROTO_IDP));
00796     /* XNS IDP */
00797     rb_define_const(rb_mSockConst, "IPPROTO_IDP", INTEGER2NUM(IPPROTO_IDP));
00798 #endif
00799 #if defined(IPPROTO_HELLO)
00800     /* "hello" routing protocol */
00801     rb_define_const(rb_cSocket, "IPPROTO_HELLO", INTEGER2NUM(IPPROTO_HELLO));
00802     /* "hello" routing protocol */
00803     rb_define_const(rb_mSockConst, "IPPROTO_HELLO", INTEGER2NUM(IPPROTO_HELLO));
00804 #endif
00805 #if defined(IPPROTO_ND)
00806     /* Sun net disk protocol */
00807     rb_define_const(rb_cSocket, "IPPROTO_ND", INTEGER2NUM(IPPROTO_ND));
00808     /* Sun net disk protocol */
00809     rb_define_const(rb_mSockConst, "IPPROTO_ND", INTEGER2NUM(IPPROTO_ND));
00810 #endif
00811 #if defined(IPPROTO_TP)
00812     /* ISO transport protocol class 4 */
00813     rb_define_const(rb_cSocket, "IPPROTO_TP", INTEGER2NUM(IPPROTO_TP));
00814     /* ISO transport protocol class 4 */
00815     rb_define_const(rb_mSockConst, "IPPROTO_TP", INTEGER2NUM(IPPROTO_TP));
00816 #endif
00817 #if defined(IPPROTO_XTP)
00818     /* Xpress Transport Protocol */
00819     rb_define_const(rb_cSocket, "IPPROTO_XTP", INTEGER2NUM(IPPROTO_XTP));
00820     /* Xpress Transport Protocol */
00821     rb_define_const(rb_mSockConst, "IPPROTO_XTP", INTEGER2NUM(IPPROTO_XTP));
00822 #endif
00823 #if defined(IPPROTO_EON)
00824     /* ISO cnlp */
00825     rb_define_const(rb_cSocket, "IPPROTO_EON", INTEGER2NUM(IPPROTO_EON));
00826     /* ISO cnlp */
00827     rb_define_const(rb_mSockConst, "IPPROTO_EON", INTEGER2NUM(IPPROTO_EON));
00828 #endif
00829 #if defined(IPPROTO_BIP)
00830     /*  */
00831     rb_define_const(rb_cSocket, "IPPROTO_BIP", INTEGER2NUM(IPPROTO_BIP));
00832     /*  */
00833     rb_define_const(rb_mSockConst, "IPPROTO_BIP", INTEGER2NUM(IPPROTO_BIP));
00834 #endif
00835 #if defined(IPPROTO_AH)
00836     /* IP6 auth header */
00837     rb_define_const(rb_cSocket, "IPPROTO_AH", INTEGER2NUM(IPPROTO_AH));
00838     /* IP6 auth header */
00839     rb_define_const(rb_mSockConst, "IPPROTO_AH", INTEGER2NUM(IPPROTO_AH));
00840 #endif
00841 #if defined(IPPROTO_DSTOPTS)
00842     /* IP6 destination option */
00843     rb_define_const(rb_cSocket, "IPPROTO_DSTOPTS", INTEGER2NUM(IPPROTO_DSTOPTS));
00844     /* IP6 destination option */
00845     rb_define_const(rb_mSockConst, "IPPROTO_DSTOPTS", INTEGER2NUM(IPPROTO_DSTOPTS));
00846 #endif
00847 #if defined(IPPROTO_ESP)
00848     /* IP6 Encapsulated Security Payload */
00849     rb_define_const(rb_cSocket, "IPPROTO_ESP", INTEGER2NUM(IPPROTO_ESP));
00850     /* IP6 Encapsulated Security Payload */
00851     rb_define_const(rb_mSockConst, "IPPROTO_ESP", INTEGER2NUM(IPPROTO_ESP));
00852 #endif
00853 #if defined(IPPROTO_FRAGMENT)
00854     /* IP6 fragmentation header */
00855     rb_define_const(rb_cSocket, "IPPROTO_FRAGMENT", INTEGER2NUM(IPPROTO_FRAGMENT));
00856     /* IP6 fragmentation header */
00857     rb_define_const(rb_mSockConst, "IPPROTO_FRAGMENT", INTEGER2NUM(IPPROTO_FRAGMENT));
00858 #endif
00859 #if defined(IPPROTO_HOPOPTS)
00860     /* IP6 hop-by-hop options */
00861     rb_define_const(rb_cSocket, "IPPROTO_HOPOPTS", INTEGER2NUM(IPPROTO_HOPOPTS));
00862     /* IP6 hop-by-hop options */
00863     rb_define_const(rb_mSockConst, "IPPROTO_HOPOPTS", INTEGER2NUM(IPPROTO_HOPOPTS));
00864 #endif
00865 #if defined(IPPROTO_ICMPV6)
00866     /* ICMP6 */
00867     rb_define_const(rb_cSocket, "IPPROTO_ICMPV6", INTEGER2NUM(IPPROTO_ICMPV6));
00868     /* ICMP6 */
00869     rb_define_const(rb_mSockConst, "IPPROTO_ICMPV6", INTEGER2NUM(IPPROTO_ICMPV6));
00870 #endif
00871 #if defined(IPPROTO_IPV6)
00872     /* IP6 header */
00873     rb_define_const(rb_cSocket, "IPPROTO_IPV6", INTEGER2NUM(IPPROTO_IPV6));
00874     /* IP6 header */
00875     rb_define_const(rb_mSockConst, "IPPROTO_IPV6", INTEGER2NUM(IPPROTO_IPV6));
00876 #endif
00877 #if defined(IPPROTO_NONE)
00878     /* IP6 no next header */
00879     rb_define_const(rb_cSocket, "IPPROTO_NONE", INTEGER2NUM(IPPROTO_NONE));
00880     /* IP6 no next header */
00881     rb_define_const(rb_mSockConst, "IPPROTO_NONE", INTEGER2NUM(IPPROTO_NONE));
00882 #endif
00883 #if defined(IPPROTO_ROUTING)
00884     /* IP6 routing header */
00885     rb_define_const(rb_cSocket, "IPPROTO_ROUTING", INTEGER2NUM(IPPROTO_ROUTING));
00886     /* IP6 routing header */
00887     rb_define_const(rb_mSockConst, "IPPROTO_ROUTING", INTEGER2NUM(IPPROTO_ROUTING));
00888 #endif
00889 #if defined(IPPROTO_RAW)
00890     /* Raw IP packet */
00891     rb_define_const(rb_cSocket, "IPPROTO_RAW", INTEGER2NUM(IPPROTO_RAW));
00892     /* Raw IP packet */
00893     rb_define_const(rb_mSockConst, "IPPROTO_RAW", INTEGER2NUM(IPPROTO_RAW));
00894 #endif
00895 #if defined(IPPROTO_MAX)
00896     /* Maximum IPPROTO constant */
00897     rb_define_const(rb_cSocket, "IPPROTO_MAX", INTEGER2NUM(IPPROTO_MAX));
00898     /* Maximum IPPROTO constant */
00899     rb_define_const(rb_mSockConst, "IPPROTO_MAX", INTEGER2NUM(IPPROTO_MAX));
00900 #endif
00901 #if defined(IPPORT_RESERVED)
00902     /* Default minimum address for bind or connect */
00903     rb_define_const(rb_cSocket, "IPPORT_RESERVED", INTEGER2NUM(IPPORT_RESERVED));
00904     /* Default minimum address for bind or connect */
00905     rb_define_const(rb_mSockConst, "IPPORT_RESERVED", INTEGER2NUM(IPPORT_RESERVED));
00906 #endif
00907 #if defined(IPPORT_USERRESERVED)
00908     /* Default maximum address for bind or connect */
00909     rb_define_const(rb_cSocket, "IPPORT_USERRESERVED", INTEGER2NUM(IPPORT_USERRESERVED));
00910     /* Default maximum address for bind or connect */
00911     rb_define_const(rb_mSockConst, "IPPORT_USERRESERVED", INTEGER2NUM(IPPORT_USERRESERVED));
00912 #endif
00913 #if defined(INADDR_ANY)
00914     /* A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address */
00915     rb_define_const(rb_cSocket, "INADDR_ANY", INTEGER2NUM(INADDR_ANY));
00916     /* A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address */
00917     rb_define_const(rb_mSockConst, "INADDR_ANY", INTEGER2NUM(INADDR_ANY));
00918 #endif
00919 #if defined(INADDR_BROADCAST)
00920     /* The network broadcast address */
00921     rb_define_const(rb_cSocket, "INADDR_BROADCAST", INTEGER2NUM(INADDR_BROADCAST));
00922     /* The network broadcast address */
00923     rb_define_const(rb_mSockConst, "INADDR_BROADCAST", INTEGER2NUM(INADDR_BROADCAST));
00924 #endif
00925 #if defined(INADDR_LOOPBACK)
00926     /* The loopback address */
00927     rb_define_const(rb_cSocket, "INADDR_LOOPBACK", INTEGER2NUM(INADDR_LOOPBACK));
00928     /* The loopback address */
00929     rb_define_const(rb_mSockConst, "INADDR_LOOPBACK", INTEGER2NUM(INADDR_LOOPBACK));
00930 #endif
00931 #if defined(INADDR_UNSPEC_GROUP)
00932     /* The reserved multicast group */
00933     rb_define_const(rb_cSocket, "INADDR_UNSPEC_GROUP", INTEGER2NUM(INADDR_UNSPEC_GROUP));
00934     /* The reserved multicast group */
00935     rb_define_const(rb_mSockConst, "INADDR_UNSPEC_GROUP", INTEGER2NUM(INADDR_UNSPEC_GROUP));
00936 #endif
00937 #if defined(INADDR_ALLHOSTS_GROUP)
00938     /* Multicast group for all systems on this subset */
00939     rb_define_const(rb_cSocket, "INADDR_ALLHOSTS_GROUP", INTEGER2NUM(INADDR_ALLHOSTS_GROUP));
00940     /* Multicast group for all systems on this subset */
00941     rb_define_const(rb_mSockConst, "INADDR_ALLHOSTS_GROUP", INTEGER2NUM(INADDR_ALLHOSTS_GROUP));
00942 #endif
00943 #if defined(INADDR_MAX_LOCAL_GROUP)
00944     /* The last local network multicast group */
00945     rb_define_const(rb_cSocket, "INADDR_MAX_LOCAL_GROUP", INTEGER2NUM(INADDR_MAX_LOCAL_GROUP));
00946     /* The last local network multicast group */
00947     rb_define_const(rb_mSockConst, "INADDR_MAX_LOCAL_GROUP", INTEGER2NUM(INADDR_MAX_LOCAL_GROUP));
00948 #endif
00949 #if defined(INADDR_NONE)
00950     /* A bitmask for matching no valid IP address */
00951     rb_define_const(rb_cSocket, "INADDR_NONE", INTEGER2NUM(INADDR_NONE));
00952     /* A bitmask for matching no valid IP address */
00953     rb_define_const(rb_mSockConst, "INADDR_NONE", INTEGER2NUM(INADDR_NONE));
00954 #endif
00955 #if defined(IP_OPTIONS)
00956     /* IP options to be included in packets */
00957     rb_define_const(rb_cSocket, "IP_OPTIONS", INTEGER2NUM(IP_OPTIONS));
00958     /* IP options to be included in packets */
00959     rb_define_const(rb_mSockConst, "IP_OPTIONS", INTEGER2NUM(IP_OPTIONS));
00960 #endif
00961 #if defined(IP_HDRINCL)
00962     /* Header is included with data */
00963     rb_define_const(rb_cSocket, "IP_HDRINCL", INTEGER2NUM(IP_HDRINCL));
00964     /* Header is included with data */
00965     rb_define_const(rb_mSockConst, "IP_HDRINCL", INTEGER2NUM(IP_HDRINCL));
00966 #endif
00967 #if defined(IP_TOS)
00968     /* IP type-of-service */
00969     rb_define_const(rb_cSocket, "IP_TOS", INTEGER2NUM(IP_TOS));
00970     /* IP type-of-service */
00971     rb_define_const(rb_mSockConst, "IP_TOS", INTEGER2NUM(IP_TOS));
00972 #endif
00973 #if defined(IP_TTL)
00974     /* IP time-to-live */
00975     rb_define_const(rb_cSocket, "IP_TTL", INTEGER2NUM(IP_TTL));
00976     /* IP time-to-live */
00977     rb_define_const(rb_mSockConst, "IP_TTL", INTEGER2NUM(IP_TTL));
00978 #endif
00979 #if defined(IP_RECVOPTS)
00980     /* Receive all IP options with datagram */
00981     rb_define_const(rb_cSocket, "IP_RECVOPTS", INTEGER2NUM(IP_RECVOPTS));
00982     /* Receive all IP options with datagram */
00983     rb_define_const(rb_mSockConst, "IP_RECVOPTS", INTEGER2NUM(IP_RECVOPTS));
00984 #endif
00985 #if defined(IP_RECVRETOPTS)
00986     /* Receive all IP options for response */
00987     rb_define_const(rb_cSocket, "IP_RECVRETOPTS", INTEGER2NUM(IP_RECVRETOPTS));
00988     /* Receive all IP options for response */
00989     rb_define_const(rb_mSockConst, "IP_RECVRETOPTS", INTEGER2NUM(IP_RECVRETOPTS));
00990 #endif
00991 #if defined(IP_RECVDSTADDR)
00992     /* Receive IP destination address with datagram */
00993     rb_define_const(rb_cSocket, "IP_RECVDSTADDR", INTEGER2NUM(IP_RECVDSTADDR));
00994     /* Receive IP destination address with datagram */
00995     rb_define_const(rb_mSockConst, "IP_RECVDSTADDR", INTEGER2NUM(IP_RECVDSTADDR));
00996 #endif
00997 #if defined(IP_RETOPTS)
00998     /* IP options to be included in datagrams */
00999     rb_define_const(rb_cSocket, "IP_RETOPTS", INTEGER2NUM(IP_RETOPTS));
01000     /* IP options to be included in datagrams */
01001     rb_define_const(rb_mSockConst, "IP_RETOPTS", INTEGER2NUM(IP_RETOPTS));
01002 #endif
01003 #if defined(IP_MINTTL)
01004     /* Minimum TTL allowed for received packets */
01005     rb_define_const(rb_cSocket, "IP_MINTTL", INTEGER2NUM(IP_MINTTL));
01006     /* Minimum TTL allowed for received packets */
01007     rb_define_const(rb_mSockConst, "IP_MINTTL", INTEGER2NUM(IP_MINTTL));
01008 #endif
01009 #if defined(IP_DONTFRAG)
01010     /* Don't fragment packets */
01011     rb_define_const(rb_cSocket, "IP_DONTFRAG", INTEGER2NUM(IP_DONTFRAG));
01012     /* Don't fragment packets */
01013     rb_define_const(rb_mSockConst, "IP_DONTFRAG", INTEGER2NUM(IP_DONTFRAG));
01014 #endif
01015 #if defined(IP_SENDSRCADDR)
01016     /* Source address for outgoing UDP datagrams */
01017     rb_define_const(rb_cSocket, "IP_SENDSRCADDR", INTEGER2NUM(IP_SENDSRCADDR));
01018     /* Source address for outgoing UDP datagrams */
01019     rb_define_const(rb_mSockConst, "IP_SENDSRCADDR", INTEGER2NUM(IP_SENDSRCADDR));
01020 #endif
01021 #if defined(IP_ONESBCAST)
01022     /* Force outgoing broadcast datagrams to have the undirected broadcast address */
01023     rb_define_const(rb_cSocket, "IP_ONESBCAST", INTEGER2NUM(IP_ONESBCAST));
01024     /* Force outgoing broadcast datagrams to have the undirected broadcast address */
01025     rb_define_const(rb_mSockConst, "IP_ONESBCAST", INTEGER2NUM(IP_ONESBCAST));
01026 #endif
01027 #if defined(IP_RECVTTL)
01028     /* Receive IP TTL with datagrams */
01029     rb_define_const(rb_cSocket, "IP_RECVTTL", INTEGER2NUM(IP_RECVTTL));
01030     /* Receive IP TTL with datagrams */
01031     rb_define_const(rb_mSockConst, "IP_RECVTTL", INTEGER2NUM(IP_RECVTTL));
01032 #endif
01033 #if defined(IP_RECVIF)
01034     /* Receive interface information with datagrams */
01035     rb_define_const(rb_cSocket, "IP_RECVIF", INTEGER2NUM(IP_RECVIF));
01036     /* Receive interface information with datagrams */
01037     rb_define_const(rb_mSockConst, "IP_RECVIF", INTEGER2NUM(IP_RECVIF));
01038 #endif
01039 #if defined(IP_RECVSLLA)
01040     /* Receive link-layer address with datagrams */
01041     rb_define_const(rb_cSocket, "IP_RECVSLLA", INTEGER2NUM(IP_RECVSLLA));
01042     /* Receive link-layer address with datagrams */
01043     rb_define_const(rb_mSockConst, "IP_RECVSLLA", INTEGER2NUM(IP_RECVSLLA));
01044 #endif
01045 #if defined(IP_PORTRANGE)
01046     /* Set the port range for sockets with unspecified port numbers */
01047     rb_define_const(rb_cSocket, "IP_PORTRANGE", INTEGER2NUM(IP_PORTRANGE));
01048     /* Set the port range for sockets with unspecified port numbers */
01049     rb_define_const(rb_mSockConst, "IP_PORTRANGE", INTEGER2NUM(IP_PORTRANGE));
01050 #endif
01051 #if defined(IP_MULTICAST_IF)
01052     /* IP multicast interface */
01053     rb_define_const(rb_cSocket, "IP_MULTICAST_IF", INTEGER2NUM(IP_MULTICAST_IF));
01054     /* IP multicast interface */
01055     rb_define_const(rb_mSockConst, "IP_MULTICAST_IF", INTEGER2NUM(IP_MULTICAST_IF));
01056 #endif
01057 #if defined(IP_MULTICAST_TTL)
01058     /* IP multicast TTL */
01059     rb_define_const(rb_cSocket, "IP_MULTICAST_TTL", INTEGER2NUM(IP_MULTICAST_TTL));
01060     /* IP multicast TTL */
01061     rb_define_const(rb_mSockConst, "IP_MULTICAST_TTL", INTEGER2NUM(IP_MULTICAST_TTL));
01062 #endif
01063 #if defined(IP_MULTICAST_LOOP)
01064     /* IP multicast loopback */
01065     rb_define_const(rb_cSocket, "IP_MULTICAST_LOOP", INTEGER2NUM(IP_MULTICAST_LOOP));
01066     /* IP multicast loopback */
01067     rb_define_const(rb_mSockConst, "IP_MULTICAST_LOOP", INTEGER2NUM(IP_MULTICAST_LOOP));
01068 #endif
01069 #if defined(IP_ADD_MEMBERSHIP)
01070     /* Add a multicast group membership */
01071     rb_define_const(rb_cSocket, "IP_ADD_MEMBERSHIP", INTEGER2NUM(IP_ADD_MEMBERSHIP));
01072     /* Add a multicast group membership */
01073     rb_define_const(rb_mSockConst, "IP_ADD_MEMBERSHIP", INTEGER2NUM(IP_ADD_MEMBERSHIP));
01074 #endif
01075 #if defined(IP_DROP_MEMBERSHIP)
01076     /* Drop a multicast group membership */
01077     rb_define_const(rb_cSocket, "IP_DROP_MEMBERSHIP", INTEGER2NUM(IP_DROP_MEMBERSHIP));
01078     /* Drop a multicast group membership */
01079     rb_define_const(rb_mSockConst, "IP_DROP_MEMBERSHIP", INTEGER2NUM(IP_DROP_MEMBERSHIP));
01080 #endif
01081 #if defined(IP_DEFAULT_MULTICAST_TTL)
01082     /* Default multicast TTL */
01083     rb_define_const(rb_cSocket, "IP_DEFAULT_MULTICAST_TTL", INTEGER2NUM(IP_DEFAULT_MULTICAST_TTL));
01084     /* Default multicast TTL */
01085     rb_define_const(rb_mSockConst, "IP_DEFAULT_MULTICAST_TTL", INTEGER2NUM(IP_DEFAULT_MULTICAST_TTL));
01086 #endif
01087 #if defined(IP_DEFAULT_MULTICAST_LOOP)
01088     /* Default multicast loopback */
01089     rb_define_const(rb_cSocket, "IP_DEFAULT_MULTICAST_LOOP", INTEGER2NUM(IP_DEFAULT_MULTICAST_LOOP));
01090     /* Default multicast loopback */
01091     rb_define_const(rb_mSockConst, "IP_DEFAULT_MULTICAST_LOOP", INTEGER2NUM(IP_DEFAULT_MULTICAST_LOOP));
01092 #endif
01093 #if defined(IP_MAX_MEMBERSHIPS)
01094     /* Maximum number multicast groups a socket can join */
01095     rb_define_const(rb_cSocket, "IP_MAX_MEMBERSHIPS", INTEGER2NUM(IP_MAX_MEMBERSHIPS));
01096     /* Maximum number multicast groups a socket can join */
01097     rb_define_const(rb_mSockConst, "IP_MAX_MEMBERSHIPS", INTEGER2NUM(IP_MAX_MEMBERSHIPS));
01098 #endif
01099 #if defined(IP_ROUTER_ALERT)
01100     /* Notify transit routers to more closely examine the contents of an IP packet */
01101     rb_define_const(rb_cSocket, "IP_ROUTER_ALERT", INTEGER2NUM(IP_ROUTER_ALERT));
01102     /* Notify transit routers to more closely examine the contents of an IP packet */
01103     rb_define_const(rb_mSockConst, "IP_ROUTER_ALERT", INTEGER2NUM(IP_ROUTER_ALERT));
01104 #endif
01105 #if defined(IP_PKTINFO)
01106     /* Receive packet information with datagrams */
01107     rb_define_const(rb_cSocket, "IP_PKTINFO", INTEGER2NUM(IP_PKTINFO));
01108     /* Receive packet information with datagrams */
01109     rb_define_const(rb_mSockConst, "IP_PKTINFO", INTEGER2NUM(IP_PKTINFO));
01110 #endif
01111 #if defined(IP_PKTOPTIONS)
01112     /* Receive packet options with datagrams */
01113     rb_define_const(rb_cSocket, "IP_PKTOPTIONS", INTEGER2NUM(IP_PKTOPTIONS));
01114     /* Receive packet options with datagrams */
01115     rb_define_const(rb_mSockConst, "IP_PKTOPTIONS", INTEGER2NUM(IP_PKTOPTIONS));
01116 #endif
01117 #if defined(IP_MTU_DISCOVER)
01118     /* Path MTU discovery */
01119     rb_define_const(rb_cSocket, "IP_MTU_DISCOVER", INTEGER2NUM(IP_MTU_DISCOVER));
01120     /* Path MTU discovery */
01121     rb_define_const(rb_mSockConst, "IP_MTU_DISCOVER", INTEGER2NUM(IP_MTU_DISCOVER));
01122 #endif
01123 #if defined(IP_RECVERR)
01124     /* Enable extended reliable error message passing */
01125     rb_define_const(rb_cSocket, "IP_RECVERR", INTEGER2NUM(IP_RECVERR));
01126     /* Enable extended reliable error message passing */
01127     rb_define_const(rb_mSockConst, "IP_RECVERR", INTEGER2NUM(IP_RECVERR));
01128 #endif
01129 #if defined(IP_RECVTOS)
01130     /* Receive TOS with incoming packets */
01131     rb_define_const(rb_cSocket, "IP_RECVTOS", INTEGER2NUM(IP_RECVTOS));
01132     /* Receive TOS with incoming packets */
01133     rb_define_const(rb_mSockConst, "IP_RECVTOS", INTEGER2NUM(IP_RECVTOS));
01134 #endif
01135 #if defined(IP_MTU)
01136     /* The Maximum Transmission Unit of the socket */
01137     rb_define_const(rb_cSocket, "IP_MTU", INTEGER2NUM(IP_MTU));
01138     /* The Maximum Transmission Unit of the socket */
01139     rb_define_const(rb_mSockConst, "IP_MTU", INTEGER2NUM(IP_MTU));
01140 #endif
01141 #if defined(IP_FREEBIND)
01142     /* Allow binding to nonexistent IP addresses */
01143     rb_define_const(rb_cSocket, "IP_FREEBIND", INTEGER2NUM(IP_FREEBIND));
01144     /* Allow binding to nonexistent IP addresses */
01145     rb_define_const(rb_mSockConst, "IP_FREEBIND", INTEGER2NUM(IP_FREEBIND));
01146 #endif
01147 #if defined(IP_IPSEC_POLICY)
01148     /* IPsec security policy */
01149     rb_define_const(rb_cSocket, "IP_IPSEC_POLICY", INTEGER2NUM(IP_IPSEC_POLICY));
01150     /* IPsec security policy */
01151     rb_define_const(rb_mSockConst, "IP_IPSEC_POLICY", INTEGER2NUM(IP_IPSEC_POLICY));
01152 #endif
01153 #if defined(IP_XFRM_POLICY)
01154     /*  */
01155     rb_define_const(rb_cSocket, "IP_XFRM_POLICY", INTEGER2NUM(IP_XFRM_POLICY));
01156     /*  */
01157     rb_define_const(rb_mSockConst, "IP_XFRM_POLICY", INTEGER2NUM(IP_XFRM_POLICY));
01158 #endif
01159 #if defined(IP_PASSSEC)
01160     /* Retrieve security context with datagram */
01161     rb_define_const(rb_cSocket, "IP_PASSSEC", INTEGER2NUM(IP_PASSSEC));
01162     /* Retrieve security context with datagram */
01163     rb_define_const(rb_mSockConst, "IP_PASSSEC", INTEGER2NUM(IP_PASSSEC));
01164 #endif
01165 #if defined(IP_PMTUDISC_DONT)
01166     /* Never send DF frames */
01167     rb_define_const(rb_cSocket, "IP_PMTUDISC_DONT", INTEGER2NUM(IP_PMTUDISC_DONT));
01168     /* Never send DF frames */
01169     rb_define_const(rb_mSockConst, "IP_PMTUDISC_DONT", INTEGER2NUM(IP_PMTUDISC_DONT));
01170 #endif
01171 #if defined(IP_PMTUDISC_WANT)
01172     /* Use per-route hints */
01173     rb_define_const(rb_cSocket, "IP_PMTUDISC_WANT", INTEGER2NUM(IP_PMTUDISC_WANT));
01174     /* Use per-route hints */
01175     rb_define_const(rb_mSockConst, "IP_PMTUDISC_WANT", INTEGER2NUM(IP_PMTUDISC_WANT));
01176 #endif
01177 #if defined(IP_PMTUDISC_DO)
01178     /* Always send DF frames */
01179     rb_define_const(rb_cSocket, "IP_PMTUDISC_DO", INTEGER2NUM(IP_PMTUDISC_DO));
01180     /* Always send DF frames */
01181     rb_define_const(rb_mSockConst, "IP_PMTUDISC_DO", INTEGER2NUM(IP_PMTUDISC_DO));
01182 #endif
01183 #if defined(IP_UNBLOCK_SOURCE)
01184     /* Unblock IPv4 multicast packets with a give source address */
01185     rb_define_const(rb_cSocket, "IP_UNBLOCK_SOURCE", INTEGER2NUM(IP_UNBLOCK_SOURCE));
01186     /* Unblock IPv4 multicast packets with a give source address */
01187     rb_define_const(rb_mSockConst, "IP_UNBLOCK_SOURCE", INTEGER2NUM(IP_UNBLOCK_SOURCE));
01188 #endif
01189 #if defined(IP_BLOCK_SOURCE)
01190     /* Block IPv4 multicast packets with a give source address */
01191     rb_define_const(rb_cSocket, "IP_BLOCK_SOURCE", INTEGER2NUM(IP_BLOCK_SOURCE));
01192     /* Block IPv4 multicast packets with a give source address */
01193     rb_define_const(rb_mSockConst, "IP_BLOCK_SOURCE", INTEGER2NUM(IP_BLOCK_SOURCE));
01194 #endif
01195 #if defined(IP_ADD_SOURCE_MEMBERSHIP)
01196     /* Add a multicast group membership */
01197     rb_define_const(rb_cSocket, "IP_ADD_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_ADD_SOURCE_MEMBERSHIP));
01198     /* Add a multicast group membership */
01199     rb_define_const(rb_mSockConst, "IP_ADD_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_ADD_SOURCE_MEMBERSHIP));
01200 #endif
01201 #if defined(IP_DROP_SOURCE_MEMBERSHIP)
01202     /* Drop a multicast group membership */
01203     rb_define_const(rb_cSocket, "IP_DROP_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_DROP_SOURCE_MEMBERSHIP));
01204     /* Drop a multicast group membership */
01205     rb_define_const(rb_mSockConst, "IP_DROP_SOURCE_MEMBERSHIP", INTEGER2NUM(IP_DROP_SOURCE_MEMBERSHIP));
01206 #endif
01207 #if defined(IP_MSFILTER)
01208     /* Multicast source filtering */
01209     rb_define_const(rb_cSocket, "IP_MSFILTER", INTEGER2NUM(IP_MSFILTER));
01210     /* Multicast source filtering */
01211     rb_define_const(rb_mSockConst, "IP_MSFILTER", INTEGER2NUM(IP_MSFILTER));
01212 #endif
01213 #if defined(MCAST_JOIN_GROUP)
01214     /* Join a multicast group */
01215     rb_define_const(rb_cSocket, "MCAST_JOIN_GROUP", INTEGER2NUM(MCAST_JOIN_GROUP));
01216     /* Join a multicast group */
01217     rb_define_const(rb_mSockConst, "MCAST_JOIN_GROUP", INTEGER2NUM(MCAST_JOIN_GROUP));
01218 #endif
01219 #if defined(MCAST_BLOCK_SOURCE)
01220     /* Block multicast packets from this source */
01221     rb_define_const(rb_cSocket, "MCAST_BLOCK_SOURCE", INTEGER2NUM(MCAST_BLOCK_SOURCE));
01222     /* Block multicast packets from this source */
01223     rb_define_const(rb_mSockConst, "MCAST_BLOCK_SOURCE", INTEGER2NUM(MCAST_BLOCK_SOURCE));
01224 #endif
01225 #if defined(MCAST_UNBLOCK_SOURCE)
01226     /* Unblock multicast packets from this source */
01227     rb_define_const(rb_cSocket, "MCAST_UNBLOCK_SOURCE", INTEGER2NUM(MCAST_UNBLOCK_SOURCE));
01228     /* Unblock multicast packets from this source */
01229     rb_define_const(rb_mSockConst, "MCAST_UNBLOCK_SOURCE", INTEGER2NUM(MCAST_UNBLOCK_SOURCE));
01230 #endif
01231 #if defined(MCAST_LEAVE_GROUP)
01232     /* Leave a multicast group */
01233     rb_define_const(rb_cSocket, "MCAST_LEAVE_GROUP", INTEGER2NUM(MCAST_LEAVE_GROUP));
01234     /* Leave a multicast group */
01235     rb_define_const(rb_mSockConst, "MCAST_LEAVE_GROUP", INTEGER2NUM(MCAST_LEAVE_GROUP));
01236 #endif
01237 #if defined(MCAST_JOIN_SOURCE_GROUP)
01238     /* Join a multicast source group */
01239     rb_define_const(rb_cSocket, "MCAST_JOIN_SOURCE_GROUP", INTEGER2NUM(MCAST_JOIN_SOURCE_GROUP));
01240     /* Join a multicast source group */
01241     rb_define_const(rb_mSockConst, "MCAST_JOIN_SOURCE_GROUP", INTEGER2NUM(MCAST_JOIN_SOURCE_GROUP));
01242 #endif
01243 #if defined(MCAST_LEAVE_SOURCE_GROUP)
01244     /* Leave a multicast source group */
01245     rb_define_const(rb_cSocket, "MCAST_LEAVE_SOURCE_GROUP", INTEGER2NUM(MCAST_LEAVE_SOURCE_GROUP));
01246     /* Leave a multicast source group */
01247     rb_define_const(rb_mSockConst, "MCAST_LEAVE_SOURCE_GROUP", INTEGER2NUM(MCAST_LEAVE_SOURCE_GROUP));
01248 #endif
01249 #if defined(MCAST_MSFILTER)
01250     /* Multicast source filtering */
01251     rb_define_const(rb_cSocket, "MCAST_MSFILTER", INTEGER2NUM(MCAST_MSFILTER));
01252     /* Multicast source filtering */
01253     rb_define_const(rb_mSockConst, "MCAST_MSFILTER", INTEGER2NUM(MCAST_MSFILTER));
01254 #endif
01255 #if defined(MCAST_EXCLUDE)
01256     /* Exclusive multicast source filter */
01257     rb_define_const(rb_cSocket, "MCAST_EXCLUDE", INTEGER2NUM(MCAST_EXCLUDE));
01258     /* Exclusive multicast source filter */
01259     rb_define_const(rb_mSockConst, "MCAST_EXCLUDE", INTEGER2NUM(MCAST_EXCLUDE));
01260 #endif
01261 #if defined(MCAST_INCLUDE)
01262     /* Inclusive multicast source filter */
01263     rb_define_const(rb_cSocket, "MCAST_INCLUDE", INTEGER2NUM(MCAST_INCLUDE));
01264     /* Inclusive multicast source filter */
01265     rb_define_const(rb_mSockConst, "MCAST_INCLUDE", INTEGER2NUM(MCAST_INCLUDE));
01266 #endif
01267 #if defined(SO_DEBUG)
01268     /* Debug info recording */
01269     rb_define_const(rb_cSocket, "SO_DEBUG", INTEGER2NUM(SO_DEBUG));
01270     /* Debug info recording */
01271     rb_define_const(rb_mSockConst, "SO_DEBUG", INTEGER2NUM(SO_DEBUG));
01272 #endif
01273 #if defined(SO_REUSEADDR)
01274     /* Allow local address reuse */
01275     rb_define_const(rb_cSocket, "SO_REUSEADDR", INTEGER2NUM(SO_REUSEADDR));
01276     /* Allow local address reuse */
01277     rb_define_const(rb_mSockConst, "SO_REUSEADDR", INTEGER2NUM(SO_REUSEADDR));
01278 #endif
01279 #if defined(SO_REUSEPORT)
01280     /* Allow local address and port reuse */
01281     rb_define_const(rb_cSocket, "SO_REUSEPORT", INTEGER2NUM(SO_REUSEPORT));
01282     /* Allow local address and port reuse */
01283     rb_define_const(rb_mSockConst, "SO_REUSEPORT", INTEGER2NUM(SO_REUSEPORT));
01284 #endif
01285 #if defined(SO_TYPE)
01286     /* Get the socket type */
01287     rb_define_const(rb_cSocket, "SO_TYPE", INTEGER2NUM(SO_TYPE));
01288     /* Get the socket type */
01289     rb_define_const(rb_mSockConst, "SO_TYPE", INTEGER2NUM(SO_TYPE));
01290 #endif
01291 #if defined(SO_ERROR)
01292     /* Get and clear the error status */
01293     rb_define_const(rb_cSocket, "SO_ERROR", INTEGER2NUM(SO_ERROR));
01294     /* Get and clear the error status */
01295     rb_define_const(rb_mSockConst, "SO_ERROR", INTEGER2NUM(SO_ERROR));
01296 #endif
01297 #if defined(SO_DONTROUTE)
01298     /* Use interface addresses */
01299     rb_define_const(rb_cSocket, "SO_DONTROUTE", INTEGER2NUM(SO_DONTROUTE));
01300     /* Use interface addresses */
01301     rb_define_const(rb_mSockConst, "SO_DONTROUTE", INTEGER2NUM(SO_DONTROUTE));
01302 #endif
01303 #if defined(SO_BROADCAST)
01304     /* Permit sending of broadcast messages */
01305     rb_define_const(rb_cSocket, "SO_BROADCAST", INTEGER2NUM(SO_BROADCAST));
01306     /* Permit sending of broadcast messages */
01307     rb_define_const(rb_mSockConst, "SO_BROADCAST", INTEGER2NUM(SO_BROADCAST));
01308 #endif
01309 #if defined(SO_SNDBUF)
01310     /* Send buffer size */
01311     rb_define_const(rb_cSocket, "SO_SNDBUF", INTEGER2NUM(SO_SNDBUF));
01312     /* Send buffer size */
01313     rb_define_const(rb_mSockConst, "SO_SNDBUF", INTEGER2NUM(SO_SNDBUF));
01314 #endif
01315 #if defined(SO_RCVBUF)
01316     /* Receive buffer size */
01317     rb_define_const(rb_cSocket, "SO_RCVBUF", INTEGER2NUM(SO_RCVBUF));
01318     /* Receive buffer size */
01319     rb_define_const(rb_mSockConst, "SO_RCVBUF", INTEGER2NUM(SO_RCVBUF));
01320 #endif
01321 #if defined(SO_KEEPALIVE)
01322     /* Keep connections alive */
01323     rb_define_const(rb_cSocket, "SO_KEEPALIVE", INTEGER2NUM(SO_KEEPALIVE));
01324     /* Keep connections alive */
01325     rb_define_const(rb_mSockConst, "SO_KEEPALIVE", INTEGER2NUM(SO_KEEPALIVE));
01326 #endif
01327 #if defined(SO_OOBINLINE)
01328     /* Leave received out-of-band data in-line */
01329     rb_define_const(rb_cSocket, "SO_OOBINLINE", INTEGER2NUM(SO_OOBINLINE));
01330     /* Leave received out-of-band data in-line */
01331     rb_define_const(rb_mSockConst, "SO_OOBINLINE", INTEGER2NUM(SO_OOBINLINE));
01332 #endif
01333 #if defined(SO_NO_CHECK)
01334     /* Disable checksums */
01335     rb_define_const(rb_cSocket, "SO_NO_CHECK", INTEGER2NUM(SO_NO_CHECK));
01336     /* Disable checksums */
01337     rb_define_const(rb_mSockConst, "SO_NO_CHECK", INTEGER2NUM(SO_NO_CHECK));
01338 #endif
01339 #if defined(SO_PRIORITY)
01340     /* The protocol-defined priority for all packets on this socket */
01341     rb_define_const(rb_cSocket, "SO_PRIORITY", INTEGER2NUM(SO_PRIORITY));
01342     /* The protocol-defined priority for all packets on this socket */
01343     rb_define_const(rb_mSockConst, "SO_PRIORITY", INTEGER2NUM(SO_PRIORITY));
01344 #endif
01345 #if defined(SO_LINGER)
01346     /* Linger on close if data is present */
01347     rb_define_const(rb_cSocket, "SO_LINGER", INTEGER2NUM(SO_LINGER));
01348     /* Linger on close if data is present */
01349     rb_define_const(rb_mSockConst, "SO_LINGER", INTEGER2NUM(SO_LINGER));
01350 #endif
01351 #if defined(SO_PASSCRED)
01352     /* Receive SCM_CREDENTIALS messages */
01353     rb_define_const(rb_cSocket, "SO_PASSCRED", INTEGER2NUM(SO_PASSCRED));
01354     /* Receive SCM_CREDENTIALS messages */
01355     rb_define_const(rb_mSockConst, "SO_PASSCRED", INTEGER2NUM(SO_PASSCRED));
01356 #endif
01357 #if defined(SO_PEERCRED)
01358     /* The credentials of the foreign process connected to this socket */
01359     rb_define_const(rb_cSocket, "SO_PEERCRED", INTEGER2NUM(SO_PEERCRED));
01360     /* The credentials of the foreign process connected to this socket */
01361     rb_define_const(rb_mSockConst, "SO_PEERCRED", INTEGER2NUM(SO_PEERCRED));
01362 #endif
01363 #if defined(SO_RCVLOWAT)
01364     /* Receive low-water mark */
01365     rb_define_const(rb_cSocket, "SO_RCVLOWAT", INTEGER2NUM(SO_RCVLOWAT));
01366     /* Receive low-water mark */
01367     rb_define_const(rb_mSockConst, "SO_RCVLOWAT", INTEGER2NUM(SO_RCVLOWAT));
01368 #endif
01369 #if defined(SO_SNDLOWAT)
01370     /* Send low-water mark */
01371     rb_define_const(rb_cSocket, "SO_SNDLOWAT", INTEGER2NUM(SO_SNDLOWAT));
01372     /* Send low-water mark */
01373     rb_define_const(rb_mSockConst, "SO_SNDLOWAT", INTEGER2NUM(SO_SNDLOWAT));
01374 #endif
01375 #if defined(SO_RCVTIMEO)
01376     /* Receive timeout */
01377     rb_define_const(rb_cSocket, "SO_RCVTIMEO", INTEGER2NUM(SO_RCVTIMEO));
01378     /* Receive timeout */
01379     rb_define_const(rb_mSockConst, "SO_RCVTIMEO", INTEGER2NUM(SO_RCVTIMEO));
01380 #endif
01381 #if defined(SO_SNDTIMEO)
01382     /* Send timeout */
01383     rb_define_const(rb_cSocket, "SO_SNDTIMEO", INTEGER2NUM(SO_SNDTIMEO));
01384     /* Send timeout */
01385     rb_define_const(rb_mSockConst, "SO_SNDTIMEO", INTEGER2NUM(SO_SNDTIMEO));
01386 #endif
01387 #if defined(SO_ACCEPTCONN)
01388     /* Socket has had listen() called on it */
01389     rb_define_const(rb_cSocket, "SO_ACCEPTCONN", INTEGER2NUM(SO_ACCEPTCONN));
01390     /* Socket has had listen() called on it */
01391     rb_define_const(rb_mSockConst, "SO_ACCEPTCONN", INTEGER2NUM(SO_ACCEPTCONN));
01392 #endif
01393 #if defined(SO_USELOOPBACK)
01394     /* Bypass hardware when possible */
01395     rb_define_const(rb_cSocket, "SO_USELOOPBACK", INTEGER2NUM(SO_USELOOPBACK));
01396     /* Bypass hardware when possible */
01397     rb_define_const(rb_mSockConst, "SO_USELOOPBACK", INTEGER2NUM(SO_USELOOPBACK));
01398 #endif
01399 #if defined(SO_ACCEPTFILTER)
01400     /* There is an accept filter */
01401     rb_define_const(rb_cSocket, "SO_ACCEPTFILTER", INTEGER2NUM(SO_ACCEPTFILTER));
01402     /* There is an accept filter */
01403     rb_define_const(rb_mSockConst, "SO_ACCEPTFILTER", INTEGER2NUM(SO_ACCEPTFILTER));
01404 #endif
01405 #if defined(SO_DONTTRUNC)
01406     /* Retain unread data */
01407     rb_define_const(rb_cSocket, "SO_DONTTRUNC", INTEGER2NUM(SO_DONTTRUNC));
01408     /* Retain unread data */
01409     rb_define_const(rb_mSockConst, "SO_DONTTRUNC", INTEGER2NUM(SO_DONTTRUNC));
01410 #endif
01411 #if defined(SO_WANTMORE)
01412     /* Give a hint when more data is ready */
01413     rb_define_const(rb_cSocket, "SO_WANTMORE", INTEGER2NUM(SO_WANTMORE));
01414     /* Give a hint when more data is ready */
01415     rb_define_const(rb_mSockConst, "SO_WANTMORE", INTEGER2NUM(SO_WANTMORE));
01416 #endif
01417 #if defined(SO_WANTOOBFLAG)
01418     /* OOB data is wanted in MSG_FLAG on receive */
01419     rb_define_const(rb_cSocket, "SO_WANTOOBFLAG", INTEGER2NUM(SO_WANTOOBFLAG));
01420     /* OOB data is wanted in MSG_FLAG on receive */
01421     rb_define_const(rb_mSockConst, "SO_WANTOOBFLAG", INTEGER2NUM(SO_WANTOOBFLAG));
01422 #endif
01423 #if defined(SO_NREAD)
01424     /* Get first packet byte count */
01425     rb_define_const(rb_cSocket, "SO_NREAD", INTEGER2NUM(SO_NREAD));
01426     /* Get first packet byte count */
01427     rb_define_const(rb_mSockConst, "SO_NREAD", INTEGER2NUM(SO_NREAD));
01428 #endif
01429 #if defined(SO_NKE)
01430     /* Install socket-level Network Kernel Extension */
01431     rb_define_const(rb_cSocket, "SO_NKE", INTEGER2NUM(SO_NKE));
01432     /* Install socket-level Network Kernel Extension */
01433     rb_define_const(rb_mSockConst, "SO_NKE", INTEGER2NUM(SO_NKE));
01434 #endif
01435 #if defined(SO_NOSIGPIPE)
01436     /* Don't SIGPIPE on EPIPE */
01437     rb_define_const(rb_cSocket, "SO_NOSIGPIPE", INTEGER2NUM(SO_NOSIGPIPE));
01438     /* Don't SIGPIPE on EPIPE */
01439     rb_define_const(rb_mSockConst, "SO_NOSIGPIPE", INTEGER2NUM(SO_NOSIGPIPE));
01440 #endif
01441 #if defined(SO_SECURITY_AUTHENTICATION)
01442     /*  */
01443     rb_define_const(rb_cSocket, "SO_SECURITY_AUTHENTICATION", INTEGER2NUM(SO_SECURITY_AUTHENTICATION));
01444     /*  */
01445     rb_define_const(rb_mSockConst, "SO_SECURITY_AUTHENTICATION", INTEGER2NUM(SO_SECURITY_AUTHENTICATION));
01446 #endif
01447 #if defined(SO_SECURITY_ENCRYPTION_TRANSPORT)
01448     /*  */
01449     rb_define_const(rb_cSocket, "SO_SECURITY_ENCRYPTION_TRANSPORT", INTEGER2NUM(SO_SECURITY_ENCRYPTION_TRANSPORT));
01450     /*  */
01451     rb_define_const(rb_mSockConst, "SO_SECURITY_ENCRYPTION_TRANSPORT", INTEGER2NUM(SO_SECURITY_ENCRYPTION_TRANSPORT));
01452 #endif
01453 #if defined(SO_SECURITY_ENCRYPTION_NETWORK)
01454     /*  */
01455     rb_define_const(rb_cSocket, "SO_SECURITY_ENCRYPTION_NETWORK", INTEGER2NUM(SO_SECURITY_ENCRYPTION_NETWORK));
01456     /*  */
01457     rb_define_const(rb_mSockConst, "SO_SECURITY_ENCRYPTION_NETWORK", INTEGER2NUM(SO_SECURITY_ENCRYPTION_NETWORK));
01458 #endif
01459 #if defined(SO_BINDTODEVICE)
01460     /* Only send packets from the given interface */
01461     rb_define_const(rb_cSocket, "SO_BINDTODEVICE", INTEGER2NUM(SO_BINDTODEVICE));
01462     /* Only send packets from the given interface */
01463     rb_define_const(rb_mSockConst, "SO_BINDTODEVICE", INTEGER2NUM(SO_BINDTODEVICE));
01464 #endif
01465 #if defined(SO_ATTACH_FILTER)
01466     /* Attach an accept filter */
01467     rb_define_const(rb_cSocket, "SO_ATTACH_FILTER", INTEGER2NUM(SO_ATTACH_FILTER));
01468     /* Attach an accept filter */
01469     rb_define_const(rb_mSockConst, "SO_ATTACH_FILTER", INTEGER2NUM(SO_ATTACH_FILTER));
01470 #endif
01471 #if defined(SO_DETACH_FILTER)
01472     /* Detach an accept filter */
01473     rb_define_const(rb_cSocket, "SO_DETACH_FILTER", INTEGER2NUM(SO_DETACH_FILTER));
01474     /* Detach an accept filter */
01475     rb_define_const(rb_mSockConst, "SO_DETACH_FILTER", INTEGER2NUM(SO_DETACH_FILTER));
01476 #endif
01477 #if defined(SO_PEERNAME)
01478     /* Name of the connecting user */
01479     rb_define_const(rb_cSocket, "SO_PEERNAME", INTEGER2NUM(SO_PEERNAME));
01480     /* Name of the connecting user */
01481     rb_define_const(rb_mSockConst, "SO_PEERNAME", INTEGER2NUM(SO_PEERNAME));
01482 #endif
01483 #if defined(SO_TIMESTAMP)
01484     /* Receive timestamp with datagrams (timeval) */
01485     rb_define_const(rb_cSocket, "SO_TIMESTAMP", INTEGER2NUM(SO_TIMESTAMP));
01486     /* Receive timestamp with datagrams (timeval) */
01487     rb_define_const(rb_mSockConst, "SO_TIMESTAMP", INTEGER2NUM(SO_TIMESTAMP));
01488 #endif
01489 #if defined(SO_TIMESTAMPNS)
01490     /* Receive nanosecond timestamp with datagrams (timespec) */
01491     rb_define_const(rb_cSocket, "SO_TIMESTAMPNS", INTEGER2NUM(SO_TIMESTAMPNS));
01492     /* Receive nanosecond timestamp with datagrams (timespec) */
01493     rb_define_const(rb_mSockConst, "SO_TIMESTAMPNS", INTEGER2NUM(SO_TIMESTAMPNS));
01494 #endif
01495 #if defined(SO_BINTIME)
01496     /* Receive timestamp with datagrams (bintime) */
01497     rb_define_const(rb_cSocket, "SO_BINTIME", INTEGER2NUM(SO_BINTIME));
01498     /* Receive timestamp with datagrams (bintime) */
01499     rb_define_const(rb_mSockConst, "SO_BINTIME", INTEGER2NUM(SO_BINTIME));
01500 #endif
01501 #if defined(SO_RECVUCRED)
01502     /* Receive user credentials with datagram */
01503     rb_define_const(rb_cSocket, "SO_RECVUCRED", INTEGER2NUM(SO_RECVUCRED));
01504     /* Receive user credentials with datagram */
01505     rb_define_const(rb_mSockConst, "SO_RECVUCRED", INTEGER2NUM(SO_RECVUCRED));
01506 #endif
01507 #if defined(SO_MAC_EXEMPT)
01508     /* Mandatory Access Control exemption for unlabeled peers */
01509     rb_define_const(rb_cSocket, "SO_MAC_EXEMPT", INTEGER2NUM(SO_MAC_EXEMPT));
01510     /* Mandatory Access Control exemption for unlabeled peers */
01511     rb_define_const(rb_mSockConst, "SO_MAC_EXEMPT", INTEGER2NUM(SO_MAC_EXEMPT));
01512 #endif
01513 #if defined(SO_ALLZONES)
01514     /* Bypass zone boundaries */
01515     rb_define_const(rb_cSocket, "SO_ALLZONES", INTEGER2NUM(SO_ALLZONES));
01516     /* Bypass zone boundaries */
01517     rb_define_const(rb_mSockConst, "SO_ALLZONES", INTEGER2NUM(SO_ALLZONES));
01518 #endif
01519 #if defined(SOPRI_INTERACTIVE)
01520     /* Interactive socket priority */
01521     rb_define_const(rb_cSocket, "SOPRI_INTERACTIVE", INTEGER2NUM(SOPRI_INTERACTIVE));
01522     /* Interactive socket priority */
01523     rb_define_const(rb_mSockConst, "SOPRI_INTERACTIVE", INTEGER2NUM(SOPRI_INTERACTIVE));
01524 #endif
01525 #if defined(SOPRI_NORMAL)
01526     /* Normal socket priority */
01527     rb_define_const(rb_cSocket, "SOPRI_NORMAL", INTEGER2NUM(SOPRI_NORMAL));
01528     /* Normal socket priority */
01529     rb_define_const(rb_mSockConst, "SOPRI_NORMAL", INTEGER2NUM(SOPRI_NORMAL));
01530 #endif
01531 #if defined(SOPRI_BACKGROUND)
01532     /* Background socket priority */
01533     rb_define_const(rb_cSocket, "SOPRI_BACKGROUND", INTEGER2NUM(SOPRI_BACKGROUND));
01534     /* Background socket priority */
01535     rb_define_const(rb_mSockConst, "SOPRI_BACKGROUND", INTEGER2NUM(SOPRI_BACKGROUND));
01536 #endif
01537 #if defined(IPX_TYPE)
01538     /*  */
01539     rb_define_const(rb_cSocket, "IPX_TYPE", INTEGER2NUM(IPX_TYPE));
01540     /*  */
01541     rb_define_const(rb_mSockConst, "IPX_TYPE", INTEGER2NUM(IPX_TYPE));
01542 #endif
01543 #if defined(TCP_NODELAY)
01544     /* Don't delay sending to coalesce packets */
01545     rb_define_const(rb_cSocket, "TCP_NODELAY", INTEGER2NUM(TCP_NODELAY));
01546     /* Don't delay sending to coalesce packets */
01547     rb_define_const(rb_mSockConst, "TCP_NODELAY", INTEGER2NUM(TCP_NODELAY));
01548 #endif
01549 #if defined(TCP_MAXSEG)
01550     /* Set maximum segment size */
01551     rb_define_const(rb_cSocket, "TCP_MAXSEG", INTEGER2NUM(TCP_MAXSEG));
01552     /* Set maximum segment size */
01553     rb_define_const(rb_mSockConst, "TCP_MAXSEG", INTEGER2NUM(TCP_MAXSEG));
01554 #endif
01555 #if defined(TCP_CORK)
01556     /* Don't send partial frames */
01557     rb_define_const(rb_cSocket, "TCP_CORK", INTEGER2NUM(TCP_CORK));
01558     /* Don't send partial frames */
01559     rb_define_const(rb_mSockConst, "TCP_CORK", INTEGER2NUM(TCP_CORK));
01560 #endif
01561 #if defined(TCP_DEFER_ACCEPT)
01562     /* Don't notify a listening socket until data is ready */
01563     rb_define_const(rb_cSocket, "TCP_DEFER_ACCEPT", INTEGER2NUM(TCP_DEFER_ACCEPT));
01564     /* Don't notify a listening socket until data is ready */
01565     rb_define_const(rb_mSockConst, "TCP_DEFER_ACCEPT", INTEGER2NUM(TCP_DEFER_ACCEPT));
01566 #endif
01567 #if defined(TCP_INFO)
01568     /* Retrieve information about this socket */
01569     rb_define_const(rb_cSocket, "TCP_INFO", INTEGER2NUM(TCP_INFO));
01570     /* Retrieve information about this socket */
01571     rb_define_const(rb_mSockConst, "TCP_INFO", INTEGER2NUM(TCP_INFO));
01572 #endif
01573 #if defined(TCP_KEEPCNT)
01574     /* Maximum number of keepalive probes allowed before dropping a connection */
01575     rb_define_const(rb_cSocket, "TCP_KEEPCNT", INTEGER2NUM(TCP_KEEPCNT));
01576     /* Maximum number of keepalive probes allowed before dropping a connection */
01577     rb_define_const(rb_mSockConst, "TCP_KEEPCNT", INTEGER2NUM(TCP_KEEPCNT));
01578 #endif
01579 #if defined(TCP_KEEPIDLE)
01580     /* Idle time before keepalive probes are sent */
01581     rb_define_const(rb_cSocket, "TCP_KEEPIDLE", INTEGER2NUM(TCP_KEEPIDLE));
01582     /* Idle time before keepalive probes are sent */
01583     rb_define_const(rb_mSockConst, "TCP_KEEPIDLE", INTEGER2NUM(TCP_KEEPIDLE));
01584 #endif
01585 #if defined(TCP_KEEPINTVL)
01586     /* Time between keepalive probes */
01587     rb_define_const(rb_cSocket, "TCP_KEEPINTVL", INTEGER2NUM(TCP_KEEPINTVL));
01588     /* Time between keepalive probes */
01589     rb_define_const(rb_mSockConst, "TCP_KEEPINTVL", INTEGER2NUM(TCP_KEEPINTVL));
01590 #endif
01591 #if defined(TCP_LINGER2)
01592     /* Lifetime of orphaned FIN_WAIT2 sockets */
01593     rb_define_const(rb_cSocket, "TCP_LINGER2", INTEGER2NUM(TCP_LINGER2));
01594     /* Lifetime of orphaned FIN_WAIT2 sockets */
01595     rb_define_const(rb_mSockConst, "TCP_LINGER2", INTEGER2NUM(TCP_LINGER2));
01596 #endif
01597 #if defined(TCP_MD5SIG)
01598     /* Use MD5 digests (RFC2385) */
01599     rb_define_const(rb_cSocket, "TCP_MD5SIG", INTEGER2NUM(TCP_MD5SIG));
01600     /* Use MD5 digests (RFC2385) */
01601     rb_define_const(rb_mSockConst, "TCP_MD5SIG", INTEGER2NUM(TCP_MD5SIG));
01602 #endif
01603 #if defined(TCP_NOOPT)
01604     /* Don't use TCP options */
01605     rb_define_const(rb_cSocket, "TCP_NOOPT", INTEGER2NUM(TCP_NOOPT));
01606     /* Don't use TCP options */
01607     rb_define_const(rb_mSockConst, "TCP_NOOPT", INTEGER2NUM(TCP_NOOPT));
01608 #endif
01609 #if defined(TCP_NOPUSH)
01610     /* Don't push the last block of write */
01611     rb_define_const(rb_cSocket, "TCP_NOPUSH", INTEGER2NUM(TCP_NOPUSH));
01612     /* Don't push the last block of write */
01613     rb_define_const(rb_mSockConst, "TCP_NOPUSH", INTEGER2NUM(TCP_NOPUSH));
01614 #endif
01615 #if defined(TCP_QUICKACK)
01616     /* Enable quickack mode */
01617     rb_define_const(rb_cSocket, "TCP_QUICKACK", INTEGER2NUM(TCP_QUICKACK));
01618     /* Enable quickack mode */
01619     rb_define_const(rb_mSockConst, "TCP_QUICKACK", INTEGER2NUM(TCP_QUICKACK));
01620 #endif
01621 #if defined(TCP_SYNCNT)
01622     /* Number of SYN retransmits before a connection is dropped */
01623     rb_define_const(rb_cSocket, "TCP_SYNCNT", INTEGER2NUM(TCP_SYNCNT));
01624     /* Number of SYN retransmits before a connection is dropped */
01625     rb_define_const(rb_mSockConst, "TCP_SYNCNT", INTEGER2NUM(TCP_SYNCNT));
01626 #endif
01627 #if defined(TCP_WINDOW_CLAMP)
01628     /* Clamp the size of the advertised window */
01629     rb_define_const(rb_cSocket, "TCP_WINDOW_CLAMP", INTEGER2NUM(TCP_WINDOW_CLAMP));
01630     /* Clamp the size of the advertised window */
01631     rb_define_const(rb_mSockConst, "TCP_WINDOW_CLAMP", INTEGER2NUM(TCP_WINDOW_CLAMP));
01632 #endif
01633 #if defined(TCP_FASTOPEN)
01634     /* Reduce step of the handshake process */
01635     rb_define_const(rb_cSocket, "TCP_FASTOPEN", INTEGER2NUM(TCP_FASTOPEN));
01636     /* Reduce step of the handshake process */
01637     rb_define_const(rb_mSockConst, "TCP_FASTOPEN", INTEGER2NUM(TCP_FASTOPEN));
01638 #endif
01639 #if defined(UDP_CORK)
01640     /* Don't send partial frames */
01641     rb_define_const(rb_cSocket, "UDP_CORK", INTEGER2NUM(UDP_CORK));
01642     /* Don't send partial frames */
01643     rb_define_const(rb_mSockConst, "UDP_CORK", INTEGER2NUM(UDP_CORK));
01644 #endif
01645 #if defined(EAI_ADDRFAMILY)
01646     /* Address family for hostname not supported */
01647     rb_define_const(rb_cSocket, "EAI_ADDRFAMILY", INTEGER2NUM(EAI_ADDRFAMILY));
01648     /* Address family for hostname not supported */
01649     rb_define_const(rb_mSockConst, "EAI_ADDRFAMILY", INTEGER2NUM(EAI_ADDRFAMILY));
01650 #endif
01651 #if defined(EAI_AGAIN)
01652     /* Temporary failure in name resolution */
01653     rb_define_const(rb_cSocket, "EAI_AGAIN", INTEGER2NUM(EAI_AGAIN));
01654     /* Temporary failure in name resolution */
01655     rb_define_const(rb_mSockConst, "EAI_AGAIN", INTEGER2NUM(EAI_AGAIN));
01656 #endif
01657 #if defined(EAI_BADFLAGS)
01658     /* Invalid flags */
01659     rb_define_const(rb_cSocket, "EAI_BADFLAGS", INTEGER2NUM(EAI_BADFLAGS));
01660     /* Invalid flags */
01661     rb_define_const(rb_mSockConst, "EAI_BADFLAGS", INTEGER2NUM(EAI_BADFLAGS));
01662 #endif
01663 #if defined(EAI_FAIL)
01664     /* Non-recoverable failure in name resolution */
01665     rb_define_const(rb_cSocket, "EAI_FAIL", INTEGER2NUM(EAI_FAIL));
01666     /* Non-recoverable failure in name resolution */
01667     rb_define_const(rb_mSockConst, "EAI_FAIL", INTEGER2NUM(EAI_FAIL));
01668 #endif
01669 #if defined(EAI_FAMILY)
01670     /* Address family not supported */
01671     rb_define_const(rb_cSocket, "EAI_FAMILY", INTEGER2NUM(EAI_FAMILY));
01672     /* Address family not supported */
01673     rb_define_const(rb_mSockConst, "EAI_FAMILY", INTEGER2NUM(EAI_FAMILY));
01674 #endif
01675 #if defined(EAI_MEMORY)
01676     /* Memory allocation failure */
01677     rb_define_const(rb_cSocket, "EAI_MEMORY", INTEGER2NUM(EAI_MEMORY));
01678     /* Memory allocation failure */
01679     rb_define_const(rb_mSockConst, "EAI_MEMORY", INTEGER2NUM(EAI_MEMORY));
01680 #endif
01681 #if defined(EAI_NODATA)
01682     /* No address associated with hostname */
01683     rb_define_const(rb_cSocket, "EAI_NODATA", INTEGER2NUM(EAI_NODATA));
01684     /* No address associated with hostname */
01685     rb_define_const(rb_mSockConst, "EAI_NODATA", INTEGER2NUM(EAI_NODATA));
01686 #endif
01687 #if defined(EAI_NONAME)
01688     /* Hostname nor servname, or not known */
01689     rb_define_const(rb_cSocket, "EAI_NONAME", INTEGER2NUM(EAI_NONAME));
01690     /* Hostname nor servname, or not known */
01691     rb_define_const(rb_mSockConst, "EAI_NONAME", INTEGER2NUM(EAI_NONAME));
01692 #endif
01693 #if defined(EAI_OVERFLOW)
01694     /* Argument buffer overflow */
01695     rb_define_const(rb_cSocket, "EAI_OVERFLOW", INTEGER2NUM(EAI_OVERFLOW));
01696     /* Argument buffer overflow */
01697     rb_define_const(rb_mSockConst, "EAI_OVERFLOW", INTEGER2NUM(EAI_OVERFLOW));
01698 #endif
01699 #if defined(EAI_SERVICE)
01700     /* Servname not supported for socket type */
01701     rb_define_const(rb_cSocket, "EAI_SERVICE", INTEGER2NUM(EAI_SERVICE));
01702     /* Servname not supported for socket type */
01703     rb_define_const(rb_mSockConst, "EAI_SERVICE", INTEGER2NUM(EAI_SERVICE));
01704 #endif
01705 #if defined(EAI_SOCKTYPE)
01706     /* Socket type not supported */
01707     rb_define_const(rb_cSocket, "EAI_SOCKTYPE", INTEGER2NUM(EAI_SOCKTYPE));
01708     /* Socket type not supported */
01709     rb_define_const(rb_mSockConst, "EAI_SOCKTYPE", INTEGER2NUM(EAI_SOCKTYPE));
01710 #endif
01711 #if defined(EAI_SYSTEM)
01712     /* System error returned in errno */
01713     rb_define_const(rb_cSocket, "EAI_SYSTEM", INTEGER2NUM(EAI_SYSTEM));
01714     /* System error returned in errno */
01715     rb_define_const(rb_mSockConst, "EAI_SYSTEM", INTEGER2NUM(EAI_SYSTEM));
01716 #endif
01717 #if defined(EAI_BADHINTS)
01718     /* Invalid value for hints */
01719     rb_define_const(rb_cSocket, "EAI_BADHINTS", INTEGER2NUM(EAI_BADHINTS));
01720     /* Invalid value for hints */
01721     rb_define_const(rb_mSockConst, "EAI_BADHINTS", INTEGER2NUM(EAI_BADHINTS));
01722 #endif
01723 #if defined(EAI_PROTOCOL)
01724     /* Resolved protocol is unknown */
01725     rb_define_const(rb_cSocket, "EAI_PROTOCOL", INTEGER2NUM(EAI_PROTOCOL));
01726     /* Resolved protocol is unknown */
01727     rb_define_const(rb_mSockConst, "EAI_PROTOCOL", INTEGER2NUM(EAI_PROTOCOL));
01728 #endif
01729 #if defined(EAI_MAX)
01730     /* Maximum error code from getaddrinfo */
01731     rb_define_const(rb_cSocket, "EAI_MAX", INTEGER2NUM(EAI_MAX));
01732     /* Maximum error code from getaddrinfo */
01733     rb_define_const(rb_mSockConst, "EAI_MAX", INTEGER2NUM(EAI_MAX));
01734 #endif
01735 #if defined(AI_PASSIVE)
01736     /* Get address to use with bind() */
01737     rb_define_const(rb_cSocket, "AI_PASSIVE", INTEGER2NUM(AI_PASSIVE));
01738     /* Get address to use with bind() */
01739     rb_define_const(rb_mSockConst, "AI_PASSIVE", INTEGER2NUM(AI_PASSIVE));
01740 #endif
01741 #if defined(AI_CANONNAME)
01742     /* Fill in the canonical name */
01743     rb_define_const(rb_cSocket, "AI_CANONNAME", INTEGER2NUM(AI_CANONNAME));
01744     /* Fill in the canonical name */
01745     rb_define_const(rb_mSockConst, "AI_CANONNAME", INTEGER2NUM(AI_CANONNAME));
01746 #endif
01747 #if defined(AI_NUMERICHOST)
01748     /* Prevent host name resolution */
01749     rb_define_const(rb_cSocket, "AI_NUMERICHOST", INTEGER2NUM(AI_NUMERICHOST));
01750     /* Prevent host name resolution */
01751     rb_define_const(rb_mSockConst, "AI_NUMERICHOST", INTEGER2NUM(AI_NUMERICHOST));
01752 #endif
01753 #if defined(AI_NUMERICSERV)
01754     /* Prevent service name resolution */
01755     rb_define_const(rb_cSocket, "AI_NUMERICSERV", INTEGER2NUM(AI_NUMERICSERV));
01756     /* Prevent service name resolution */
01757     rb_define_const(rb_mSockConst, "AI_NUMERICSERV", INTEGER2NUM(AI_NUMERICSERV));
01758 #endif
01759 #if defined(AI_MASK)
01760     /* Valid flag mask for getaddrinfo (not for application use) */
01761     rb_define_const(rb_cSocket, "AI_MASK", INTEGER2NUM(AI_MASK));
01762     /* Valid flag mask for getaddrinfo (not for application use) */
01763     rb_define_const(rb_mSockConst, "AI_MASK", INTEGER2NUM(AI_MASK));
01764 #endif
01765 #if defined(AI_ALL)
01766     /* Allow all addresses */
01767     rb_define_const(rb_cSocket, "AI_ALL", INTEGER2NUM(AI_ALL));
01768     /* Allow all addresses */
01769     rb_define_const(rb_mSockConst, "AI_ALL", INTEGER2NUM(AI_ALL));
01770 #endif
01771 #if defined(AI_V4MAPPED_CFG)
01772     /* Accept IPv4 mapped addresses if the kernel supports it */
01773     rb_define_const(rb_cSocket, "AI_V4MAPPED_CFG", INTEGER2NUM(AI_V4MAPPED_CFG));
01774     /* Accept IPv4 mapped addresses if the kernel supports it */
01775     rb_define_const(rb_mSockConst, "AI_V4MAPPED_CFG", INTEGER2NUM(AI_V4MAPPED_CFG));
01776 #endif
01777 #if defined(AI_ADDRCONFIG)
01778     /* Accept only if any address is assigned */
01779     rb_define_const(rb_cSocket, "AI_ADDRCONFIG", INTEGER2NUM(AI_ADDRCONFIG));
01780     /* Accept only if any address is assigned */
01781     rb_define_const(rb_mSockConst, "AI_ADDRCONFIG", INTEGER2NUM(AI_ADDRCONFIG));
01782 #endif
01783 #if defined(AI_V4MAPPED)
01784     /* Accept IPv4-mapped IPv6 addresses */
01785     rb_define_const(rb_cSocket, "AI_V4MAPPED", INTEGER2NUM(AI_V4MAPPED));
01786     /* Accept IPv4-mapped IPv6 addresses */
01787     rb_define_const(rb_mSockConst, "AI_V4MAPPED", INTEGER2NUM(AI_V4MAPPED));
01788 #endif
01789 #if defined(AI_DEFAULT)
01790     /* Default flags for getaddrinfo */
01791     rb_define_const(rb_cSocket, "AI_DEFAULT", INTEGER2NUM(AI_DEFAULT));
01792     /* Default flags for getaddrinfo */
01793     rb_define_const(rb_mSockConst, "AI_DEFAULT", INTEGER2NUM(AI_DEFAULT));
01794 #endif
01795 #if defined(NI_MAXHOST)
01796     /* Maximum length of a hostname */
01797     rb_define_const(rb_cSocket, "NI_MAXHOST", INTEGER2NUM(NI_MAXHOST));
01798     /* Maximum length of a hostname */
01799     rb_define_const(rb_mSockConst, "NI_MAXHOST", INTEGER2NUM(NI_MAXHOST));
01800 #endif
01801 #if defined(NI_MAXSERV)
01802     /* Maximum length of a service name */
01803     rb_define_const(rb_cSocket, "NI_MAXSERV", INTEGER2NUM(NI_MAXSERV));
01804     /* Maximum length of a service name */
01805     rb_define_const(rb_mSockConst, "NI_MAXSERV", INTEGER2NUM(NI_MAXSERV));
01806 #endif
01807 #if defined(NI_NOFQDN)
01808     /* An FQDN is not required for local hosts, return only the local part */
01809     rb_define_const(rb_cSocket, "NI_NOFQDN", INTEGER2NUM(NI_NOFQDN));
01810     /* An FQDN is not required for local hosts, return only the local part */
01811     rb_define_const(rb_mSockConst, "NI_NOFQDN", INTEGER2NUM(NI_NOFQDN));
01812 #endif
01813 #if defined(NI_NUMERICHOST)
01814     /* Return a numeric address */
01815     rb_define_const(rb_cSocket, "NI_NUMERICHOST", INTEGER2NUM(NI_NUMERICHOST));
01816     /* Return a numeric address */
01817     rb_define_const(rb_mSockConst, "NI_NUMERICHOST", INTEGER2NUM(NI_NUMERICHOST));
01818 #endif
01819 #if defined(NI_NAMEREQD)
01820     /* A name is required */
01821     rb_define_const(rb_cSocket, "NI_NAMEREQD", INTEGER2NUM(NI_NAMEREQD));
01822     /* A name is required */
01823     rb_define_const(rb_mSockConst, "NI_NAMEREQD", INTEGER2NUM(NI_NAMEREQD));
01824 #endif
01825 #if defined(NI_NUMERICSERV)
01826     /* Return the service name as a digit string */
01827     rb_define_const(rb_cSocket, "NI_NUMERICSERV", INTEGER2NUM(NI_NUMERICSERV));
01828     /* Return the service name as a digit string */
01829     rb_define_const(rb_mSockConst, "NI_NUMERICSERV", INTEGER2NUM(NI_NUMERICSERV));
01830 #endif
01831 #if defined(NI_DGRAM)
01832     /* The service specified is a datagram service (looks up UDP ports) */
01833     rb_define_const(rb_cSocket, "NI_DGRAM", INTEGER2NUM(NI_DGRAM));
01834     /* The service specified is a datagram service (looks up UDP ports) */
01835     rb_define_const(rb_mSockConst, "NI_DGRAM", INTEGER2NUM(NI_DGRAM));
01836 #endif
01837 #if defined(SHUT_RD)
01838     /* Shut down the reading side of the socket */
01839     rb_define_const(rb_cSocket, "SHUT_RD", INTEGER2NUM(SHUT_RD));
01840     /* Shut down the reading side of the socket */
01841     rb_define_const(rb_mSockConst, "SHUT_RD", INTEGER2NUM(SHUT_RD));
01842 #endif
01843 #if defined(SHUT_WR)
01844     /* Shut down the writing side of the socket */
01845     rb_define_const(rb_cSocket, "SHUT_WR", INTEGER2NUM(SHUT_WR));
01846     /* Shut down the writing side of the socket */
01847     rb_define_const(rb_mSockConst, "SHUT_WR", INTEGER2NUM(SHUT_WR));
01848 #endif
01849 #if defined(SHUT_RDWR)
01850     /* Shut down the both sides of the socket */
01851     rb_define_const(rb_cSocket, "SHUT_RDWR", INTEGER2NUM(SHUT_RDWR));
01852     /* Shut down the both sides of the socket */
01853     rb_define_const(rb_mSockConst, "SHUT_RDWR", INTEGER2NUM(SHUT_RDWR));
01854 #endif
01855 #if defined(INET6)
01856 #if defined(IPV6_JOIN_GROUP)
01857     /* Join a group membership */
01858     rb_define_const(rb_cSocket, "IPV6_JOIN_GROUP", INTEGER2NUM(IPV6_JOIN_GROUP));
01859     /* Join a group membership */
01860     rb_define_const(rb_mSockConst, "IPV6_JOIN_GROUP", INTEGER2NUM(IPV6_JOIN_GROUP));
01861 #endif
01862 #endif
01863 #if defined(INET6)
01864 #if defined(IPV6_LEAVE_GROUP)
01865     /* Leave a group membership */
01866     rb_define_const(rb_cSocket, "IPV6_LEAVE_GROUP", INTEGER2NUM(IPV6_LEAVE_GROUP));
01867     /* Leave a group membership */
01868     rb_define_const(rb_mSockConst, "IPV6_LEAVE_GROUP", INTEGER2NUM(IPV6_LEAVE_GROUP));
01869 #endif
01870 #endif
01871 #if defined(INET6)
01872 #if defined(IPV6_MULTICAST_HOPS)
01873     /* IP6 multicast hops */
01874     rb_define_const(rb_cSocket, "IPV6_MULTICAST_HOPS", INTEGER2NUM(IPV6_MULTICAST_HOPS));
01875     /* IP6 multicast hops */
01876     rb_define_const(rb_mSockConst, "IPV6_MULTICAST_HOPS", INTEGER2NUM(IPV6_MULTICAST_HOPS));
01877 #endif
01878 #endif
01879 #if defined(INET6)
01880 #if defined(IPV6_MULTICAST_IF)
01881     /* IP6 multicast interface */
01882     rb_define_const(rb_cSocket, "IPV6_MULTICAST_IF", INTEGER2NUM(IPV6_MULTICAST_IF));
01883     /* IP6 multicast interface */
01884     rb_define_const(rb_mSockConst, "IPV6_MULTICAST_IF", INTEGER2NUM(IPV6_MULTICAST_IF));
01885 #endif
01886 #endif
01887 #if defined(INET6)
01888 #if defined(IPV6_MULTICAST_LOOP)
01889     /* IP6 multicast loopback */
01890     rb_define_const(rb_cSocket, "IPV6_MULTICAST_LOOP", INTEGER2NUM(IPV6_MULTICAST_LOOP));
01891     /* IP6 multicast loopback */
01892     rb_define_const(rb_mSockConst, "IPV6_MULTICAST_LOOP", INTEGER2NUM(IPV6_MULTICAST_LOOP));
01893 #endif
01894 #endif
01895 #if defined(INET6)
01896 #if defined(IPV6_UNICAST_HOPS)
01897     /* IP6 unicast hops */
01898     rb_define_const(rb_cSocket, "IPV6_UNICAST_HOPS", INTEGER2NUM(IPV6_UNICAST_HOPS));
01899     /* IP6 unicast hops */
01900     rb_define_const(rb_mSockConst, "IPV6_UNICAST_HOPS", INTEGER2NUM(IPV6_UNICAST_HOPS));
01901 #endif
01902 #endif
01903 #if defined(INET6)
01904 #if defined(IPV6_V6ONLY)
01905     /* Only bind IPv6 with a wildcard bind */
01906     rb_define_const(rb_cSocket, "IPV6_V6ONLY", INTEGER2NUM(IPV6_V6ONLY));
01907     /* Only bind IPv6 with a wildcard bind */
01908     rb_define_const(rb_mSockConst, "IPV6_V6ONLY", INTEGER2NUM(IPV6_V6ONLY));
01909 #endif
01910 #endif
01911 #if defined(INET6)
01912 #if defined(IPV6_CHECKSUM)
01913     /* Checksum offset for raw sockets */
01914     rb_define_const(rb_cSocket, "IPV6_CHECKSUM", INTEGER2NUM(IPV6_CHECKSUM));
01915     /* Checksum offset for raw sockets */
01916     rb_define_const(rb_mSockConst, "IPV6_CHECKSUM", INTEGER2NUM(IPV6_CHECKSUM));
01917 #endif
01918 #endif
01919 #if defined(INET6)
01920 #if defined(IPV6_DONTFRAG)
01921     /* Don't fragment packets */
01922     rb_define_const(rb_cSocket, "IPV6_DONTFRAG", INTEGER2NUM(IPV6_DONTFRAG));
01923     /* Don't fragment packets */
01924     rb_define_const(rb_mSockConst, "IPV6_DONTFRAG", INTEGER2NUM(IPV6_DONTFRAG));
01925 #endif
01926 #endif
01927 #if defined(INET6)
01928 #if defined(IPV6_DSTOPTS)
01929     /* Destination option */
01930     rb_define_const(rb_cSocket, "IPV6_DSTOPTS", INTEGER2NUM(IPV6_DSTOPTS));
01931     /* Destination option */
01932     rb_define_const(rb_mSockConst, "IPV6_DSTOPTS", INTEGER2NUM(IPV6_DSTOPTS));
01933 #endif
01934 #endif
01935 #if defined(INET6)
01936 #if defined(IPV6_HOPLIMIT)
01937     /* Hop limit */
01938     rb_define_const(rb_cSocket, "IPV6_HOPLIMIT", INTEGER2NUM(IPV6_HOPLIMIT));
01939     /* Hop limit */
01940     rb_define_const(rb_mSockConst, "IPV6_HOPLIMIT", INTEGER2NUM(IPV6_HOPLIMIT));
01941 #endif
01942 #endif
01943 #if defined(INET6)
01944 #if defined(IPV6_HOPOPTS)
01945     /* Hop-by-hop option */
01946     rb_define_const(rb_cSocket, "IPV6_HOPOPTS", INTEGER2NUM(IPV6_HOPOPTS));
01947     /* Hop-by-hop option */
01948     rb_define_const(rb_mSockConst, "IPV6_HOPOPTS", INTEGER2NUM(IPV6_HOPOPTS));
01949 #endif
01950 #endif
01951 #if defined(INET6)
01952 #if defined(IPV6_NEXTHOP)
01953     /* Next hop address */
01954     rb_define_const(rb_cSocket, "IPV6_NEXTHOP", INTEGER2NUM(IPV6_NEXTHOP));
01955     /* Next hop address */
01956     rb_define_const(rb_mSockConst, "IPV6_NEXTHOP", INTEGER2NUM(IPV6_NEXTHOP));
01957 #endif
01958 #endif
01959 #if defined(INET6)
01960 #if defined(IPV6_PATHMTU)
01961     /* Retrieve current path MTU */
01962     rb_define_const(rb_cSocket, "IPV6_PATHMTU", INTEGER2NUM(IPV6_PATHMTU));
01963     /* Retrieve current path MTU */
01964     rb_define_const(rb_mSockConst, "IPV6_PATHMTU", INTEGER2NUM(IPV6_PATHMTU));
01965 #endif
01966 #endif
01967 #if defined(INET6)
01968 #if defined(IPV6_PKTINFO)
01969     /* Receive packet information with datagram */
01970     rb_define_const(rb_cSocket, "IPV6_PKTINFO", INTEGER2NUM(IPV6_PKTINFO));
01971     /* Receive packet information with datagram */
01972     rb_define_const(rb_mSockConst, "IPV6_PKTINFO", INTEGER2NUM(IPV6_PKTINFO));
01973 #endif
01974 #endif
01975 #if defined(INET6)
01976 #if defined(IPV6_RECVDSTOPTS)
01977     /* Receive all IP6 options for response */
01978     rb_define_const(rb_cSocket, "IPV6_RECVDSTOPTS", INTEGER2NUM(IPV6_RECVDSTOPTS));
01979     /* Receive all IP6 options for response */
01980     rb_define_const(rb_mSockConst, "IPV6_RECVDSTOPTS", INTEGER2NUM(IPV6_RECVDSTOPTS));
01981 #endif
01982 #endif
01983 #if defined(INET6)
01984 #if defined(IPV6_RECVHOPLIMIT)
01985     /* Receive hop limit with datagram */
01986     rb_define_const(rb_cSocket, "IPV6_RECVHOPLIMIT", INTEGER2NUM(IPV6_RECVHOPLIMIT));
01987     /* Receive hop limit with datagram */
01988     rb_define_const(rb_mSockConst, "IPV6_RECVHOPLIMIT", INTEGER2NUM(IPV6_RECVHOPLIMIT));
01989 #endif
01990 #endif
01991 #if defined(INET6)
01992 #if defined(IPV6_RECVHOPOPTS)
01993     /* Receive hop-by-hop options */
01994     rb_define_const(rb_cSocket, "IPV6_RECVHOPOPTS", INTEGER2NUM(IPV6_RECVHOPOPTS));
01995     /* Receive hop-by-hop options */
01996     rb_define_const(rb_mSockConst, "IPV6_RECVHOPOPTS", INTEGER2NUM(IPV6_RECVHOPOPTS));
01997 #endif
01998 #endif
01999 #if defined(INET6)
02000 #if defined(IPV6_RECVPKTINFO)
02001     /* Receive destination IP address and incoming interface */
02002     rb_define_const(rb_cSocket, "IPV6_RECVPKTINFO", INTEGER2NUM(IPV6_RECVPKTINFO));
02003     /* Receive destination IP address and incoming interface */
02004     rb_define_const(rb_mSockConst, "IPV6_RECVPKTINFO", INTEGER2NUM(IPV6_RECVPKTINFO));
02005 #endif
02006 #endif
02007 #if defined(INET6)
02008 #if defined(IPV6_RECVRTHDR)
02009     /* Receive routing header */
02010     rb_define_const(rb_cSocket, "IPV6_RECVRTHDR", INTEGER2NUM(IPV6_RECVRTHDR));
02011     /* Receive routing header */
02012     rb_define_const(rb_mSockConst, "IPV6_RECVRTHDR", INTEGER2NUM(IPV6_RECVRTHDR));
02013 #endif
02014 #endif
02015 #if defined(INET6)
02016 #if defined(IPV6_RECVTCLASS)
02017     /* Receive traffic class */
02018     rb_define_const(rb_cSocket, "IPV6_RECVTCLASS", INTEGER2NUM(IPV6_RECVTCLASS));
02019     /* Receive traffic class */
02020     rb_define_const(rb_mSockConst, "IPV6_RECVTCLASS", INTEGER2NUM(IPV6_RECVTCLASS));
02021 #endif
02022 #endif
02023 #if defined(INET6)
02024 #if defined(IPV6_RTHDR)
02025     /* Allows removal of sticky routing headers */
02026     rb_define_const(rb_cSocket, "IPV6_RTHDR", INTEGER2NUM(IPV6_RTHDR));
02027     /* Allows removal of sticky routing headers */
02028     rb_define_const(rb_mSockConst, "IPV6_RTHDR", INTEGER2NUM(IPV6_RTHDR));
02029 #endif
02030 #endif
02031 #if defined(INET6)
02032 #if defined(IPV6_RTHDRDSTOPTS)
02033     /* Allows removal of sticky destination options header */
02034     rb_define_const(rb_cSocket, "IPV6_RTHDRDSTOPTS", INTEGER2NUM(IPV6_RTHDRDSTOPTS));
02035     /* Allows removal of sticky destination options header */
02036     rb_define_const(rb_mSockConst, "IPV6_RTHDRDSTOPTS", INTEGER2NUM(IPV6_RTHDRDSTOPTS));
02037 #endif
02038 #endif
02039 #if defined(INET6)
02040 #if defined(IPV6_RTHDR_TYPE_0)
02041     /* Routing header type 0 */
02042     rb_define_const(rb_cSocket, "IPV6_RTHDR_TYPE_0", INTEGER2NUM(IPV6_RTHDR_TYPE_0));
02043     /* Routing header type 0 */
02044     rb_define_const(rb_mSockConst, "IPV6_RTHDR_TYPE_0", INTEGER2NUM(IPV6_RTHDR_TYPE_0));
02045 #endif
02046 #endif
02047 #if defined(INET6)
02048 #if defined(IPV6_RECVPATHMTU)
02049     /* Receive current path MTU with datagram */
02050     rb_define_const(rb_cSocket, "IPV6_RECVPATHMTU", INTEGER2NUM(IPV6_RECVPATHMTU));
02051     /* Receive current path MTU with datagram */
02052     rb_define_const(rb_mSockConst, "IPV6_RECVPATHMTU", INTEGER2NUM(IPV6_RECVPATHMTU));
02053 #endif
02054 #endif
02055 #if defined(INET6)
02056 #if defined(IPV6_TCLASS)
02057     /* Specify the traffic class */
02058     rb_define_const(rb_cSocket, "IPV6_TCLASS", INTEGER2NUM(IPV6_TCLASS));
02059     /* Specify the traffic class */
02060     rb_define_const(rb_mSockConst, "IPV6_TCLASS", INTEGER2NUM(IPV6_TCLASS));
02061 #endif
02062 #endif
02063 #if defined(INET6)
02064 #if defined(IPV6_USE_MIN_MTU)
02065     /* Use the minimum MTU size */
02066     rb_define_const(rb_cSocket, "IPV6_USE_MIN_MTU", INTEGER2NUM(IPV6_USE_MIN_MTU));
02067     /* Use the minimum MTU size */
02068     rb_define_const(rb_mSockConst, "IPV6_USE_MIN_MTU", INTEGER2NUM(IPV6_USE_MIN_MTU));
02069 #endif
02070 #endif
02071 #if defined(INET_ADDRSTRLEN)
02072     /* Maximum length of an IPv4 address string */
02073     rb_define_const(rb_cSocket, "INET_ADDRSTRLEN", INTEGER2NUM(INET_ADDRSTRLEN));
02074     /* Maximum length of an IPv4 address string */
02075     rb_define_const(rb_mSockConst, "INET_ADDRSTRLEN", INTEGER2NUM(INET_ADDRSTRLEN));
02076 #endif
02077 #if defined(INET6_ADDRSTRLEN)
02078     /* Maximum length of an IPv6 address string */
02079     rb_define_const(rb_cSocket, "INET6_ADDRSTRLEN", INTEGER2NUM(INET6_ADDRSTRLEN));
02080     /* Maximum length of an IPv6 address string */
02081     rb_define_const(rb_mSockConst, "INET6_ADDRSTRLEN", INTEGER2NUM(INET6_ADDRSTRLEN));
02082 #endif
02083 #if defined(IFNAMSIZ)
02084     /* Maximum interface name size */
02085     rb_define_const(rb_cSocket, "IFNAMSIZ", INTEGER2NUM(IFNAMSIZ));
02086     /* Maximum interface name size */
02087     rb_define_const(rb_mSockConst, "IFNAMSIZ", INTEGER2NUM(IFNAMSIZ));
02088 #endif
02089 #if defined(IF_NAMESIZE)
02090     /* Maximum interface name size */
02091     rb_define_const(rb_cSocket, "IF_NAMESIZE", INTEGER2NUM(IF_NAMESIZE));
02092     /* Maximum interface name size */
02093     rb_define_const(rb_mSockConst, "IF_NAMESIZE", INTEGER2NUM(IF_NAMESIZE));
02094 #endif
02095 #if defined(SOMAXCONN)
02096     /* Maximum connection requests that may be queued for a socket */
02097     rb_define_const(rb_cSocket, "SOMAXCONN", INTEGER2NUM(SOMAXCONN));
02098     /* Maximum connection requests that may be queued for a socket */
02099     rb_define_const(rb_mSockConst, "SOMAXCONN", INTEGER2NUM(SOMAXCONN));
02100 #endif
02101 #if defined(SCM_RIGHTS)
02102     /* Access rights */
02103     rb_define_const(rb_cSocket, "SCM_RIGHTS", INTEGER2NUM(SCM_RIGHTS));
02104     /* Access rights */
02105     rb_define_const(rb_mSockConst, "SCM_RIGHTS", INTEGER2NUM(SCM_RIGHTS));
02106 #endif
02107 #if defined(SCM_TIMESTAMP)
02108     /* Timestamp (timeval) */
02109     rb_define_const(rb_cSocket, "SCM_TIMESTAMP", INTEGER2NUM(SCM_TIMESTAMP));
02110     /* Timestamp (timeval) */
02111     rb_define_const(rb_mSockConst, "SCM_TIMESTAMP", INTEGER2NUM(SCM_TIMESTAMP));
02112 #endif
02113 #if defined(SCM_TIMESTAMPNS)
02114     /* Timespec (timespec) */
02115     rb_define_const(rb_cSocket, "SCM_TIMESTAMPNS", INTEGER2NUM(SCM_TIMESTAMPNS));
02116     /* Timespec (timespec) */
02117     rb_define_const(rb_mSockConst, "SCM_TIMESTAMPNS", INTEGER2NUM(SCM_TIMESTAMPNS));
02118 #endif
02119 #if defined(SCM_BINTIME)
02120     /* Timestamp (bintime) */
02121     rb_define_const(rb_cSocket, "SCM_BINTIME", INTEGER2NUM(SCM_BINTIME));
02122     /* Timestamp (bintime) */
02123     rb_define_const(rb_mSockConst, "SCM_BINTIME", INTEGER2NUM(SCM_BINTIME));
02124 #endif
02125 #if defined(SCM_CREDENTIALS)
02126     /* The sender's credentials */
02127     rb_define_const(rb_cSocket, "SCM_CREDENTIALS", INTEGER2NUM(SCM_CREDENTIALS));
02128     /* The sender's credentials */
02129     rb_define_const(rb_mSockConst, "SCM_CREDENTIALS", INTEGER2NUM(SCM_CREDENTIALS));
02130 #endif
02131 #if defined(SCM_CREDS)
02132     /* Process credentials */
02133     rb_define_const(rb_cSocket, "SCM_CREDS", INTEGER2NUM(SCM_CREDS));
02134     /* Process credentials */
02135     rb_define_const(rb_mSockConst, "SCM_CREDS", INTEGER2NUM(SCM_CREDS));
02136 #endif
02137 #if defined(SCM_UCRED)
02138     /* User credentials */
02139     rb_define_const(rb_cSocket, "SCM_UCRED", INTEGER2NUM(SCM_UCRED));
02140     /* User credentials */
02141     rb_define_const(rb_mSockConst, "SCM_UCRED", INTEGER2NUM(SCM_UCRED));
02142 #endif
02143 #if defined(LOCAL_PEERCRED)
02144     /* Retrieve peer credentials */
02145     rb_define_const(rb_cSocket, "LOCAL_PEERCRED", INTEGER2NUM(LOCAL_PEERCRED));
02146     /* Retrieve peer credentials */
02147     rb_define_const(rb_mSockConst, "LOCAL_PEERCRED", INTEGER2NUM(LOCAL_PEERCRED));
02148 #endif
02149 #if defined(LOCAL_CREDS)
02150     /* Pass credentials to receiver */
02151     rb_define_const(rb_cSocket, "LOCAL_CREDS", INTEGER2NUM(LOCAL_CREDS));
02152     /* Pass credentials to receiver */
02153     rb_define_const(rb_mSockConst, "LOCAL_CREDS", INTEGER2NUM(LOCAL_CREDS));
02154 #endif
02155 #if defined(LOCAL_CONNWAIT)
02156     /* Connect blocks until accepted */
02157     rb_define_const(rb_cSocket, "LOCAL_CONNWAIT", INTEGER2NUM(LOCAL_CONNWAIT));
02158     /* Connect blocks until accepted */
02159     rb_define_const(rb_mSockConst, "LOCAL_CONNWAIT", INTEGER2NUM(LOCAL_CONNWAIT));
02160 #endif
02161 #if defined(IFF_802_1Q_VLAN)
02162     /* 802.1Q VLAN device */
02163     rb_define_const(rb_cSocket, "IFF_802_1Q_VLAN", INTEGER2NUM(IFF_802_1Q_VLAN));
02164     /* 802.1Q VLAN device */
02165     rb_define_const(rb_mSockConst, "IFF_802_1Q_VLAN", INTEGER2NUM(IFF_802_1Q_VLAN));
02166 #endif
02167 #if defined(IFF_ALLMULTI)
02168     /* receive all multicast packets */
02169     rb_define_const(rb_cSocket, "IFF_ALLMULTI", INTEGER2NUM(IFF_ALLMULTI));
02170     /* receive all multicast packets */
02171     rb_define_const(rb_mSockConst, "IFF_ALLMULTI", INTEGER2NUM(IFF_ALLMULTI));
02172 #endif
02173 #if defined(IFF_ALTPHYS)
02174     /* use alternate physical connection */
02175     rb_define_const(rb_cSocket, "IFF_ALTPHYS", INTEGER2NUM(IFF_ALTPHYS));
02176     /* use alternate physical connection */
02177     rb_define_const(rb_mSockConst, "IFF_ALTPHYS", INTEGER2NUM(IFF_ALTPHYS));
02178 #endif
02179 #if defined(IFF_AUTOMEDIA)
02180     /* auto media select active */
02181     rb_define_const(rb_cSocket, "IFF_AUTOMEDIA", INTEGER2NUM(IFF_AUTOMEDIA));
02182     /* auto media select active */
02183     rb_define_const(rb_mSockConst, "IFF_AUTOMEDIA", INTEGER2NUM(IFF_AUTOMEDIA));
02184 #endif
02185 #if defined(IFF_BONDING)
02186     /* bonding master or slave */
02187     rb_define_const(rb_cSocket, "IFF_BONDING", INTEGER2NUM(IFF_BONDING));
02188     /* bonding master or slave */
02189     rb_define_const(rb_mSockConst, "IFF_BONDING", INTEGER2NUM(IFF_BONDING));
02190 #endif
02191 #if defined(IFF_BRIDGE_PORT)
02192     /* device used as bridge port */
02193     rb_define_const(rb_cSocket, "IFF_BRIDGE_PORT", INTEGER2NUM(IFF_BRIDGE_PORT));
02194     /* device used as bridge port */
02195     rb_define_const(rb_mSockConst, "IFF_BRIDGE_PORT", INTEGER2NUM(IFF_BRIDGE_PORT));
02196 #endif
02197 #if defined(IFF_BROADCAST)
02198     /* broadcast address valid */
02199     rb_define_const(rb_cSocket, "IFF_BROADCAST", INTEGER2NUM(IFF_BROADCAST));
02200     /* broadcast address valid */
02201     rb_define_const(rb_mSockConst, "IFF_BROADCAST", INTEGER2NUM(IFF_BROADCAST));
02202 #endif
02203 #if defined(IFF_CANTCONFIG)
02204     /* unconfigurable using ioctl(2) */
02205     rb_define_const(rb_cSocket, "IFF_CANTCONFIG", INTEGER2NUM(IFF_CANTCONFIG));
02206     /* unconfigurable using ioctl(2) */
02207     rb_define_const(rb_mSockConst, "IFF_CANTCONFIG", INTEGER2NUM(IFF_CANTCONFIG));
02208 #endif
02209 #if defined(IFF_DEBUG)
02210     /* turn on debugging */
02211     rb_define_const(rb_cSocket, "IFF_DEBUG", INTEGER2NUM(IFF_DEBUG));
02212     /* turn on debugging */
02213     rb_define_const(rb_mSockConst, "IFF_DEBUG", INTEGER2NUM(IFF_DEBUG));
02214 #endif
02215 #if defined(IFF_DISABLE_NETPOLL)
02216     /* disable netpoll at run-time */
02217     rb_define_const(rb_cSocket, "IFF_DISABLE_NETPOLL", INTEGER2NUM(IFF_DISABLE_NETPOLL));
02218     /* disable netpoll at run-time */
02219     rb_define_const(rb_mSockConst, "IFF_DISABLE_NETPOLL", INTEGER2NUM(IFF_DISABLE_NETPOLL));
02220 #endif
02221 #if defined(IFF_DONT_BRIDGE)
02222     /* disallow bridging this ether dev */
02223     rb_define_const(rb_cSocket, "IFF_DONT_BRIDGE", INTEGER2NUM(IFF_DONT_BRIDGE));
02224     /* disallow bridging this ether dev */
02225     rb_define_const(rb_mSockConst, "IFF_DONT_BRIDGE", INTEGER2NUM(IFF_DONT_BRIDGE));
02226 #endif
02227 #if defined(IFF_DORMANT)
02228     /* driver signals dormant */
02229     rb_define_const(rb_cSocket, "IFF_DORMANT", INTEGER2NUM(IFF_DORMANT));
02230     /* driver signals dormant */
02231     rb_define_const(rb_mSockConst, "IFF_DORMANT", INTEGER2NUM(IFF_DORMANT));
02232 #endif
02233 #if defined(IFF_DRV_OACTIVE)
02234     /* tx hardware queue is full */
02235     rb_define_const(rb_cSocket, "IFF_DRV_OACTIVE", INTEGER2NUM(IFF_DRV_OACTIVE));
02236     /* tx hardware queue is full */
02237     rb_define_const(rb_mSockConst, "IFF_DRV_OACTIVE", INTEGER2NUM(IFF_DRV_OACTIVE));
02238 #endif
02239 #if defined(IFF_DRV_RUNNING)
02240     /* resources allocated */
02241     rb_define_const(rb_cSocket, "IFF_DRV_RUNNING", INTEGER2NUM(IFF_DRV_RUNNING));
02242     /* resources allocated */
02243     rb_define_const(rb_mSockConst, "IFF_DRV_RUNNING", INTEGER2NUM(IFF_DRV_RUNNING));
02244 #endif
02245 #if defined(IFF_DYING)
02246     /* interface is winding down */
02247     rb_define_const(rb_cSocket, "IFF_DYING", INTEGER2NUM(IFF_DYING));
02248     /* interface is winding down */
02249     rb_define_const(rb_mSockConst, "IFF_DYING", INTEGER2NUM(IFF_DYING));
02250 #endif
02251 #if defined(IFF_DYNAMIC)
02252     /* dialup device with changing addresses */
02253     rb_define_const(rb_cSocket, "IFF_DYNAMIC", INTEGER2NUM(IFF_DYNAMIC));
02254     /* dialup device with changing addresses */
02255     rb_define_const(rb_mSockConst, "IFF_DYNAMIC", INTEGER2NUM(IFF_DYNAMIC));
02256 #endif
02257 #if defined(IFF_EBRIDGE)
02258     /* ethernet bridging device */
02259     rb_define_const(rb_cSocket, "IFF_EBRIDGE", INTEGER2NUM(IFF_EBRIDGE));
02260     /* ethernet bridging device */
02261     rb_define_const(rb_mSockConst, "IFF_EBRIDGE", INTEGER2NUM(IFF_EBRIDGE));
02262 #endif
02263 #if defined(IFF_ECHO)
02264     /* echo sent packets */
02265     rb_define_const(rb_cSocket, "IFF_ECHO", INTEGER2NUM(IFF_ECHO));
02266     /* echo sent packets */
02267     rb_define_const(rb_mSockConst, "IFF_ECHO", INTEGER2NUM(IFF_ECHO));
02268 #endif
02269 #if defined(IFF_ISATAP)
02270     /* ISATAP interface (RFC4214) */
02271     rb_define_const(rb_cSocket, "IFF_ISATAP", INTEGER2NUM(IFF_ISATAP));
02272     /* ISATAP interface (RFC4214) */
02273     rb_define_const(rb_mSockConst, "IFF_ISATAP", INTEGER2NUM(IFF_ISATAP));
02274 #endif
02275 #if defined(IFF_LINK0)
02276     /* per link layer defined bit 0 */
02277     rb_define_const(rb_cSocket, "IFF_LINK0", INTEGER2NUM(IFF_LINK0));
02278     /* per link layer defined bit 0 */
02279     rb_define_const(rb_mSockConst, "IFF_LINK0", INTEGER2NUM(IFF_LINK0));
02280 #endif
02281 #if defined(IFF_LINK1)
02282     /* per link layer defined bit 1 */
02283     rb_define_const(rb_cSocket, "IFF_LINK1", INTEGER2NUM(IFF_LINK1));
02284     /* per link layer defined bit 1 */
02285     rb_define_const(rb_mSockConst, "IFF_LINK1", INTEGER2NUM(IFF_LINK1));
02286 #endif
02287 #if defined(IFF_LINK2)
02288     /* per link layer defined bit 2 */
02289     rb_define_const(rb_cSocket, "IFF_LINK2", INTEGER2NUM(IFF_LINK2));
02290     /* per link layer defined bit 2 */
02291     rb_define_const(rb_mSockConst, "IFF_LINK2", INTEGER2NUM(IFF_LINK2));
02292 #endif
02293 #if defined(IFF_LIVE_ADDR_CHANGE)
02294     /* hardware address change when it's running */
02295     rb_define_const(rb_cSocket, "IFF_LIVE_ADDR_CHANGE", INTEGER2NUM(IFF_LIVE_ADDR_CHANGE));
02296     /* hardware address change when it's running */
02297     rb_define_const(rb_mSockConst, "IFF_LIVE_ADDR_CHANGE", INTEGER2NUM(IFF_LIVE_ADDR_CHANGE));
02298 #endif
02299 #if defined(IFF_LOOPBACK)
02300     /* loopback net */
02301     rb_define_const(rb_cSocket, "IFF_LOOPBACK", INTEGER2NUM(IFF_LOOPBACK));
02302     /* loopback net */
02303     rb_define_const(rb_mSockConst, "IFF_LOOPBACK", INTEGER2NUM(IFF_LOOPBACK));
02304 #endif
02305 #if defined(IFF_LOWER_UP)
02306     /* driver signals L1 up */
02307     rb_define_const(rb_cSocket, "IFF_LOWER_UP", INTEGER2NUM(IFF_LOWER_UP));
02308     /* driver signals L1 up */
02309     rb_define_const(rb_mSockConst, "IFF_LOWER_UP", INTEGER2NUM(IFF_LOWER_UP));
02310 #endif
02311 #if defined(IFF_MACVLAN_PORT)
02312     /* device used as macvlan port */
02313     rb_define_const(rb_cSocket, "IFF_MACVLAN_PORT", INTEGER2NUM(IFF_MACVLAN_PORT));
02314     /* device used as macvlan port */
02315     rb_define_const(rb_mSockConst, "IFF_MACVLAN_PORT", INTEGER2NUM(IFF_MACVLAN_PORT));
02316 #endif
02317 #if defined(IFF_MASTER)
02318     /* master of a load balancer */
02319     rb_define_const(rb_cSocket, "IFF_MASTER", INTEGER2NUM(IFF_MASTER));
02320     /* master of a load balancer */
02321     rb_define_const(rb_mSockConst, "IFF_MASTER", INTEGER2NUM(IFF_MASTER));
02322 #endif
02323 #if defined(IFF_MASTER_8023AD)
02324     /* bonding master, 802.3ad. */
02325     rb_define_const(rb_cSocket, "IFF_MASTER_8023AD", INTEGER2NUM(IFF_MASTER_8023AD));
02326     /* bonding master, 802.3ad. */
02327     rb_define_const(rb_mSockConst, "IFF_MASTER_8023AD", INTEGER2NUM(IFF_MASTER_8023AD));
02328 #endif
02329 #if defined(IFF_MASTER_ALB)
02330     /* bonding master, balance-alb. */
02331     rb_define_const(rb_cSocket, "IFF_MASTER_ALB", INTEGER2NUM(IFF_MASTER_ALB));
02332     /* bonding master, balance-alb. */
02333     rb_define_const(rb_mSockConst, "IFF_MASTER_ALB", INTEGER2NUM(IFF_MASTER_ALB));
02334 #endif
02335 #if defined(IFF_MASTER_ARPMON)
02336     /* bonding master, ARP mon in use */
02337     rb_define_const(rb_cSocket, "IFF_MASTER_ARPMON", INTEGER2NUM(IFF_MASTER_ARPMON));
02338     /* bonding master, ARP mon in use */
02339     rb_define_const(rb_mSockConst, "IFF_MASTER_ARPMON", INTEGER2NUM(IFF_MASTER_ARPMON));
02340 #endif
02341 #if defined(IFF_MONITOR)
02342     /* user-requested monitor mode */
02343     rb_define_const(rb_cSocket, "IFF_MONITOR", INTEGER2NUM(IFF_MONITOR));
02344     /* user-requested monitor mode */
02345     rb_define_const(rb_mSockConst, "IFF_MONITOR", INTEGER2NUM(IFF_MONITOR));
02346 #endif
02347 #if defined(IFF_MULTICAST)
02348     /* supports multicast */
02349     rb_define_const(rb_cSocket, "IFF_MULTICAST", INTEGER2NUM(IFF_MULTICAST));
02350     /* supports multicast */
02351     rb_define_const(rb_mSockConst, "IFF_MULTICAST", INTEGER2NUM(IFF_MULTICAST));
02352 #endif
02353 #if defined(IFF_NOARP)
02354     /* no address resolution protocol */
02355     rb_define_const(rb_cSocket, "IFF_NOARP", INTEGER2NUM(IFF_NOARP));
02356     /* no address resolution protocol */
02357     rb_define_const(rb_mSockConst, "IFF_NOARP", INTEGER2NUM(IFF_NOARP));
02358 #endif
02359 #if defined(IFF_NOTRAILERS)
02360     /* avoid use of trailers */
02361     rb_define_const(rb_cSocket, "IFF_NOTRAILERS", INTEGER2NUM(IFF_NOTRAILERS));
02362     /* avoid use of trailers */
02363     rb_define_const(rb_mSockConst, "IFF_NOTRAILERS", INTEGER2NUM(IFF_NOTRAILERS));
02364 #endif
02365 #if defined(IFF_OACTIVE)
02366     /* transmission in progress */
02367     rb_define_const(rb_cSocket, "IFF_OACTIVE", INTEGER2NUM(IFF_OACTIVE));
02368     /* transmission in progress */
02369     rb_define_const(rb_mSockConst, "IFF_OACTIVE", INTEGER2NUM(IFF_OACTIVE));
02370 #endif
02371 #if defined(IFF_OVS_DATAPATH)
02372     /* device used as Open vSwitch datapath port */
02373     rb_define_const(rb_cSocket, "IFF_OVS_DATAPATH", INTEGER2NUM(IFF_OVS_DATAPATH));
02374     /* device used as Open vSwitch datapath port */
02375     rb_define_const(rb_mSockConst, "IFF_OVS_DATAPATH", INTEGER2NUM(IFF_OVS_DATAPATH));
02376 #endif
02377 #if defined(IFF_POINTOPOINT)
02378     /* point-to-point link */
02379     rb_define_const(rb_cSocket, "IFF_POINTOPOINT", INTEGER2NUM(IFF_POINTOPOINT));
02380     /* point-to-point link */
02381     rb_define_const(rb_mSockConst, "IFF_POINTOPOINT", INTEGER2NUM(IFF_POINTOPOINT));
02382 #endif
02383 #if defined(IFF_PORTSEL)
02384     /* can set media type */
02385     rb_define_const(rb_cSocket, "IFF_PORTSEL", INTEGER2NUM(IFF_PORTSEL));
02386     /* can set media type */
02387     rb_define_const(rb_mSockConst, "IFF_PORTSEL", INTEGER2NUM(IFF_PORTSEL));
02388 #endif
02389 #if defined(IFF_PPROMISC)
02390     /* user-requested promisc mode */
02391     rb_define_const(rb_cSocket, "IFF_PPROMISC", INTEGER2NUM(IFF_PPROMISC));
02392     /* user-requested promisc mode */
02393     rb_define_const(rb_mSockConst, "IFF_PPROMISC", INTEGER2NUM(IFF_PPROMISC));
02394 #endif
02395 #if defined(IFF_PROMISC)
02396     /* receive all packets */
02397     rb_define_const(rb_cSocket, "IFF_PROMISC", INTEGER2NUM(IFF_PROMISC));
02398     /* receive all packets */
02399     rb_define_const(rb_mSockConst, "IFF_PROMISC", INTEGER2NUM(IFF_PROMISC));
02400 #endif
02401 #if defined(IFF_RENAMING)
02402     /* interface is being renamed */
02403     rb_define_const(rb_cSocket, "IFF_RENAMING", INTEGER2NUM(IFF_RENAMING));
02404     /* interface is being renamed */
02405     rb_define_const(rb_mSockConst, "IFF_RENAMING", INTEGER2NUM(IFF_RENAMING));
02406 #endif
02407 #if defined(IFF_ROUTE)
02408     /* routing entry installed */
02409     rb_define_const(rb_cSocket, "IFF_ROUTE", INTEGER2NUM(IFF_ROUTE));
02410     /* routing entry installed */
02411     rb_define_const(rb_mSockConst, "IFF_ROUTE", INTEGER2NUM(IFF_ROUTE));
02412 #endif
02413 #if defined(IFF_RUNNING)
02414     /* resources allocated */
02415     rb_define_const(rb_cSocket, "IFF_RUNNING", INTEGER2NUM(IFF_RUNNING));
02416     /* resources allocated */
02417     rb_define_const(rb_mSockConst, "IFF_RUNNING", INTEGER2NUM(IFF_RUNNING));
02418 #endif
02419 #if defined(IFF_SIMPLEX)
02420     /* can't hear own transmissions */
02421     rb_define_const(rb_cSocket, "IFF_SIMPLEX", INTEGER2NUM(IFF_SIMPLEX));
02422     /* can't hear own transmissions */
02423     rb_define_const(rb_mSockConst, "IFF_SIMPLEX", INTEGER2NUM(IFF_SIMPLEX));
02424 #endif
02425 #if defined(IFF_SLAVE)
02426     /* slave of a load balancer */
02427     rb_define_const(rb_cSocket, "IFF_SLAVE", INTEGER2NUM(IFF_SLAVE));
02428     /* slave of a load balancer */
02429     rb_define_const(rb_mSockConst, "IFF_SLAVE", INTEGER2NUM(IFF_SLAVE));
02430 #endif
02431 #if defined(IFF_SLAVE_INACTIVE)
02432     /* bonding slave not the curr. active */
02433     rb_define_const(rb_cSocket, "IFF_SLAVE_INACTIVE", INTEGER2NUM(IFF_SLAVE_INACTIVE));
02434     /* bonding slave not the curr. active */
02435     rb_define_const(rb_mSockConst, "IFF_SLAVE_INACTIVE", INTEGER2NUM(IFF_SLAVE_INACTIVE));
02436 #endif
02437 #if defined(IFF_SLAVE_NEEDARP)
02438     /* need ARPs for validation */
02439     rb_define_const(rb_cSocket, "IFF_SLAVE_NEEDARP", INTEGER2NUM(IFF_SLAVE_NEEDARP));
02440     /* need ARPs for validation */
02441     rb_define_const(rb_mSockConst, "IFF_SLAVE_NEEDARP", INTEGER2NUM(IFF_SLAVE_NEEDARP));
02442 #endif
02443 #if defined(IFF_SMART)
02444     /* interface manages own routes */
02445     rb_define_const(rb_cSocket, "IFF_SMART", INTEGER2NUM(IFF_SMART));
02446     /* interface manages own routes */
02447     rb_define_const(rb_mSockConst, "IFF_SMART", INTEGER2NUM(IFF_SMART));
02448 #endif
02449 #if defined(IFF_STATICARP)
02450     /* static ARP */
02451     rb_define_const(rb_cSocket, "IFF_STATICARP", INTEGER2NUM(IFF_STATICARP));
02452     /* static ARP */
02453     rb_define_const(rb_mSockConst, "IFF_STATICARP", INTEGER2NUM(IFF_STATICARP));
02454 #endif
02455 #if defined(IFF_SUPP_NOFCS)
02456     /* sending custom FCS */
02457     rb_define_const(rb_cSocket, "IFF_SUPP_NOFCS", INTEGER2NUM(IFF_SUPP_NOFCS));
02458     /* sending custom FCS */
02459     rb_define_const(rb_mSockConst, "IFF_SUPP_NOFCS", INTEGER2NUM(IFF_SUPP_NOFCS));
02460 #endif
02461 #if defined(IFF_TEAM_PORT)
02462     /* used as team port */
02463     rb_define_const(rb_cSocket, "IFF_TEAM_PORT", INTEGER2NUM(IFF_TEAM_PORT));
02464     /* used as team port */
02465     rb_define_const(rb_mSockConst, "IFF_TEAM_PORT", INTEGER2NUM(IFF_TEAM_PORT));
02466 #endif
02467 #if defined(IFF_TX_SKB_SHARING)
02468     /* sharing skbs on transmit */
02469     rb_define_const(rb_cSocket, "IFF_TX_SKB_SHARING", INTEGER2NUM(IFF_TX_SKB_SHARING));
02470     /* sharing skbs on transmit */
02471     rb_define_const(rb_mSockConst, "IFF_TX_SKB_SHARING", INTEGER2NUM(IFF_TX_SKB_SHARING));
02472 #endif
02473 #if defined(IFF_UNICAST_FLT)
02474     /* unicast filtering */
02475     rb_define_const(rb_cSocket, "IFF_UNICAST_FLT", INTEGER2NUM(IFF_UNICAST_FLT));
02476     /* unicast filtering */
02477     rb_define_const(rb_mSockConst, "IFF_UNICAST_FLT", INTEGER2NUM(IFF_UNICAST_FLT));
02478 #endif
02479 #if defined(IFF_UP)
02480     /* interface is up */
02481     rb_define_const(rb_cSocket, "IFF_UP", INTEGER2NUM(IFF_UP));
02482     /* interface is up */
02483     rb_define_const(rb_mSockConst, "IFF_UP", INTEGER2NUM(IFF_UP));
02484 #endif
02485 #if defined(IFF_WAN_HDLC)
02486     /* WAN HDLC device */
02487     rb_define_const(rb_cSocket, "IFF_WAN_HDLC", INTEGER2NUM(IFF_WAN_HDLC));
02488     /* WAN HDLC device */
02489     rb_define_const(rb_mSockConst, "IFF_WAN_HDLC", INTEGER2NUM(IFF_WAN_HDLC));
02490 #endif
02491 #if defined(IFF_XMIT_DST_RELEASE)
02492     /* dev_hard_start_xmit() is allowed to release skb->dst */
02493     rb_define_const(rb_cSocket, "IFF_XMIT_DST_RELEASE", INTEGER2NUM(IFF_XMIT_DST_RELEASE));
02494     /* dev_hard_start_xmit() is allowed to release skb->dst */
02495     rb_define_const(rb_mSockConst, "IFF_XMIT_DST_RELEASE", INTEGER2NUM(IFF_XMIT_DST_RELEASE));
02496 #endif
02497 #if defined(IFF_VOLATILE)
02498     /* volatile flags */
02499     rb_define_const(rb_cSocket, "IFF_VOLATILE", INTEGER2NUM(IFF_VOLATILE));
02500     /* volatile flags */
02501     rb_define_const(rb_mSockConst, "IFF_VOLATILE", INTEGER2NUM(IFF_VOLATILE));
02502 #endif
02503 #if defined(IFF_CANTCHANGE)
02504     /* flags not changeable */
02505     rb_define_const(rb_cSocket, "IFF_CANTCHANGE", INTEGER2NUM(IFF_CANTCHANGE));
02506     /* flags not changeable */
02507     rb_define_const(rb_mSockConst, "IFF_CANTCHANGE", INTEGER2NUM(IFF_CANTCHANGE));
02508 #endif
02509 
02510     rsock_intern_family_hash = st_init_numtable();
02511 #ifdef AF_E164
02512     st_insert(rsock_intern_family_hash, (st_data_t)AF_E164, (st_data_t)rb_intern2("AF_E164", 7));
02513 #endif
02514 #ifdef AF_PACKET
02515     st_insert(rsock_intern_family_hash, (st_data_t)AF_PACKET, (st_data_t)rb_intern2("AF_PACKET", 9));
02516 #endif
02517 #ifdef AF_MAX
02518     st_insert(rsock_intern_family_hash, (st_data_t)AF_MAX, (st_data_t)rb_intern2("AF_MAX", 6));
02519 #endif
02520 #ifdef AF_NETGRAPH
02521     st_insert(rsock_intern_family_hash, (st_data_t)AF_NETGRAPH, (st_data_t)rb_intern2("AF_NETGRAPH", 11));
02522 #endif
02523 #ifdef AF_ATM
02524     st_insert(rsock_intern_family_hash, (st_data_t)AF_ATM, (st_data_t)rb_intern2("AF_ATM", 6));
02525 #endif
02526 #ifdef AF_PPP
02527     st_insert(rsock_intern_family_hash, (st_data_t)AF_PPP, (st_data_t)rb_intern2("AF_PPP", 6));
02528 #endif
02529 #ifdef AF_NETBIOS
02530     st_insert(rsock_intern_family_hash, (st_data_t)AF_NETBIOS, (st_data_t)rb_intern2("AF_NETBIOS", 10));
02531 #endif
02532 #ifdef AF_SYSTEM
02533     st_insert(rsock_intern_family_hash, (st_data_t)AF_SYSTEM, (st_data_t)rb_intern2("AF_SYSTEM", 9));
02534 #endif
02535 #ifdef AF_NATM
02536     st_insert(rsock_intern_family_hash, (st_data_t)AF_NATM, (st_data_t)rb_intern2("AF_NATM", 7));
02537 #endif
02538 #ifdef AF_ISDN
02539     st_insert(rsock_intern_family_hash, (st_data_t)AF_ISDN, (st_data_t)rb_intern2("AF_ISDN", 7));
02540 #endif
02541 #ifdef AF_NDRV
02542     st_insert(rsock_intern_family_hash, (st_data_t)AF_NDRV, (st_data_t)rb_intern2("AF_NDRV", 7));
02543 #endif
02544 #ifdef AF_SIP
02545     st_insert(rsock_intern_family_hash, (st_data_t)AF_SIP, (st_data_t)rb_intern2("AF_SIP", 6));
02546 #endif
02547 #ifdef AF_CNT
02548     st_insert(rsock_intern_family_hash, (st_data_t)AF_CNT, (st_data_t)rb_intern2("AF_CNT", 6));
02549 #endif
02550 #ifdef AF_COIP
02551     st_insert(rsock_intern_family_hash, (st_data_t)AF_COIP, (st_data_t)rb_intern2("AF_COIP", 7));
02552 #endif
02553 #ifdef AF_LINK
02554     st_insert(rsock_intern_family_hash, (st_data_t)AF_LINK, (st_data_t)rb_intern2("AF_LINK", 7));
02555 #endif
02556 #ifdef AF_ROUTE
02557     st_insert(rsock_intern_family_hash, (st_data_t)AF_ROUTE, (st_data_t)rb_intern2("AF_ROUTE", 8));
02558 #endif
02559 #ifdef AF_HYLINK
02560     st_insert(rsock_intern_family_hash, (st_data_t)AF_HYLINK, (st_data_t)rb_intern2("AF_HYLINK", 9));
02561 #endif
02562 #ifdef AF_LAT
02563     st_insert(rsock_intern_family_hash, (st_data_t)AF_LAT, (st_data_t)rb_intern2("AF_LAT", 6));
02564 #endif
02565 #ifdef AF_DLI
02566     st_insert(rsock_intern_family_hash, (st_data_t)AF_DLI, (st_data_t)rb_intern2("AF_DLI", 6));
02567 #endif
02568 #ifdef AF_DEC
02569     st_insert(rsock_intern_family_hash, (st_data_t)AF_DEC, (st_data_t)rb_intern2("AF_DEC", 6));
02570 #endif
02571 #ifdef AF_SNA
02572     st_insert(rsock_intern_family_hash, (st_data_t)AF_SNA, (st_data_t)rb_intern2("AF_SNA", 6));
02573 #endif
02574 #ifdef AF_CCITT
02575     st_insert(rsock_intern_family_hash, (st_data_t)AF_CCITT, (st_data_t)rb_intern2("AF_CCITT", 8));
02576 #endif
02577 #ifdef AF_DATAKIT
02578     st_insert(rsock_intern_family_hash, (st_data_t)AF_DATAKIT, (st_data_t)rb_intern2("AF_DATAKIT", 10));
02579 #endif
02580 #ifdef AF_ECMA
02581     st_insert(rsock_intern_family_hash, (st_data_t)AF_ECMA, (st_data_t)rb_intern2("AF_ECMA", 7));
02582 #endif
02583 #ifdef AF_OSI
02584     st_insert(rsock_intern_family_hash, (st_data_t)AF_OSI, (st_data_t)rb_intern2("AF_OSI", 6));
02585 #endif
02586 #ifdef AF_ISO
02587     st_insert(rsock_intern_family_hash, (st_data_t)AF_ISO, (st_data_t)rb_intern2("AF_ISO", 6));
02588 #endif
02589 #ifdef AF_NS
02590     st_insert(rsock_intern_family_hash, (st_data_t)AF_NS, (st_data_t)rb_intern2("AF_NS", 5));
02591 #endif
02592 #ifdef AF_CHAOS
02593     st_insert(rsock_intern_family_hash, (st_data_t)AF_CHAOS, (st_data_t)rb_intern2("AF_CHAOS", 8));
02594 #endif
02595 #ifdef AF_PUP
02596     st_insert(rsock_intern_family_hash, (st_data_t)AF_PUP, (st_data_t)rb_intern2("AF_PUP", 6));
02597 #endif
02598 #ifdef AF_IMPLINK
02599     st_insert(rsock_intern_family_hash, (st_data_t)AF_IMPLINK, (st_data_t)rb_intern2("AF_IMPLINK", 10));
02600 #endif
02601 #ifdef AF_LOCAL
02602     st_insert(rsock_intern_family_hash, (st_data_t)AF_LOCAL, (st_data_t)rb_intern2("AF_LOCAL", 8));
02603 #endif
02604 #ifdef AF_APPLETALK
02605     st_insert(rsock_intern_family_hash, (st_data_t)AF_APPLETALK, (st_data_t)rb_intern2("AF_APPLETALK", 12));
02606 #endif
02607 #ifdef AF_IPX
02608     st_insert(rsock_intern_family_hash, (st_data_t)AF_IPX, (st_data_t)rb_intern2("AF_IPX", 6));
02609 #endif
02610 #ifdef AF_AX25
02611     st_insert(rsock_intern_family_hash, (st_data_t)AF_AX25, (st_data_t)rb_intern2("AF_AX25", 7));
02612 #endif
02613 #ifdef AF_UNIX
02614     st_insert(rsock_intern_family_hash, (st_data_t)AF_UNIX, (st_data_t)rb_intern2("AF_UNIX", 7));
02615 #endif
02616 #ifdef AF_INET6
02617     st_insert(rsock_intern_family_hash, (st_data_t)AF_INET6, (st_data_t)rb_intern2("AF_INET6", 8));
02618 #endif
02619 #ifdef AF_INET
02620     st_insert(rsock_intern_family_hash, (st_data_t)AF_INET, (st_data_t)rb_intern2("AF_INET", 7));
02621 #endif
02622 #ifdef AF_UNSPEC
02623     st_insert(rsock_intern_family_hash, (st_data_t)AF_UNSPEC, (st_data_t)rb_intern2("AF_UNSPEC", 9));
02624 #endif
02625 
02626     rsock_intern_family_noprefix_hash = st_init_numtable();
02627 #ifdef AF_E164
02628     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_E164, (st_data_t)rb_intern2("AF_E164", 7));
02629 #endif
02630 #ifdef AF_PACKET
02631     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PACKET, (st_data_t)rb_intern2("AF_PACKET", 9));
02632 #endif
02633 #ifdef AF_MAX
02634     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_MAX, (st_data_t)rb_intern2("AF_MAX", 6));
02635 #endif
02636 #ifdef AF_NETGRAPH
02637     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETGRAPH, (st_data_t)rb_intern2("AF_NETGRAPH", 11));
02638 #endif
02639 #ifdef AF_ATM
02640     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ATM, (st_data_t)rb_intern2("AF_ATM", 6));
02641 #endif
02642 #ifdef AF_PPP
02643     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PPP, (st_data_t)rb_intern2("AF_PPP", 6));
02644 #endif
02645 #ifdef AF_NETBIOS
02646     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETBIOS, (st_data_t)rb_intern2("AF_NETBIOS", 10));
02647 #endif
02648 #ifdef AF_SYSTEM
02649     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SYSTEM, (st_data_t)rb_intern2("AF_SYSTEM", 9));
02650 #endif
02651 #ifdef AF_NATM
02652     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NATM, (st_data_t)rb_intern2("AF_NATM", 7));
02653 #endif
02654 #ifdef AF_ISDN
02655     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISDN, (st_data_t)rb_intern2("AF_ISDN", 7));
02656 #endif
02657 #ifdef AF_NDRV
02658     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NDRV, (st_data_t)rb_intern2("AF_NDRV", 7));
02659 #endif
02660 #ifdef AF_SIP
02661     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SIP, (st_data_t)rb_intern2("AF_SIP", 6));
02662 #endif
02663 #ifdef AF_CNT
02664     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CNT, (st_data_t)rb_intern2("AF_CNT", 6));
02665 #endif
02666 #ifdef AF_COIP
02667     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_COIP, (st_data_t)rb_intern2("AF_COIP", 7));
02668 #endif
02669 #ifdef AF_LINK
02670     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LINK, (st_data_t)rb_intern2("AF_LINK", 7));
02671 #endif
02672 #ifdef AF_ROUTE
02673     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ROUTE, (st_data_t)rb_intern2("AF_ROUTE", 8));
02674 #endif
02675 #ifdef AF_HYLINK
02676     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_HYLINK, (st_data_t)rb_intern2("AF_HYLINK", 9));
02677 #endif
02678 #ifdef AF_LAT
02679     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LAT, (st_data_t)rb_intern2("AF_LAT", 6));
02680 #endif
02681 #ifdef AF_DLI
02682     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DLI, (st_data_t)rb_intern2("AF_DLI", 6));
02683 #endif
02684 #ifdef AF_DEC
02685     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DEC, (st_data_t)rb_intern2("AF_DEC", 6));
02686 #endif
02687 #ifdef AF_SNA
02688     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SNA, (st_data_t)rb_intern2("AF_SNA", 6));
02689 #endif
02690 #ifdef AF_CCITT
02691     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CCITT, (st_data_t)rb_intern2("AF_CCITT", 8));
02692 #endif
02693 #ifdef AF_DATAKIT
02694     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DATAKIT, (st_data_t)rb_intern2("AF_DATAKIT", 10));
02695 #endif
02696 #ifdef AF_ECMA
02697     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ECMA, (st_data_t)rb_intern2("AF_ECMA", 7));
02698 #endif
02699 #ifdef AF_OSI
02700     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_OSI, (st_data_t)rb_intern2("AF_OSI", 6));
02701 #endif
02702 #ifdef AF_ISO
02703     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISO, (st_data_t)rb_intern2("AF_ISO", 6));
02704 #endif
02705 #ifdef AF_NS
02706     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NS, (st_data_t)rb_intern2("AF_NS", 5));
02707 #endif
02708 #ifdef AF_CHAOS
02709     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CHAOS, (st_data_t)rb_intern2("AF_CHAOS", 8));
02710 #endif
02711 #ifdef AF_PUP
02712     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PUP, (st_data_t)rb_intern2("AF_PUP", 6));
02713 #endif
02714 #ifdef AF_IMPLINK
02715     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IMPLINK, (st_data_t)rb_intern2("AF_IMPLINK", 10));
02716 #endif
02717 #ifdef AF_LOCAL
02718     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LOCAL, (st_data_t)rb_intern2("AF_LOCAL", 8));
02719 #endif
02720 #ifdef AF_APPLETALK
02721     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_APPLETALK, (st_data_t)rb_intern2("AF_APPLETALK", 12));
02722 #endif
02723 #ifdef AF_IPX
02724     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IPX, (st_data_t)rb_intern2("AF_IPX", 6));
02725 #endif
02726 #ifdef AF_AX25
02727     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_AX25, (st_data_t)rb_intern2("AF_AX25", 7));
02728 #endif
02729 #ifdef AF_UNIX
02730     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNIX, (st_data_t)rb_intern2("AF_UNIX", 7));
02731 #endif
02732 #ifdef AF_INET6
02733     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET6, (st_data_t)rb_intern2("AF_INET6", 8));
02734 #endif
02735 #ifdef AF_INET
02736     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET, (st_data_t)rb_intern2("AF_INET", 7));
02737 #endif
02738 #ifdef AF_UNSPEC
02739     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNSPEC, (st_data_t)rb_intern2("AF_UNSPEC", 9));
02740 #endif
02741 #ifdef AF_E164
02742     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_E164, (st_data_t)rb_intern2("E164", 4));
02743 #endif
02744 #ifdef AF_PACKET
02745     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PACKET, (st_data_t)rb_intern2("PACKET", 6));
02746 #endif
02747 #ifdef AF_MAX
02748     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_MAX, (st_data_t)rb_intern2("MAX", 3));
02749 #endif
02750 #ifdef AF_NETGRAPH
02751     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETGRAPH, (st_data_t)rb_intern2("NETGRAPH", 8));
02752 #endif
02753 #ifdef AF_ATM
02754     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ATM, (st_data_t)rb_intern2("ATM", 3));
02755 #endif
02756 #ifdef AF_PPP
02757     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PPP, (st_data_t)rb_intern2("PPP", 3));
02758 #endif
02759 #ifdef AF_NETBIOS
02760     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NETBIOS, (st_data_t)rb_intern2("NETBIOS", 7));
02761 #endif
02762 #ifdef AF_SYSTEM
02763     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SYSTEM, (st_data_t)rb_intern2("SYSTEM", 6));
02764 #endif
02765 #ifdef AF_NATM
02766     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NATM, (st_data_t)rb_intern2("NATM", 4));
02767 #endif
02768 #ifdef AF_ISDN
02769     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISDN, (st_data_t)rb_intern2("ISDN", 4));
02770 #endif
02771 #ifdef AF_NDRV
02772     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NDRV, (st_data_t)rb_intern2("NDRV", 4));
02773 #endif
02774 #ifdef AF_SIP
02775     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SIP, (st_data_t)rb_intern2("SIP", 3));
02776 #endif
02777 #ifdef AF_CNT
02778     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CNT, (st_data_t)rb_intern2("CNT", 3));
02779 #endif
02780 #ifdef AF_COIP
02781     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_COIP, (st_data_t)rb_intern2("COIP", 4));
02782 #endif
02783 #ifdef AF_LINK
02784     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LINK, (st_data_t)rb_intern2("LINK", 4));
02785 #endif
02786 #ifdef AF_ROUTE
02787     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ROUTE, (st_data_t)rb_intern2("ROUTE", 5));
02788 #endif
02789 #ifdef AF_HYLINK
02790     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_HYLINK, (st_data_t)rb_intern2("HYLINK", 6));
02791 #endif
02792 #ifdef AF_LAT
02793     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LAT, (st_data_t)rb_intern2("LAT", 3));
02794 #endif
02795 #ifdef AF_DLI
02796     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DLI, (st_data_t)rb_intern2("DLI", 3));
02797 #endif
02798 #ifdef AF_DEC
02799     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DEC, (st_data_t)rb_intern2("DEC", 3));
02800 #endif
02801 #ifdef AF_SNA
02802     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_SNA, (st_data_t)rb_intern2("SNA", 3));
02803 #endif
02804 #ifdef AF_CCITT
02805     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CCITT, (st_data_t)rb_intern2("CCITT", 5));
02806 #endif
02807 #ifdef AF_DATAKIT
02808     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_DATAKIT, (st_data_t)rb_intern2("DATAKIT", 7));
02809 #endif
02810 #ifdef AF_ECMA
02811     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ECMA, (st_data_t)rb_intern2("ECMA", 4));
02812 #endif
02813 #ifdef AF_OSI
02814     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_OSI, (st_data_t)rb_intern2("OSI", 3));
02815 #endif
02816 #ifdef AF_ISO
02817     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_ISO, (st_data_t)rb_intern2("ISO", 3));
02818 #endif
02819 #ifdef AF_NS
02820     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_NS, (st_data_t)rb_intern2("NS", 2));
02821 #endif
02822 #ifdef AF_CHAOS
02823     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_CHAOS, (st_data_t)rb_intern2("CHAOS", 5));
02824 #endif
02825 #ifdef AF_PUP
02826     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_PUP, (st_data_t)rb_intern2("PUP", 3));
02827 #endif
02828 #ifdef AF_IMPLINK
02829     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IMPLINK, (st_data_t)rb_intern2("IMPLINK", 7));
02830 #endif
02831 #ifdef AF_LOCAL
02832     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_LOCAL, (st_data_t)rb_intern2("LOCAL", 5));
02833 #endif
02834 #ifdef AF_APPLETALK
02835     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_APPLETALK, (st_data_t)rb_intern2("APPLETALK", 9));
02836 #endif
02837 #ifdef AF_IPX
02838     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_IPX, (st_data_t)rb_intern2("IPX", 3));
02839 #endif
02840 #ifdef AF_AX25
02841     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_AX25, (st_data_t)rb_intern2("AX25", 4));
02842 #endif
02843 #ifdef AF_UNIX
02844     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNIX, (st_data_t)rb_intern2("UNIX", 4));
02845 #endif
02846 #ifdef AF_INET6
02847     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET6, (st_data_t)rb_intern2("INET6", 5));
02848 #endif
02849 #ifdef AF_INET
02850     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_INET, (st_data_t)rb_intern2("INET", 4));
02851 #endif
02852 #ifdef AF_UNSPEC
02853     st_insert(rsock_intern_family_noprefix_hash, (st_data_t)AF_UNSPEC, (st_data_t)rb_intern2("UNSPEC", 6));
02854 #endif
02855 
02856     rsock_intern_protocol_family_hash = st_init_numtable();
02857 #ifdef PF_KEY
02858     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_KEY, (st_data_t)rb_intern2("PF_KEY", 6));
02859 #endif
02860 #ifdef PF_PIP
02861     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PIP, (st_data_t)rb_intern2("PF_PIP", 6));
02862 #endif
02863 #ifdef PF_RTIP
02864     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_RTIP, (st_data_t)rb_intern2("PF_RTIP", 7));
02865 #endif
02866 #ifdef PF_XTP
02867     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_XTP, (st_data_t)rb_intern2("PF_XTP", 6));
02868 #endif
02869 #ifdef PF_PACKET
02870     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PACKET, (st_data_t)rb_intern2("PF_PACKET", 9));
02871 #endif
02872 #ifdef PF_MAX
02873     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_MAX, (st_data_t)rb_intern2("PF_MAX", 6));
02874 #endif
02875 #ifdef PF_NETGRAPH
02876     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NETGRAPH, (st_data_t)rb_intern2("PF_NETGRAPH", 11));
02877 #endif
02878 #ifdef PF_ATM
02879     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ATM, (st_data_t)rb_intern2("PF_ATM", 6));
02880 #endif
02881 #ifdef PF_PPP
02882     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PPP, (st_data_t)rb_intern2("PF_PPP", 6));
02883 #endif
02884 #ifdef PF_NETBIOS
02885     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NETBIOS, (st_data_t)rb_intern2("PF_NETBIOS", 10));
02886 #endif
02887 #ifdef PF_SYSTEM
02888     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_SYSTEM, (st_data_t)rb_intern2("PF_SYSTEM", 9));
02889 #endif
02890 #ifdef PF_NATM
02891     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NATM, (st_data_t)rb_intern2("PF_NATM", 7));
02892 #endif
02893 #ifdef PF_ISDN
02894     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ISDN, (st_data_t)rb_intern2("PF_ISDN", 7));
02895 #endif
02896 #ifdef PF_NDRV
02897     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NDRV, (st_data_t)rb_intern2("PF_NDRV", 7));
02898 #endif
02899 #ifdef PF_SIP
02900     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_SIP, (st_data_t)rb_intern2("PF_SIP", 6));
02901 #endif
02902 #ifdef PF_CNT
02903     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_CNT, (st_data_t)rb_intern2("PF_CNT", 6));
02904 #endif
02905 #ifdef PF_COIP
02906     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_COIP, (st_data_t)rb_intern2("PF_COIP", 7));
02907 #endif
02908 #ifdef PF_LINK
02909     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_LINK, (st_data_t)rb_intern2("PF_LINK", 7));
02910 #endif
02911 #ifdef PF_ROUTE
02912     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ROUTE, (st_data_t)rb_intern2("PF_ROUTE", 8));
02913 #endif
02914 #ifdef PF_HYLINK
02915     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_HYLINK, (st_data_t)rb_intern2("PF_HYLINK", 9));
02916 #endif
02917 #ifdef PF_LAT
02918     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_LAT, (st_data_t)rb_intern2("PF_LAT", 6));
02919 #endif
02920 #ifdef PF_DLI
02921     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_DLI, (st_data_t)rb_intern2("PF_DLI", 6));
02922 #endif
02923 #ifdef PF_DEC
02924     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_DEC, (st_data_t)rb_intern2("PF_DEC", 6));
02925 #endif
02926 #ifdef PF_SNA
02927     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_SNA, (st_data_t)rb_intern2("PF_SNA", 6));
02928 #endif
02929 #ifdef PF_CCITT
02930     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_CCITT, (st_data_t)rb_intern2("PF_CCITT", 8));
02931 #endif
02932 #ifdef PF_DATAKIT
02933     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_DATAKIT, (st_data_t)rb_intern2("PF_DATAKIT", 10));
02934 #endif
02935 #ifdef PF_ECMA
02936     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ECMA, (st_data_t)rb_intern2("PF_ECMA", 7));
02937 #endif
02938 #ifdef PF_OSI
02939     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_OSI, (st_data_t)rb_intern2("PF_OSI", 6));
02940 #endif
02941 #ifdef PF_ISO
02942     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_ISO, (st_data_t)rb_intern2("PF_ISO", 6));
02943 #endif
02944 #ifdef PF_NS
02945     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_NS, (st_data_t)rb_intern2("PF_NS", 5));
02946 #endif
02947 #ifdef PF_CHAOS
02948     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_CHAOS, (st_data_t)rb_intern2("PF_CHAOS", 8));
02949 #endif
02950 #ifdef PF_PUP
02951     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_PUP, (st_data_t)rb_intern2("PF_PUP", 6));
02952 #endif
02953 #ifdef PF_IMPLINK
02954     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_IMPLINK, (st_data_t)rb_intern2("PF_IMPLINK", 10));
02955 #endif
02956 #ifdef PF_LOCAL
02957     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_LOCAL, (st_data_t)rb_intern2("PF_LOCAL", 8));
02958 #endif
02959 #ifdef PF_APPLETALK
02960     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_APPLETALK, (st_data_t)rb_intern2("PF_APPLETALK", 12));
02961 #endif
02962 #ifdef PF_IPX
02963     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_IPX, (st_data_t)rb_intern2("PF_IPX", 6));
02964 #endif
02965 #ifdef PF_AX25
02966     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_AX25, (st_data_t)rb_intern2("PF_AX25", 7));
02967 #endif
02968 #ifdef PF_UNIX
02969     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_UNIX, (st_data_t)rb_intern2("PF_UNIX", 7));
02970 #endif
02971 #ifdef PF_INET6
02972     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_INET6, (st_data_t)rb_intern2("PF_INET6", 8));
02973 #endif
02974 #ifdef PF_INET
02975     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_INET, (st_data_t)rb_intern2("PF_INET", 7));
02976 #endif
02977 #ifdef PF_UNSPEC
02978     st_insert(rsock_intern_protocol_family_hash, (st_data_t)PF_UNSPEC, (st_data_t)rb_intern2("PF_UNSPEC", 9));
02979 #endif
02980 
02981     rsock_intern_socktype_hash = st_init_numtable();
02982 #ifdef SOCK_PACKET
02983     st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_PACKET, (st_data_t)rb_intern2("SOCK_PACKET", 11));
02984 #endif
02985 #ifdef SOCK_SEQPACKET
02986     st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_SEQPACKET, (st_data_t)rb_intern2("SOCK_SEQPACKET", 14));
02987 #endif
02988 #ifdef SOCK_RDM
02989     st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_RDM, (st_data_t)rb_intern2("SOCK_RDM", 8));
02990 #endif
02991 #ifdef SOCK_RAW
02992     st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_RAW, (st_data_t)rb_intern2("SOCK_RAW", 8));
02993 #endif
02994 #ifdef SOCK_DGRAM
02995     st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_DGRAM, (st_data_t)rb_intern2("SOCK_DGRAM", 10));
02996 #endif
02997 #ifdef SOCK_STREAM
02998     st_insert(rsock_intern_socktype_hash, (st_data_t)SOCK_STREAM, (st_data_t)rb_intern2("SOCK_STREAM", 11));
02999 #endif
03000 
03001     rsock_intern_ipproto_hash = st_init_numtable();
03002 #ifdef IPPROTO_MAX
03003     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_MAX, (st_data_t)rb_intern2("IPPROTO_MAX", 11));
03004 #endif
03005 #ifdef IPPROTO_RAW
03006     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_RAW, (st_data_t)rb_intern2("IPPROTO_RAW", 11));
03007 #endif
03008 #ifdef IPPROTO_ROUTING
03009     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ROUTING, (st_data_t)rb_intern2("IPPROTO_ROUTING", 15));
03010 #endif
03011 #ifdef IPPROTO_NONE
03012     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_NONE, (st_data_t)rb_intern2("IPPROTO_NONE", 12));
03013 #endif
03014 #ifdef IPPROTO_IPV6
03015     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IPV6, (st_data_t)rb_intern2("IPPROTO_IPV6", 12));
03016 #endif
03017 #ifdef IPPROTO_ICMPV6
03018     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ICMPV6, (st_data_t)rb_intern2("IPPROTO_ICMPV6", 14));
03019 #endif
03020 #ifdef IPPROTO_HOPOPTS
03021     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_HOPOPTS, (st_data_t)rb_intern2("IPPROTO_HOPOPTS", 15));
03022 #endif
03023 #ifdef IPPROTO_FRAGMENT
03024     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_FRAGMENT, (st_data_t)rb_intern2("IPPROTO_FRAGMENT", 16));
03025 #endif
03026 #ifdef IPPROTO_ESP
03027     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ESP, (st_data_t)rb_intern2("IPPROTO_ESP", 11));
03028 #endif
03029 #ifdef IPPROTO_DSTOPTS
03030     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_DSTOPTS, (st_data_t)rb_intern2("IPPROTO_DSTOPTS", 15));
03031 #endif
03032 #ifdef IPPROTO_AH
03033     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_AH, (st_data_t)rb_intern2("IPPROTO_AH", 10));
03034 #endif
03035 #ifdef IPPROTO_BIP
03036     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_BIP, (st_data_t)rb_intern2("IPPROTO_BIP", 11));
03037 #endif
03038 #ifdef IPPROTO_EON
03039     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_EON, (st_data_t)rb_intern2("IPPROTO_EON", 11));
03040 #endif
03041 #ifdef IPPROTO_XTP
03042     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_XTP, (st_data_t)rb_intern2("IPPROTO_XTP", 11));
03043 #endif
03044 #ifdef IPPROTO_TP
03045     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_TP, (st_data_t)rb_intern2("IPPROTO_TP", 10));
03046 #endif
03047 #ifdef IPPROTO_ND
03048     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ND, (st_data_t)rb_intern2("IPPROTO_ND", 10));
03049 #endif
03050 #ifdef IPPROTO_HELLO
03051     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_HELLO, (st_data_t)rb_intern2("IPPROTO_HELLO", 13));
03052 #endif
03053 #ifdef IPPROTO_IDP
03054     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IDP, (st_data_t)rb_intern2("IPPROTO_IDP", 11));
03055 #endif
03056 #ifdef IPPROTO_UDP
03057     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_UDP, (st_data_t)rb_intern2("IPPROTO_UDP", 11));
03058 #endif
03059 #ifdef IPPROTO_PUP
03060     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_PUP, (st_data_t)rb_intern2("IPPROTO_PUP", 11));
03061 #endif
03062 #ifdef IPPROTO_EGP
03063     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_EGP, (st_data_t)rb_intern2("IPPROTO_EGP", 11));
03064 #endif
03065 #ifdef IPPROTO_TCP
03066     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_TCP, (st_data_t)rb_intern2("IPPROTO_TCP", 11));
03067 #endif
03068 #ifdef IPPROTO_GGP
03069     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_GGP, (st_data_t)rb_intern2("IPPROTO_GGP", 11));
03070 #endif
03071 #ifdef IPPROTO_IGMP
03072     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IGMP, (st_data_t)rb_intern2("IPPROTO_IGMP", 12));
03073 #endif
03074 #ifdef IPPROTO_ICMP
03075     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_ICMP, (st_data_t)rb_intern2("IPPROTO_ICMP", 12));
03076 #endif
03077 #ifdef IPPROTO_IP
03078     st_insert(rsock_intern_ipproto_hash, (st_data_t)IPPROTO_IP, (st_data_t)rb_intern2("IPPROTO_IP", 10));
03079 #endif
03080 
03081     rsock_intern_iplevel_hash = st_init_numtable();
03082 #ifdef IPPROTO_MAX
03083     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_MAX, (st_data_t)rb_intern2("IPPROTO_MAX", 11));
03084 #endif
03085 #ifdef IPPROTO_RAW
03086     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_RAW, (st_data_t)rb_intern2("IPPROTO_RAW", 11));
03087 #endif
03088 #ifdef IPPROTO_ROUTING
03089     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ROUTING, (st_data_t)rb_intern2("IPPROTO_ROUTING", 15));
03090 #endif
03091 #ifdef IPPROTO_NONE
03092     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_NONE, (st_data_t)rb_intern2("IPPROTO_NONE", 12));
03093 #endif
03094 #ifdef IPPROTO_IPV6
03095     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IPV6, (st_data_t)rb_intern2("IPPROTO_IPV6", 12));
03096 #endif
03097 #ifdef IPPROTO_ICMPV6
03098     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMPV6, (st_data_t)rb_intern2("IPPROTO_ICMPV6", 14));
03099 #endif
03100 #ifdef IPPROTO_HOPOPTS
03101     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HOPOPTS, (st_data_t)rb_intern2("IPPROTO_HOPOPTS", 15));
03102 #endif
03103 #ifdef IPPROTO_FRAGMENT
03104     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_FRAGMENT, (st_data_t)rb_intern2("IPPROTO_FRAGMENT", 16));
03105 #endif
03106 #ifdef IPPROTO_ESP
03107     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ESP, (st_data_t)rb_intern2("IPPROTO_ESP", 11));
03108 #endif
03109 #ifdef IPPROTO_DSTOPTS
03110     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_DSTOPTS, (st_data_t)rb_intern2("IPPROTO_DSTOPTS", 15));
03111 #endif
03112 #ifdef IPPROTO_AH
03113     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_AH, (st_data_t)rb_intern2("IPPROTO_AH", 10));
03114 #endif
03115 #ifdef IPPROTO_BIP
03116     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_BIP, (st_data_t)rb_intern2("IPPROTO_BIP", 11));
03117 #endif
03118 #ifdef IPPROTO_EON
03119     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EON, (st_data_t)rb_intern2("IPPROTO_EON", 11));
03120 #endif
03121 #ifdef IPPROTO_XTP
03122     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_XTP, (st_data_t)rb_intern2("IPPROTO_XTP", 11));
03123 #endif
03124 #ifdef IPPROTO_TP
03125     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TP, (st_data_t)rb_intern2("IPPROTO_TP", 10));
03126 #endif
03127 #ifdef IPPROTO_ND
03128     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ND, (st_data_t)rb_intern2("IPPROTO_ND", 10));
03129 #endif
03130 #ifdef IPPROTO_HELLO
03131     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HELLO, (st_data_t)rb_intern2("IPPROTO_HELLO", 13));
03132 #endif
03133 #ifdef IPPROTO_IDP
03134     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IDP, (st_data_t)rb_intern2("IPPROTO_IDP", 11));
03135 #endif
03136 #ifdef IPPROTO_UDP
03137     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_UDP, (st_data_t)rb_intern2("IPPROTO_UDP", 11));
03138 #endif
03139 #ifdef IPPROTO_PUP
03140     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_PUP, (st_data_t)rb_intern2("IPPROTO_PUP", 11));
03141 #endif
03142 #ifdef IPPROTO_EGP
03143     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EGP, (st_data_t)rb_intern2("IPPROTO_EGP", 11));
03144 #endif
03145 #ifdef IPPROTO_TCP
03146     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TCP, (st_data_t)rb_intern2("IPPROTO_TCP", 11));
03147 #endif
03148 #ifdef IPPROTO_GGP
03149     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_GGP, (st_data_t)rb_intern2("IPPROTO_GGP", 11));
03150 #endif
03151 #ifdef IPPROTO_IGMP
03152     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IGMP, (st_data_t)rb_intern2("IPPROTO_IGMP", 12));
03153 #endif
03154 #ifdef IPPROTO_ICMP
03155     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMP, (st_data_t)rb_intern2("IPPROTO_ICMP", 12));
03156 #endif
03157 #ifdef IPPROTO_IP
03158     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IP, (st_data_t)rb_intern2("IPPROTO_IP", 10));
03159 #endif
03160 #ifdef SOL_SOCKET
03161     st_insert(rsock_intern_iplevel_hash, (st_data_t)SOL_SOCKET, (st_data_t)rb_intern2("SOL_SOCKET", 10));
03162 #endif
03163 #ifdef IPPROTO_MAX
03164     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_MAX, (st_data_t)rb_intern2("MAX", 3));
03165 #endif
03166 #ifdef IPPROTO_RAW
03167     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_RAW, (st_data_t)rb_intern2("RAW", 3));
03168 #endif
03169 #ifdef IPPROTO_ROUTING
03170     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ROUTING, (st_data_t)rb_intern2("ROUTING", 7));
03171 #endif
03172 #ifdef IPPROTO_NONE
03173     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_NONE, (st_data_t)rb_intern2("NONE", 4));
03174 #endif
03175 #ifdef IPPROTO_IPV6
03176     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IPV6, (st_data_t)rb_intern2("IPV6", 4));
03177 #endif
03178 #ifdef IPPROTO_ICMPV6
03179     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMPV6, (st_data_t)rb_intern2("ICMPV6", 6));
03180 #endif
03181 #ifdef IPPROTO_HOPOPTS
03182     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HOPOPTS, (st_data_t)rb_intern2("HOPOPTS", 7));
03183 #endif
03184 #ifdef IPPROTO_FRAGMENT
03185     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_FRAGMENT, (st_data_t)rb_intern2("FRAGMENT", 8));
03186 #endif
03187 #ifdef IPPROTO_ESP
03188     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ESP, (st_data_t)rb_intern2("ESP", 3));
03189 #endif
03190 #ifdef IPPROTO_DSTOPTS
03191     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_DSTOPTS, (st_data_t)rb_intern2("DSTOPTS", 7));
03192 #endif
03193 #ifdef IPPROTO_AH
03194     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_AH, (st_data_t)rb_intern2("AH", 2));
03195 #endif
03196 #ifdef IPPROTO_BIP
03197     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_BIP, (st_data_t)rb_intern2("BIP", 3));
03198 #endif
03199 #ifdef IPPROTO_EON
03200     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EON, (st_data_t)rb_intern2("EON", 3));
03201 #endif
03202 #ifdef IPPROTO_XTP
03203     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_XTP, (st_data_t)rb_intern2("XTP", 3));
03204 #endif
03205 #ifdef IPPROTO_TP
03206     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TP, (st_data_t)rb_intern2("TP", 2));
03207 #endif
03208 #ifdef IPPROTO_ND
03209     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ND, (st_data_t)rb_intern2("ND", 2));
03210 #endif
03211 #ifdef IPPROTO_HELLO
03212     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_HELLO, (st_data_t)rb_intern2("HELLO", 5));
03213 #endif
03214 #ifdef IPPROTO_IDP
03215     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IDP, (st_data_t)rb_intern2("IDP", 3));
03216 #endif
03217 #ifdef IPPROTO_UDP
03218     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_UDP, (st_data_t)rb_intern2("UDP", 3));
03219 #endif
03220 #ifdef IPPROTO_PUP
03221     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_PUP, (st_data_t)rb_intern2("PUP", 3));
03222 #endif
03223 #ifdef IPPROTO_EGP
03224     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_EGP, (st_data_t)rb_intern2("EGP", 3));
03225 #endif
03226 #ifdef IPPROTO_TCP
03227     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_TCP, (st_data_t)rb_intern2("TCP", 3));
03228 #endif
03229 #ifdef IPPROTO_GGP
03230     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_GGP, (st_data_t)rb_intern2("GGP", 3));
03231 #endif
03232 #ifdef IPPROTO_IGMP
03233     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IGMP, (st_data_t)rb_intern2("IGMP", 4));
03234 #endif
03235 #ifdef IPPROTO_ICMP
03236     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_ICMP, (st_data_t)rb_intern2("ICMP", 4));
03237 #endif
03238 #ifdef IPPROTO_IP
03239     st_insert(rsock_intern_iplevel_hash, (st_data_t)IPPROTO_IP, (st_data_t)rb_intern2("IP", 2));
03240 #endif
03241 #ifdef SOL_SOCKET
03242     st_insert(rsock_intern_iplevel_hash, (st_data_t)SOL_SOCKET, (st_data_t)rb_intern2("SOCKET", 6));
03243 #endif
03244 
03245     rsock_intern_so_optname_hash = st_init_numtable();
03246 #ifdef SO_ALLZONES
03247     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ALLZONES, (st_data_t)rb_intern2("SO_ALLZONES", 11));
03248 #endif
03249 #ifdef SO_MAC_EXEMPT
03250     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MAC_EXEMPT, (st_data_t)rb_intern2("SO_MAC_EXEMPT", 13));
03251 #endif
03252 #ifdef SO_RECVUCRED
03253     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RECVUCRED, (st_data_t)rb_intern2("SO_RECVUCRED", 12));
03254 #endif
03255 #ifdef SO_BINTIME
03256     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINTIME, (st_data_t)rb_intern2("SO_BINTIME", 10));
03257 #endif
03258 #ifdef SO_TIMESTAMPNS
03259     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMPNS, (st_data_t)rb_intern2("SO_TIMESTAMPNS", 14));
03260 #endif
03261 #ifdef SO_TIMESTAMP
03262     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMP, (st_data_t)rb_intern2("SO_TIMESTAMP", 12));
03263 #endif
03264 #ifdef SO_PEERNAME
03265     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERNAME, (st_data_t)rb_intern2("SO_PEERNAME", 11));
03266 #endif
03267 #ifdef SO_DETACH_FILTER
03268     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DETACH_FILTER, (st_data_t)rb_intern2("SO_DETACH_FILTER", 16));
03269 #endif
03270 #ifdef SO_ATTACH_FILTER
03271     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ATTACH_FILTER, (st_data_t)rb_intern2("SO_ATTACH_FILTER", 16));
03272 #endif
03273 #ifdef SO_BINDTODEVICE
03274     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINDTODEVICE, (st_data_t)rb_intern2("SO_BINDTODEVICE", 15));
03275 #endif
03276 #ifdef SO_SECURITY_ENCRYPTION_NETWORK
03277     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_NETWORK, (st_data_t)rb_intern2("SO_SECURITY_ENCRYPTION_NETWORK", 30));
03278 #endif
03279 #ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
03280     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_TRANSPORT, (st_data_t)rb_intern2("SO_SECURITY_ENCRYPTION_TRANSPORT", 32));
03281 #endif
03282 #ifdef SO_SECURITY_AUTHENTICATION
03283     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_AUTHENTICATION, (st_data_t)rb_intern2("SO_SECURITY_AUTHENTICATION", 26));
03284 #endif
03285 #ifdef SO_NOSIGPIPE
03286     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NOSIGPIPE, (st_data_t)rb_intern2("SO_NOSIGPIPE", 12));
03287 #endif
03288 #ifdef SO_NKE
03289     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NKE, (st_data_t)rb_intern2("SO_NKE", 6));
03290 #endif
03291 #ifdef SO_NREAD
03292     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NREAD, (st_data_t)rb_intern2("SO_NREAD", 8));
03293 #endif
03294 #ifdef SO_WANTOOBFLAG
03295     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTOOBFLAG, (st_data_t)rb_intern2("SO_WANTOOBFLAG", 14));
03296 #endif
03297 #ifdef SO_WANTMORE
03298     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTMORE, (st_data_t)rb_intern2("SO_WANTMORE", 11));
03299 #endif
03300 #ifdef SO_DONTTRUNC
03301     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTTRUNC, (st_data_t)rb_intern2("SO_DONTTRUNC", 12));
03302 #endif
03303 #ifdef SO_ACCEPTFILTER
03304     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTFILTER, (st_data_t)rb_intern2("SO_ACCEPTFILTER", 15));
03305 #endif
03306 #ifdef SO_USELOOPBACK
03307     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_USELOOPBACK, (st_data_t)rb_intern2("SO_USELOOPBACK", 14));
03308 #endif
03309 #ifdef SO_ACCEPTCONN
03310     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTCONN, (st_data_t)rb_intern2("SO_ACCEPTCONN", 13));
03311 #endif
03312 #ifdef SO_SNDTIMEO
03313     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDTIMEO, (st_data_t)rb_intern2("SO_SNDTIMEO", 11));
03314 #endif
03315 #ifdef SO_RCVTIMEO
03316     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVTIMEO, (st_data_t)rb_intern2("SO_RCVTIMEO", 11));
03317 #endif
03318 #ifdef SO_SNDLOWAT
03319     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDLOWAT, (st_data_t)rb_intern2("SO_SNDLOWAT", 11));
03320 #endif
03321 #ifdef SO_RCVLOWAT
03322     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVLOWAT, (st_data_t)rb_intern2("SO_RCVLOWAT", 11));
03323 #endif
03324 #ifdef SO_PEERCRED
03325     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERCRED, (st_data_t)rb_intern2("SO_PEERCRED", 11));
03326 #endif
03327 #ifdef SO_PASSCRED
03328     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PASSCRED, (st_data_t)rb_intern2("SO_PASSCRED", 11));
03329 #endif
03330 #ifdef SO_LINGER
03331     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_LINGER, (st_data_t)rb_intern2("SO_LINGER", 9));
03332 #endif
03333 #ifdef SO_PRIORITY
03334     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PRIORITY, (st_data_t)rb_intern2("SO_PRIORITY", 11));
03335 #endif
03336 #ifdef SO_NO_CHECK
03337     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NO_CHECK, (st_data_t)rb_intern2("SO_NO_CHECK", 11));
03338 #endif
03339 #ifdef SO_OOBINLINE
03340     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_OOBINLINE, (st_data_t)rb_intern2("SO_OOBINLINE", 12));
03341 #endif
03342 #ifdef SO_KEEPALIVE
03343     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_KEEPALIVE, (st_data_t)rb_intern2("SO_KEEPALIVE", 12));
03344 #endif
03345 #ifdef SO_RCVBUF
03346     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVBUF, (st_data_t)rb_intern2("SO_RCVBUF", 9));
03347 #endif
03348 #ifdef SO_SNDBUF
03349     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDBUF, (st_data_t)rb_intern2("SO_SNDBUF", 9));
03350 #endif
03351 #ifdef SO_BROADCAST
03352     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BROADCAST, (st_data_t)rb_intern2("SO_BROADCAST", 12));
03353 #endif
03354 #ifdef SO_DONTROUTE
03355     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTROUTE, (st_data_t)rb_intern2("SO_DONTROUTE", 12));
03356 #endif
03357 #ifdef SO_ERROR
03358     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ERROR, (st_data_t)rb_intern2("SO_ERROR", 8));
03359 #endif
03360 #ifdef SO_TYPE
03361     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TYPE, (st_data_t)rb_intern2("SO_TYPE", 7));
03362 #endif
03363 #ifdef SO_REUSEPORT
03364     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEPORT, (st_data_t)rb_intern2("SO_REUSEPORT", 12));
03365 #endif
03366 #ifdef SO_REUSEADDR
03367     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEADDR, (st_data_t)rb_intern2("SO_REUSEADDR", 12));
03368 #endif
03369 #ifdef SO_DEBUG
03370     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DEBUG, (st_data_t)rb_intern2("SO_DEBUG", 8));
03371 #endif
03372 #ifdef SO_ALLZONES
03373     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ALLZONES, (st_data_t)rb_intern2("ALLZONES", 8));
03374 #endif
03375 #ifdef SO_MAC_EXEMPT
03376     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_MAC_EXEMPT, (st_data_t)rb_intern2("MAC_EXEMPT", 10));
03377 #endif
03378 #ifdef SO_RECVUCRED
03379     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RECVUCRED, (st_data_t)rb_intern2("RECVUCRED", 9));
03380 #endif
03381 #ifdef SO_BINTIME
03382     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINTIME, (st_data_t)rb_intern2("BINTIME", 7));
03383 #endif
03384 #ifdef SO_TIMESTAMPNS
03385     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMPNS, (st_data_t)rb_intern2("TIMESTAMPNS", 11));
03386 #endif
03387 #ifdef SO_TIMESTAMP
03388     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TIMESTAMP, (st_data_t)rb_intern2("TIMESTAMP", 9));
03389 #endif
03390 #ifdef SO_PEERNAME
03391     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERNAME, (st_data_t)rb_intern2("PEERNAME", 8));
03392 #endif
03393 #ifdef SO_DETACH_FILTER
03394     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DETACH_FILTER, (st_data_t)rb_intern2("DETACH_FILTER", 13));
03395 #endif
03396 #ifdef SO_ATTACH_FILTER
03397     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ATTACH_FILTER, (st_data_t)rb_intern2("ATTACH_FILTER", 13));
03398 #endif
03399 #ifdef SO_BINDTODEVICE
03400     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BINDTODEVICE, (st_data_t)rb_intern2("BINDTODEVICE", 12));
03401 #endif
03402 #ifdef SO_SECURITY_ENCRYPTION_NETWORK
03403     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_NETWORK, (st_data_t)rb_intern2("SECURITY_ENCRYPTION_NETWORK", 27));
03404 #endif
03405 #ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
03406     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_ENCRYPTION_TRANSPORT, (st_data_t)rb_intern2("SECURITY_ENCRYPTION_TRANSPORT", 29));
03407 #endif
03408 #ifdef SO_SECURITY_AUTHENTICATION
03409     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SECURITY_AUTHENTICATION, (st_data_t)rb_intern2("SECURITY_AUTHENTICATION", 23));
03410 #endif
03411 #ifdef SO_NOSIGPIPE
03412     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NOSIGPIPE, (st_data_t)rb_intern2("NOSIGPIPE", 9));
03413 #endif
03414 #ifdef SO_NKE
03415     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NKE, (st_data_t)rb_intern2("NKE", 3));
03416 #endif
03417 #ifdef SO_NREAD
03418     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NREAD, (st_data_t)rb_intern2("NREAD", 5));
03419 #endif
03420 #ifdef SO_WANTOOBFLAG
03421     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTOOBFLAG, (st_data_t)rb_intern2("WANTOOBFLAG", 11));
03422 #endif
03423 #ifdef SO_WANTMORE
03424     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_WANTMORE, (st_data_t)rb_intern2("WANTMORE", 8));
03425 #endif
03426 #ifdef SO_DONTTRUNC
03427     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTTRUNC, (st_data_t)rb_intern2("DONTTRUNC", 9));
03428 #endif
03429 #ifdef SO_ACCEPTFILTER
03430     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTFILTER, (st_data_t)rb_intern2("ACCEPTFILTER", 12));
03431 #endif
03432 #ifdef SO_USELOOPBACK
03433     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_USELOOPBACK, (st_data_t)rb_intern2("USELOOPBACK", 11));
03434 #endif
03435 #ifdef SO_ACCEPTCONN
03436     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ACCEPTCONN, (st_data_t)rb_intern2("ACCEPTCONN", 10));
03437 #endif
03438 #ifdef SO_SNDTIMEO
03439     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDTIMEO, (st_data_t)rb_intern2("SNDTIMEO", 8));
03440 #endif
03441 #ifdef SO_RCVTIMEO
03442     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVTIMEO, (st_data_t)rb_intern2("RCVTIMEO", 8));
03443 #endif
03444 #ifdef SO_SNDLOWAT
03445     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDLOWAT, (st_data_t)rb_intern2("SNDLOWAT", 8));
03446 #endif
03447 #ifdef SO_RCVLOWAT
03448     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVLOWAT, (st_data_t)rb_intern2("RCVLOWAT", 8));
03449 #endif
03450 #ifdef SO_PEERCRED
03451     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PEERCRED, (st_data_t)rb_intern2("PEERCRED", 8));
03452 #endif
03453 #ifdef SO_PASSCRED
03454     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PASSCRED, (st_data_t)rb_intern2("PASSCRED", 8));
03455 #endif
03456 #ifdef SO_LINGER
03457     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_LINGER, (st_data_t)rb_intern2("LINGER", 6));
03458 #endif
03459 #ifdef SO_PRIORITY
03460     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_PRIORITY, (st_data_t)rb_intern2("PRIORITY", 8));
03461 #endif
03462 #ifdef SO_NO_CHECK
03463     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_NO_CHECK, (st_data_t)rb_intern2("NO_CHECK", 8));
03464 #endif
03465 #ifdef SO_OOBINLINE
03466     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_OOBINLINE, (st_data_t)rb_intern2("OOBINLINE", 9));
03467 #endif
03468 #ifdef SO_KEEPALIVE
03469     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_KEEPALIVE, (st_data_t)rb_intern2("KEEPALIVE", 9));
03470 #endif
03471 #ifdef SO_RCVBUF
03472     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_RCVBUF, (st_data_t)rb_intern2("RCVBUF", 6));
03473 #endif
03474 #ifdef SO_SNDBUF
03475     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_SNDBUF, (st_data_t)rb_intern2("SNDBUF", 6));
03476 #endif
03477 #ifdef SO_BROADCAST
03478     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_BROADCAST, (st_data_t)rb_intern2("BROADCAST", 9));
03479 #endif
03480 #ifdef SO_DONTROUTE
03481     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DONTROUTE, (st_data_t)rb_intern2("DONTROUTE", 9));
03482 #endif
03483 #ifdef SO_ERROR
03484     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_ERROR, (st_data_t)rb_intern2("ERROR", 5));
03485 #endif
03486 #ifdef SO_TYPE
03487     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_TYPE, (st_data_t)rb_intern2("TYPE", 4));
03488 #endif
03489 #ifdef SO_REUSEPORT
03490     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEPORT, (st_data_t)rb_intern2("REUSEPORT", 9));
03491 #endif
03492 #ifdef SO_REUSEADDR
03493     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_REUSEADDR, (st_data_t)rb_intern2("REUSEADDR", 9));
03494 #endif
03495 #ifdef SO_DEBUG
03496     st_insert(rsock_intern_so_optname_hash, (st_data_t)SO_DEBUG, (st_data_t)rb_intern2("DEBUG", 5));
03497 #endif
03498 
03499     rsock_intern_ip_optname_hash = st_init_numtable();
03500 #ifdef IP_MSFILTER
03501     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MSFILTER, (st_data_t)rb_intern2("IP_MSFILTER", 11));
03502 #endif
03503 #ifdef IP_DROP_SOURCE_MEMBERSHIP
03504     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("IP_DROP_SOURCE_MEMBERSHIP", 25));
03505 #endif
03506 #ifdef IP_ADD_SOURCE_MEMBERSHIP
03507     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("IP_ADD_SOURCE_MEMBERSHIP", 24));
03508 #endif
03509 #ifdef IP_BLOCK_SOURCE
03510     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_BLOCK_SOURCE, (st_data_t)rb_intern2("IP_BLOCK_SOURCE", 15));
03511 #endif
03512 #ifdef IP_UNBLOCK_SOURCE
03513     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_UNBLOCK_SOURCE, (st_data_t)rb_intern2("IP_UNBLOCK_SOURCE", 17));
03514 #endif
03515 #ifdef IP_PMTUDISC_DO
03516     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DO, (st_data_t)rb_intern2("IP_PMTUDISC_DO", 14));
03517 #endif
03518 #ifdef IP_PMTUDISC_WANT
03519     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_WANT, (st_data_t)rb_intern2("IP_PMTUDISC_WANT", 16));
03520 #endif
03521 #ifdef IP_PMTUDISC_DONT
03522     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DONT, (st_data_t)rb_intern2("IP_PMTUDISC_DONT", 16));
03523 #endif
03524 #ifdef IP_PASSSEC
03525     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PASSSEC, (st_data_t)rb_intern2("IP_PASSSEC", 10));
03526 #endif
03527 #ifdef IP_XFRM_POLICY
03528     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_XFRM_POLICY, (st_data_t)rb_intern2("IP_XFRM_POLICY", 14));
03529 #endif
03530 #ifdef IP_IPSEC_POLICY
03531     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_IPSEC_POLICY, (st_data_t)rb_intern2("IP_IPSEC_POLICY", 15));
03532 #endif
03533 #ifdef IP_FREEBIND
03534     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_FREEBIND, (st_data_t)rb_intern2("IP_FREEBIND", 11));
03535 #endif
03536 #ifdef IP_MTU
03537     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU, (st_data_t)rb_intern2("IP_MTU", 6));
03538 #endif
03539 #ifdef IP_RECVTOS
03540     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTOS, (st_data_t)rb_intern2("IP_RECVTOS", 10));
03541 #endif
03542 #ifdef IP_RECVERR
03543     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVERR, (st_data_t)rb_intern2("IP_RECVERR", 10));
03544 #endif
03545 #ifdef IP_MTU_DISCOVER
03546     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU_DISCOVER, (st_data_t)rb_intern2("IP_MTU_DISCOVER", 15));
03547 #endif
03548 #ifdef IP_PKTOPTIONS
03549     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTOPTIONS, (st_data_t)rb_intern2("IP_PKTOPTIONS", 13));
03550 #endif
03551 #ifdef IP_PKTINFO
03552     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTINFO, (st_data_t)rb_intern2("IP_PKTINFO", 10));
03553 #endif
03554 #ifdef IP_ROUTER_ALERT
03555     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ROUTER_ALERT, (st_data_t)rb_intern2("IP_ROUTER_ALERT", 15));
03556 #endif
03557 #ifdef IP_MAX_MEMBERSHIPS
03558     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MAX_MEMBERSHIPS, (st_data_t)rb_intern2("IP_MAX_MEMBERSHIPS", 18));
03559 #endif
03560 #ifdef IP_DEFAULT_MULTICAST_LOOP
03561     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_LOOP, (st_data_t)rb_intern2("IP_DEFAULT_MULTICAST_LOOP", 25));
03562 #endif
03563 #ifdef IP_DEFAULT_MULTICAST_TTL
03564     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_TTL, (st_data_t)rb_intern2("IP_DEFAULT_MULTICAST_TTL", 24));
03565 #endif
03566 #ifdef IP_DROP_MEMBERSHIP
03567     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_MEMBERSHIP, (st_data_t)rb_intern2("IP_DROP_MEMBERSHIP", 18));
03568 #endif
03569 #ifdef IP_ADD_MEMBERSHIP
03570     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_MEMBERSHIP, (st_data_t)rb_intern2("IP_ADD_MEMBERSHIP", 17));
03571 #endif
03572 #ifdef IP_MULTICAST_LOOP
03573     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_LOOP, (st_data_t)rb_intern2("IP_MULTICAST_LOOP", 17));
03574 #endif
03575 #ifdef IP_MULTICAST_TTL
03576     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_TTL, (st_data_t)rb_intern2("IP_MULTICAST_TTL", 16));
03577 #endif
03578 #ifdef IP_MULTICAST_IF
03579     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_IF, (st_data_t)rb_intern2("IP_MULTICAST_IF", 15));
03580 #endif
03581 #ifdef IP_PORTRANGE
03582     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PORTRANGE, (st_data_t)rb_intern2("IP_PORTRANGE", 12));
03583 #endif
03584 #ifdef IP_RECVSLLA
03585     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVSLLA, (st_data_t)rb_intern2("IP_RECVSLLA", 11));
03586 #endif
03587 #ifdef IP_RECVIF
03588     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVIF, (st_data_t)rb_intern2("IP_RECVIF", 9));
03589 #endif
03590 #ifdef IP_RECVTTL
03591     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTTL, (st_data_t)rb_intern2("IP_RECVTTL", 10));
03592 #endif
03593 #ifdef IP_ONESBCAST
03594     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ONESBCAST, (st_data_t)rb_intern2("IP_ONESBCAST", 12));
03595 #endif
03596 #ifdef IP_SENDSRCADDR
03597     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_SENDSRCADDR, (st_data_t)rb_intern2("IP_SENDSRCADDR", 14));
03598 #endif
03599 #ifdef IP_DONTFRAG
03600     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DONTFRAG, (st_data_t)rb_intern2("IP_DONTFRAG", 11));
03601 #endif
03602 #ifdef IP_MINTTL
03603     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MINTTL, (st_data_t)rb_intern2("IP_MINTTL", 9));
03604 #endif
03605 #ifdef IP_RETOPTS
03606     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RETOPTS, (st_data_t)rb_intern2("IP_RETOPTS", 10));
03607 #endif
03608 #ifdef IP_RECVDSTADDR
03609     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVDSTADDR, (st_data_t)rb_intern2("IP_RECVDSTADDR", 14));
03610 #endif
03611 #ifdef IP_RECVRETOPTS
03612     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVRETOPTS, (st_data_t)rb_intern2("IP_RECVRETOPTS", 14));
03613 #endif
03614 #ifdef IP_RECVOPTS
03615     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVOPTS, (st_data_t)rb_intern2("IP_RECVOPTS", 11));
03616 #endif
03617 #ifdef IP_TTL
03618     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TTL, (st_data_t)rb_intern2("IP_TTL", 6));
03619 #endif
03620 #ifdef IP_TOS
03621     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TOS, (st_data_t)rb_intern2("IP_TOS", 6));
03622 #endif
03623 #ifdef IP_HDRINCL
03624     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_HDRINCL, (st_data_t)rb_intern2("IP_HDRINCL", 10));
03625 #endif
03626 #ifdef IP_OPTIONS
03627     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_OPTIONS, (st_data_t)rb_intern2("IP_OPTIONS", 10));
03628 #endif
03629 #ifdef IP_MSFILTER
03630     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MSFILTER, (st_data_t)rb_intern2("MSFILTER", 8));
03631 #endif
03632 #ifdef IP_DROP_SOURCE_MEMBERSHIP
03633     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("DROP_SOURCE_MEMBERSHIP", 22));
03634 #endif
03635 #ifdef IP_ADD_SOURCE_MEMBERSHIP
03636     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_SOURCE_MEMBERSHIP, (st_data_t)rb_intern2("ADD_SOURCE_MEMBERSHIP", 21));
03637 #endif
03638 #ifdef IP_BLOCK_SOURCE
03639     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_BLOCK_SOURCE, (st_data_t)rb_intern2("BLOCK_SOURCE", 12));
03640 #endif
03641 #ifdef IP_UNBLOCK_SOURCE
03642     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_UNBLOCK_SOURCE, (st_data_t)rb_intern2("UNBLOCK_SOURCE", 14));
03643 #endif
03644 #ifdef IP_PMTUDISC_DO
03645     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DO, (st_data_t)rb_intern2("PMTUDISC_DO", 11));
03646 #endif
03647 #ifdef IP_PMTUDISC_WANT
03648     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_WANT, (st_data_t)rb_intern2("PMTUDISC_WANT", 13));
03649 #endif
03650 #ifdef IP_PMTUDISC_DONT
03651     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PMTUDISC_DONT, (st_data_t)rb_intern2("PMTUDISC_DONT", 13));
03652 #endif
03653 #ifdef IP_PASSSEC
03654     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PASSSEC, (st_data_t)rb_intern2("PASSSEC", 7));
03655 #endif
03656 #ifdef IP_XFRM_POLICY
03657     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_XFRM_POLICY, (st_data_t)rb_intern2("XFRM_POLICY", 11));
03658 #endif
03659 #ifdef IP_IPSEC_POLICY
03660     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_IPSEC_POLICY, (st_data_t)rb_intern2("IPSEC_POLICY", 12));
03661 #endif
03662 #ifdef IP_FREEBIND
03663     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_FREEBIND, (st_data_t)rb_intern2("FREEBIND", 8));
03664 #endif
03665 #ifdef IP_MTU
03666     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU, (st_data_t)rb_intern2("MTU", 3));
03667 #endif
03668 #ifdef IP_RECVTOS
03669     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTOS, (st_data_t)rb_intern2("RECVTOS", 7));
03670 #endif
03671 #ifdef IP_RECVERR
03672     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVERR, (st_data_t)rb_intern2("RECVERR", 7));
03673 #endif
03674 #ifdef IP_MTU_DISCOVER
03675     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MTU_DISCOVER, (st_data_t)rb_intern2("MTU_DISCOVER", 12));
03676 #endif
03677 #ifdef IP_PKTOPTIONS
03678     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTOPTIONS, (st_data_t)rb_intern2("PKTOPTIONS", 10));
03679 #endif
03680 #ifdef IP_PKTINFO
03681     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PKTINFO, (st_data_t)rb_intern2("PKTINFO", 7));
03682 #endif
03683 #ifdef IP_ROUTER_ALERT
03684     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ROUTER_ALERT, (st_data_t)rb_intern2("ROUTER_ALERT", 12));
03685 #endif
03686 #ifdef IP_MAX_MEMBERSHIPS
03687     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MAX_MEMBERSHIPS, (st_data_t)rb_intern2("MAX_MEMBERSHIPS", 15));
03688 #endif
03689 #ifdef IP_DEFAULT_MULTICAST_LOOP
03690     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_LOOP, (st_data_t)rb_intern2("DEFAULT_MULTICAST_LOOP", 22));
03691 #endif
03692 #ifdef IP_DEFAULT_MULTICAST_TTL
03693     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DEFAULT_MULTICAST_TTL, (st_data_t)rb_intern2("DEFAULT_MULTICAST_TTL", 21));
03694 #endif
03695 #ifdef IP_DROP_MEMBERSHIP
03696     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DROP_MEMBERSHIP, (st_data_t)rb_intern2("DROP_MEMBERSHIP", 15));
03697 #endif
03698 #ifdef IP_ADD_MEMBERSHIP
03699     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ADD_MEMBERSHIP, (st_data_t)rb_intern2("ADD_MEMBERSHIP", 14));
03700 #endif
03701 #ifdef IP_MULTICAST_LOOP
03702     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_LOOP, (st_data_t)rb_intern2("MULTICAST_LOOP", 14));
03703 #endif
03704 #ifdef IP_MULTICAST_TTL
03705     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_TTL, (st_data_t)rb_intern2("MULTICAST_TTL", 13));
03706 #endif
03707 #ifdef IP_MULTICAST_IF
03708     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MULTICAST_IF, (st_data_t)rb_intern2("MULTICAST_IF", 12));
03709 #endif
03710 #ifdef IP_PORTRANGE
03711     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_PORTRANGE, (st_data_t)rb_intern2("PORTRANGE", 9));
03712 #endif
03713 #ifdef IP_RECVSLLA
03714     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVSLLA, (st_data_t)rb_intern2("RECVSLLA", 8));
03715 #endif
03716 #ifdef IP_RECVIF
03717     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVIF, (st_data_t)rb_intern2("RECVIF", 6));
03718 #endif
03719 #ifdef IP_RECVTTL
03720     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVTTL, (st_data_t)rb_intern2("RECVTTL", 7));
03721 #endif
03722 #ifdef IP_ONESBCAST
03723     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_ONESBCAST, (st_data_t)rb_intern2("ONESBCAST", 9));
03724 #endif
03725 #ifdef IP_SENDSRCADDR
03726     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_SENDSRCADDR, (st_data_t)rb_intern2("SENDSRCADDR", 11));
03727 #endif
03728 #ifdef IP_DONTFRAG
03729     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_DONTFRAG, (st_data_t)rb_intern2("DONTFRAG", 8));
03730 #endif
03731 #ifdef IP_MINTTL
03732     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_MINTTL, (st_data_t)rb_intern2("MINTTL", 6));
03733 #endif
03734 #ifdef IP_RETOPTS
03735     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RETOPTS, (st_data_t)rb_intern2("RETOPTS", 7));
03736 #endif
03737 #ifdef IP_RECVDSTADDR
03738     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVDSTADDR, (st_data_t)rb_intern2("RECVDSTADDR", 11));
03739 #endif
03740 #ifdef IP_RECVRETOPTS
03741     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVRETOPTS, (st_data_t)rb_intern2("RECVRETOPTS", 11));
03742 #endif
03743 #ifdef IP_RECVOPTS
03744     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_RECVOPTS, (st_data_t)rb_intern2("RECVOPTS", 8));
03745 #endif
03746 #ifdef IP_TTL
03747     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TTL, (st_data_t)rb_intern2("TTL", 3));
03748 #endif
03749 #ifdef IP_TOS
03750     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_TOS, (st_data_t)rb_intern2("TOS", 3));
03751 #endif
03752 #ifdef IP_HDRINCL
03753     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_HDRINCL, (st_data_t)rb_intern2("HDRINCL", 7));
03754 #endif
03755 #ifdef IP_OPTIONS
03756     st_insert(rsock_intern_ip_optname_hash, (st_data_t)IP_OPTIONS, (st_data_t)rb_intern2("OPTIONS", 7));
03757 #endif
03758 
03759     rsock_intern_ipv6_optname_hash = st_init_numtable();
03760 #ifdef IPV6_USE_MIN_MTU
03761     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_USE_MIN_MTU, (st_data_t)rb_intern2("IPV6_USE_MIN_MTU", 16));
03762 #endif
03763 #ifdef IPV6_TCLASS
03764     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_TCLASS, (st_data_t)rb_intern2("IPV6_TCLASS", 11));
03765 #endif
03766 #ifdef IPV6_RECVPATHMTU
03767     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPATHMTU, (st_data_t)rb_intern2("IPV6_RECVPATHMTU", 16));
03768 #endif
03769 #ifdef IPV6_RTHDR_TYPE_0
03770     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR_TYPE_0, (st_data_t)rb_intern2("IPV6_RTHDR_TYPE_0", 17));
03771 #endif
03772 #ifdef IPV6_RTHDRDSTOPTS
03773     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDRDSTOPTS, (st_data_t)rb_intern2("IPV6_RTHDRDSTOPTS", 17));
03774 #endif
03775 #ifdef IPV6_RTHDR
03776     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR, (st_data_t)rb_intern2("IPV6_RTHDR", 10));
03777 #endif
03778 #ifdef IPV6_RECVTCLASS
03779     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVTCLASS, (st_data_t)rb_intern2("IPV6_RECVTCLASS", 15));
03780 #endif
03781 #ifdef IPV6_RECVRTHDR
03782     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVRTHDR, (st_data_t)rb_intern2("IPV6_RECVRTHDR", 14));
03783 #endif
03784 #ifdef IPV6_RECVPKTINFO
03785     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPKTINFO, (st_data_t)rb_intern2("IPV6_RECVPKTINFO", 16));
03786 #endif
03787 #ifdef IPV6_RECVHOPOPTS
03788     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPOPTS, (st_data_t)rb_intern2("IPV6_RECVHOPOPTS", 16));
03789 #endif
03790 #ifdef IPV6_RECVHOPLIMIT
03791     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPLIMIT, (st_data_t)rb_intern2("IPV6_RECVHOPLIMIT", 17));
03792 #endif
03793 #ifdef IPV6_RECVDSTOPTS
03794     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVDSTOPTS, (st_data_t)rb_intern2("IPV6_RECVDSTOPTS", 16));
03795 #endif
03796 #ifdef IPV6_PKTINFO
03797     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PKTINFO, (st_data_t)rb_intern2("IPV6_PKTINFO", 12));
03798 #endif
03799 #ifdef IPV6_PATHMTU
03800     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PATHMTU, (st_data_t)rb_intern2("IPV6_PATHMTU", 12));
03801 #endif
03802 #ifdef IPV6_NEXTHOP
03803     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_NEXTHOP, (st_data_t)rb_intern2("IPV6_NEXTHOP", 12));
03804 #endif
03805 #ifdef IPV6_HOPOPTS
03806     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPOPTS, (st_data_t)rb_intern2("IPV6_HOPOPTS", 12));
03807 #endif
03808 #ifdef IPV6_HOPLIMIT
03809     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPLIMIT, (st_data_t)rb_intern2("IPV6_HOPLIMIT", 13));
03810 #endif
03811 #ifdef IPV6_DSTOPTS
03812     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DSTOPTS, (st_data_t)rb_intern2("IPV6_DSTOPTS", 12));
03813 #endif
03814 #ifdef IPV6_DONTFRAG
03815     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DONTFRAG, (st_data_t)rb_intern2("IPV6_DONTFRAG", 13));
03816 #endif
03817 #ifdef IPV6_CHECKSUM
03818     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_CHECKSUM, (st_data_t)rb_intern2("IPV6_CHECKSUM", 13));
03819 #endif
03820 #ifdef IPV6_V6ONLY
03821     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_V6ONLY, (st_data_t)rb_intern2("IPV6_V6ONLY", 11));
03822 #endif
03823 #ifdef IPV6_UNICAST_HOPS
03824     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_UNICAST_HOPS, (st_data_t)rb_intern2("IPV6_UNICAST_HOPS", 17));
03825 #endif
03826 #ifdef IPV6_MULTICAST_LOOP
03827     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_LOOP, (st_data_t)rb_intern2("IPV6_MULTICAST_LOOP", 19));
03828 #endif
03829 #ifdef IPV6_MULTICAST_IF
03830     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_IF, (st_data_t)rb_intern2("IPV6_MULTICAST_IF", 17));
03831 #endif
03832 #ifdef IPV6_MULTICAST_HOPS
03833     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_HOPS, (st_data_t)rb_intern2("IPV6_MULTICAST_HOPS", 19));
03834 #endif
03835 #ifdef IPV6_LEAVE_GROUP
03836     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_LEAVE_GROUP, (st_data_t)rb_intern2("IPV6_LEAVE_GROUP", 16));
03837 #endif
03838 #ifdef IPV6_JOIN_GROUP
03839     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_JOIN_GROUP, (st_data_t)rb_intern2("IPV6_JOIN_GROUP", 15));
03840 #endif
03841 #ifdef IPV6_USE_MIN_MTU
03842     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_USE_MIN_MTU, (st_data_t)rb_intern2("USE_MIN_MTU", 11));
03843 #endif
03844 #ifdef IPV6_TCLASS
03845     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_TCLASS, (st_data_t)rb_intern2("TCLASS", 6));
03846 #endif
03847 #ifdef IPV6_RECVPATHMTU
03848     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPATHMTU, (st_data_t)rb_intern2("RECVPATHMTU", 11));
03849 #endif
03850 #ifdef IPV6_RTHDR_TYPE_0
03851     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR_TYPE_0, (st_data_t)rb_intern2("RTHDR_TYPE_0", 12));
03852 #endif
03853 #ifdef IPV6_RTHDRDSTOPTS
03854     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDRDSTOPTS, (st_data_t)rb_intern2("RTHDRDSTOPTS", 12));
03855 #endif
03856 #ifdef IPV6_RTHDR
03857     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RTHDR, (st_data_t)rb_intern2("RTHDR", 5));
03858 #endif
03859 #ifdef IPV6_RECVTCLASS
03860     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVTCLASS, (st_data_t)rb_intern2("RECVTCLASS", 10));
03861 #endif
03862 #ifdef IPV6_RECVRTHDR
03863     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVRTHDR, (st_data_t)rb_intern2("RECVRTHDR", 9));
03864 #endif
03865 #ifdef IPV6_RECVPKTINFO
03866     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVPKTINFO, (st_data_t)rb_intern2("RECVPKTINFO", 11));
03867 #endif
03868 #ifdef IPV6_RECVHOPOPTS
03869     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPOPTS, (st_data_t)rb_intern2("RECVHOPOPTS", 11));
03870 #endif
03871 #ifdef IPV6_RECVHOPLIMIT
03872     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVHOPLIMIT, (st_data_t)rb_intern2("RECVHOPLIMIT", 12));
03873 #endif
03874 #ifdef IPV6_RECVDSTOPTS
03875     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_RECVDSTOPTS, (st_data_t)rb_intern2("RECVDSTOPTS", 11));
03876 #endif
03877 #ifdef IPV6_PKTINFO
03878     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PKTINFO, (st_data_t)rb_intern2("PKTINFO", 7));
03879 #endif
03880 #ifdef IPV6_PATHMTU
03881     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_PATHMTU, (st_data_t)rb_intern2("PATHMTU", 7));
03882 #endif
03883 #ifdef IPV6_NEXTHOP
03884     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_NEXTHOP, (st_data_t)rb_intern2("NEXTHOP", 7));
03885 #endif
03886 #ifdef IPV6_HOPOPTS
03887     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPOPTS, (st_data_t)rb_intern2("HOPOPTS", 7));
03888 #endif
03889 #ifdef IPV6_HOPLIMIT
03890     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_HOPLIMIT, (st_data_t)rb_intern2("HOPLIMIT", 8));
03891 #endif
03892 #ifdef IPV6_DSTOPTS
03893     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DSTOPTS, (st_data_t)rb_intern2("DSTOPTS", 7));
03894 #endif
03895 #ifdef IPV6_DONTFRAG
03896     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_DONTFRAG, (st_data_t)rb_intern2("DONTFRAG", 8));
03897 #endif
03898 #ifdef IPV6_CHECKSUM
03899     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_CHECKSUM, (st_data_t)rb_intern2("CHECKSUM", 8));
03900 #endif
03901 #ifdef IPV6_V6ONLY
03902     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_V6ONLY, (st_data_t)rb_intern2("V6ONLY", 6));
03903 #endif
03904 #ifdef IPV6_UNICAST_HOPS
03905     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_UNICAST_HOPS, (st_data_t)rb_intern2("UNICAST_HOPS", 12));
03906 #endif
03907 #ifdef IPV6_MULTICAST_LOOP
03908     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_LOOP, (st_data_t)rb_intern2("MULTICAST_LOOP", 14));
03909 #endif
03910 #ifdef IPV6_MULTICAST_IF
03911     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_IF, (st_data_t)rb_intern2("MULTICAST_IF", 12));
03912 #endif
03913 #ifdef IPV6_MULTICAST_HOPS
03914     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_MULTICAST_HOPS, (st_data_t)rb_intern2("MULTICAST_HOPS", 14));
03915 #endif
03916 #ifdef IPV6_LEAVE_GROUP
03917     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_LEAVE_GROUP, (st_data_t)rb_intern2("LEAVE_GROUP", 11));
03918 #endif
03919 #ifdef IPV6_JOIN_GROUP
03920     st_insert(rsock_intern_ipv6_optname_hash, (st_data_t)IPV6_JOIN_GROUP, (st_data_t)rb_intern2("JOIN_GROUP", 10));
03921 #endif
03922 
03923     rsock_intern_tcp_optname_hash = st_init_numtable();
03924 #ifdef TCP_FASTOPEN
03925     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_FASTOPEN, (st_data_t)rb_intern2("TCP_FASTOPEN", 12));
03926 #endif
03927 #ifdef TCP_WINDOW_CLAMP
03928     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_WINDOW_CLAMP, (st_data_t)rb_intern2("TCP_WINDOW_CLAMP", 16));
03929 #endif
03930 #ifdef TCP_SYNCNT
03931     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_SYNCNT, (st_data_t)rb_intern2("TCP_SYNCNT", 10));
03932 #endif
03933 #ifdef TCP_QUICKACK
03934     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_QUICKACK, (st_data_t)rb_intern2("TCP_QUICKACK", 12));
03935 #endif
03936 #ifdef TCP_NOPUSH
03937     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOPUSH, (st_data_t)rb_intern2("TCP_NOPUSH", 10));
03938 #endif
03939 #ifdef TCP_NOOPT
03940     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOOPT, (st_data_t)rb_intern2("TCP_NOOPT", 9));
03941 #endif
03942 #ifdef TCP_MD5SIG
03943     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MD5SIG, (st_data_t)rb_intern2("TCP_MD5SIG", 10));
03944 #endif
03945 #ifdef TCP_LINGER2
03946     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_LINGER2, (st_data_t)rb_intern2("TCP_LINGER2", 11));
03947 #endif
03948 #ifdef TCP_KEEPINTVL
03949     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPINTVL, (st_data_t)rb_intern2("TCP_KEEPINTVL", 13));
03950 #endif
03951 #ifdef TCP_KEEPIDLE
03952     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPIDLE, (st_data_t)rb_intern2("TCP_KEEPIDLE", 12));
03953 #endif
03954 #ifdef TCP_KEEPCNT
03955     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPCNT, (st_data_t)rb_intern2("TCP_KEEPCNT", 11));
03956 #endif
03957 #ifdef TCP_INFO
03958     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_INFO, (st_data_t)rb_intern2("TCP_INFO", 8));
03959 #endif
03960 #ifdef TCP_DEFER_ACCEPT
03961     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_DEFER_ACCEPT, (st_data_t)rb_intern2("TCP_DEFER_ACCEPT", 16));
03962 #endif
03963 #ifdef TCP_CORK
03964     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_CORK, (st_data_t)rb_intern2("TCP_CORK", 8));
03965 #endif
03966 #ifdef TCP_MAXSEG
03967     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MAXSEG, (st_data_t)rb_intern2("TCP_MAXSEG", 10));
03968 #endif
03969 #ifdef TCP_NODELAY
03970     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NODELAY, (st_data_t)rb_intern2("TCP_NODELAY", 11));
03971 #endif
03972 #ifdef TCP_FASTOPEN
03973     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_FASTOPEN, (st_data_t)rb_intern2("FASTOPEN", 8));
03974 #endif
03975 #ifdef TCP_WINDOW_CLAMP
03976     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_WINDOW_CLAMP, (st_data_t)rb_intern2("WINDOW_CLAMP", 12));
03977 #endif
03978 #ifdef TCP_SYNCNT
03979     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_SYNCNT, (st_data_t)rb_intern2("SYNCNT", 6));
03980 #endif
03981 #ifdef TCP_QUICKACK
03982     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_QUICKACK, (st_data_t)rb_intern2("QUICKACK", 8));
03983 #endif
03984 #ifdef TCP_NOPUSH
03985     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOPUSH, (st_data_t)rb_intern2("NOPUSH", 6));
03986 #endif
03987 #ifdef TCP_NOOPT
03988     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NOOPT, (st_data_t)rb_intern2("NOOPT", 5));
03989 #endif
03990 #ifdef TCP_MD5SIG
03991     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MD5SIG, (st_data_t)rb_intern2("MD5SIG", 6));
03992 #endif
03993 #ifdef TCP_LINGER2
03994     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_LINGER2, (st_data_t)rb_intern2("LINGER2", 7));
03995 #endif
03996 #ifdef TCP_KEEPINTVL
03997     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPINTVL, (st_data_t)rb_intern2("KEEPINTVL", 9));
03998 #endif
03999 #ifdef TCP_KEEPIDLE
04000     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPIDLE, (st_data_t)rb_intern2("KEEPIDLE", 8));
04001 #endif
04002 #ifdef TCP_KEEPCNT
04003     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_KEEPCNT, (st_data_t)rb_intern2("KEEPCNT", 7));
04004 #endif
04005 #ifdef TCP_INFO
04006     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_INFO, (st_data_t)rb_intern2("INFO", 4));
04007 #endif
04008 #ifdef TCP_DEFER_ACCEPT
04009     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_DEFER_ACCEPT, (st_data_t)rb_intern2("DEFER_ACCEPT", 12));
04010 #endif
04011 #ifdef TCP_CORK
04012     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_CORK, (st_data_t)rb_intern2("CORK", 4));
04013 #endif
04014 #ifdef TCP_MAXSEG
04015     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_MAXSEG, (st_data_t)rb_intern2("MAXSEG", 6));
04016 #endif
04017 #ifdef TCP_NODELAY
04018     st_insert(rsock_intern_tcp_optname_hash, (st_data_t)TCP_NODELAY, (st_data_t)rb_intern2("NODELAY", 7));
04019 #endif
04020 
04021     rsock_intern_udp_optname_hash = st_init_numtable();
04022 #ifdef UDP_CORK
04023     st_insert(rsock_intern_udp_optname_hash, (st_data_t)UDP_CORK, (st_data_t)rb_intern2("UDP_CORK", 8));
04024 #endif
04025 #ifdef UDP_CORK
04026     st_insert(rsock_intern_udp_optname_hash, (st_data_t)UDP_CORK, (st_data_t)rb_intern2("CORK", 4));
04027 #endif
04028 
04029     rsock_intern_scm_optname_hash = st_init_numtable();
04030 #ifdef SCM_UCRED
04031     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_UCRED, (st_data_t)rb_intern2("SCM_UCRED", 9));
04032 #endif
04033 #ifdef SCM_CREDS
04034     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDS, (st_data_t)rb_intern2("SCM_CREDS", 9));
04035 #endif
04036 #ifdef SCM_CREDENTIALS
04037     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDENTIALS, (st_data_t)rb_intern2("SCM_CREDENTIALS", 15));
04038 #endif
04039 #ifdef SCM_BINTIME
04040     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_BINTIME, (st_data_t)rb_intern2("SCM_BINTIME", 11));
04041 #endif
04042 #ifdef SCM_TIMESTAMPNS
04043     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMPNS, (st_data_t)rb_intern2("SCM_TIMESTAMPNS", 15));
04044 #endif
04045 #ifdef SCM_TIMESTAMP
04046     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMP, (st_data_t)rb_intern2("SCM_TIMESTAMP", 13));
04047 #endif
04048 #ifdef SCM_RIGHTS
04049     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_RIGHTS, (st_data_t)rb_intern2("SCM_RIGHTS", 10));
04050 #endif
04051 #ifdef SCM_UCRED
04052     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_UCRED, (st_data_t)rb_intern2("UCRED", 5));
04053 #endif
04054 #ifdef SCM_CREDS
04055     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDS, (st_data_t)rb_intern2("CREDS", 5));
04056 #endif
04057 #ifdef SCM_CREDENTIALS
04058     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_CREDENTIALS, (st_data_t)rb_intern2("CREDENTIALS", 11));
04059 #endif
04060 #ifdef SCM_BINTIME
04061     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_BINTIME, (st_data_t)rb_intern2("BINTIME", 7));
04062 #endif
04063 #ifdef SCM_TIMESTAMPNS
04064     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMPNS, (st_data_t)rb_intern2("TIMESTAMPNS", 11));
04065 #endif
04066 #ifdef SCM_TIMESTAMP
04067     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_TIMESTAMP, (st_data_t)rb_intern2("TIMESTAMP", 9));
04068 #endif
04069 #ifdef SCM_RIGHTS
04070     st_insert(rsock_intern_scm_optname_hash, (st_data_t)SCM_RIGHTS, (st_data_t)rb_intern2("RIGHTS", 6));
04071 #endif
04072 
04073     rsock_intern_local_optname_hash = st_init_numtable();
04074 #ifdef LOCAL_CONNWAIT
04075     st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CONNWAIT, (st_data_t)rb_intern2("LOCAL_CONNWAIT", 14));
04076 #endif
04077 #ifdef LOCAL_CREDS
04078     st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CREDS, (st_data_t)rb_intern2("LOCAL_CREDS", 11));
04079 #endif
04080 #ifdef LOCAL_PEERCRED
04081     st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_PEERCRED, (st_data_t)rb_intern2("LOCAL_PEERCRED", 14));
04082 #endif
04083 #ifdef LOCAL_CONNWAIT
04084     st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CONNWAIT, (st_data_t)rb_intern2("CONNWAIT", 8));
04085 #endif
04086 #ifdef LOCAL_CREDS
04087     st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_CREDS, (st_data_t)rb_intern2("CREDS", 5));
04088 #endif
04089 #ifdef LOCAL_PEERCRED
04090     st_insert(rsock_intern_local_optname_hash, (st_data_t)LOCAL_PEERCRED, (st_data_t)rb_intern2("PEERCRED", 8));
04091 #endif
04092 
04093 }
04094 
04095 int
04096 rsock_family_to_int(const char *str, long len, int *valp)
04097 {
04098     switch (len) {
04099       case 2:
04100 #ifdef AF_NS
04101         if (memcmp(str, "NS", 2) == 0) { *valp = AF_NS; return 0; }
04102 #endif
04103         return -1;
04104 
04105       case 3:
04106 #ifdef AF_IPX
04107         if (memcmp(str, "IPX", 3) == 0) { *valp = AF_IPX; return 0; }
04108 #endif
04109 #ifdef AF_PUP
04110         if (memcmp(str, "PUP", 3) == 0) { *valp = AF_PUP; return 0; }
04111 #endif
04112 #ifdef AF_ISO
04113         if (memcmp(str, "ISO", 3) == 0) { *valp = AF_ISO; return 0; }
04114 #endif
04115 #ifdef AF_OSI
04116         if (memcmp(str, "OSI", 3) == 0) { *valp = AF_OSI; return 0; }
04117 #endif
04118 #ifdef AF_SNA
04119         if (memcmp(str, "SNA", 3) == 0) { *valp = AF_SNA; return 0; }
04120 #endif
04121 #ifdef AF_DEC
04122         if (memcmp(str, "DEC", 3) == 0) { *valp = AF_DEC; return 0; }
04123 #endif
04124 #ifdef AF_DLI
04125         if (memcmp(str, "DLI", 3) == 0) { *valp = AF_DLI; return 0; }
04126 #endif
04127 #ifdef AF_LAT
04128         if (memcmp(str, "LAT", 3) == 0) { *valp = AF_LAT; return 0; }
04129 #endif
04130 #ifdef AF_CNT
04131         if (memcmp(str, "CNT", 3) == 0) { *valp = AF_CNT; return 0; }
04132 #endif
04133 #ifdef AF_SIP
04134         if (memcmp(str, "SIP", 3) == 0) { *valp = AF_SIP; return 0; }
04135 #endif
04136 #ifdef AF_PPP
04137         if (memcmp(str, "PPP", 3) == 0) { *valp = AF_PPP; return 0; }
04138 #endif
04139 #ifdef AF_ATM
04140         if (memcmp(str, "ATM", 3) == 0) { *valp = AF_ATM; return 0; }
04141 #endif
04142 #ifdef AF_MAX
04143         if (memcmp(str, "MAX", 3) == 0) { *valp = AF_MAX; return 0; }
04144 #endif
04145         return -1;
04146 
04147       case 4:
04148 #ifdef AF_INET
04149         if (memcmp(str, "INET", 4) == 0) { *valp = AF_INET; return 0; }
04150 #endif
04151 #ifdef AF_UNIX
04152         if (memcmp(str, "UNIX", 4) == 0) { *valp = AF_UNIX; return 0; }
04153 #endif
04154 #ifdef AF_AX25
04155         if (memcmp(str, "AX25", 4) == 0) { *valp = AF_AX25; return 0; }
04156 #endif
04157 #ifdef AF_ECMA
04158         if (memcmp(str, "ECMA", 4) == 0) { *valp = AF_ECMA; return 0; }
04159 #endif
04160 #ifdef AF_LINK
04161         if (memcmp(str, "LINK", 4) == 0) { *valp = AF_LINK; return 0; }
04162 #endif
04163 #ifdef AF_COIP
04164         if (memcmp(str, "COIP", 4) == 0) { *valp = AF_COIP; return 0; }
04165 #endif
04166 #ifdef AF_NDRV
04167         if (memcmp(str, "NDRV", 4) == 0) { *valp = AF_NDRV; return 0; }
04168 #endif
04169 #ifdef AF_ISDN
04170         if (memcmp(str, "ISDN", 4) == 0) { *valp = AF_ISDN; return 0; }
04171 #endif
04172 #ifdef AF_NATM
04173         if (memcmp(str, "NATM", 4) == 0) { *valp = AF_NATM; return 0; }
04174 #endif
04175 #ifdef AF_E164
04176         if (memcmp(str, "E164", 4) == 0) { *valp = AF_E164; return 0; }
04177 #endif
04178         return -1;
04179 
04180       case 5:
04181 #ifdef AF_NS
04182         if (memcmp(str, "AF_NS", 5) == 0) { *valp = AF_NS; return 0; }
04183 #endif
04184 #ifdef PF_NS
04185         if (memcmp(str, "PF_NS", 5) == 0) { *valp = PF_NS; return 0; }
04186 #endif
04187 #ifdef AF_INET6
04188         if (memcmp(str, "INET6", 5) == 0) { *valp = AF_INET6; return 0; }
04189 #endif
04190 #ifdef AF_LOCAL
04191         if (memcmp(str, "LOCAL", 5) == 0) { *valp = AF_LOCAL; return 0; }
04192 #endif
04193 #ifdef AF_CHAOS
04194         if (memcmp(str, "CHAOS", 5) == 0) { *valp = AF_CHAOS; return 0; }
04195 #endif
04196 #ifdef AF_CCITT
04197         if (memcmp(str, "CCITT", 5) == 0) { *valp = AF_CCITT; return 0; }
04198 #endif
04199 #ifdef AF_ROUTE
04200         if (memcmp(str, "ROUTE", 5) == 0) { *valp = AF_ROUTE; return 0; }
04201 #endif
04202         return -1;
04203 
04204       case 6:
04205 #ifdef AF_IPX
04206         if (memcmp(str, "AF_IPX", 6) == 0) { *valp = AF_IPX; return 0; }
04207 #endif
04208 #ifdef PF_IPX
04209         if (memcmp(str, "PF_IPX", 6) == 0) { *valp = PF_IPX; return 0; }
04210 #endif
04211 #ifdef AF_PUP
04212         if (memcmp(str, "AF_PUP", 6) == 0) { *valp = AF_PUP; return 0; }
04213 #endif
04214 #ifdef PF_PUP
04215         if (memcmp(str, "PF_PUP", 6) == 0) { *valp = PF_PUP; return 0; }
04216 #endif
04217 #ifdef AF_ISO
04218         if (memcmp(str, "AF_ISO", 6) == 0) { *valp = AF_ISO; return 0; }
04219 #endif
04220 #ifdef PF_ISO
04221         if (memcmp(str, "PF_ISO", 6) == 0) { *valp = PF_ISO; return 0; }
04222 #endif
04223 #ifdef AF_OSI
04224         if (memcmp(str, "AF_OSI", 6) == 0) { *valp = AF_OSI; return 0; }
04225 #endif
04226 #ifdef PF_OSI
04227         if (memcmp(str, "PF_OSI", 6) == 0) { *valp = PF_OSI; return 0; }
04228 #endif
04229 #ifdef AF_SNA
04230         if (memcmp(str, "AF_SNA", 6) == 0) { *valp = AF_SNA; return 0; }
04231 #endif
04232 #ifdef PF_SNA
04233         if (memcmp(str, "PF_SNA", 6) == 0) { *valp = PF_SNA; return 0; }
04234 #endif
04235 #ifdef AF_DEC
04236         if (memcmp(str, "AF_DEC", 6) == 0) { *valp = AF_DEC; return 0; }
04237 #endif
04238 #ifdef PF_DEC
04239         if (memcmp(str, "PF_DEC", 6) == 0) { *valp = PF_DEC; return 0; }
04240 #endif
04241 #ifdef AF_DLI
04242         if (memcmp(str, "AF_DLI", 6) == 0) { *valp = AF_DLI; return 0; }
04243 #endif
04244 #ifdef PF_DLI
04245         if (memcmp(str, "PF_DLI", 6) == 0) { *valp = PF_DLI; return 0; }
04246 #endif
04247 #ifdef AF_LAT
04248         if (memcmp(str, "AF_LAT", 6) == 0) { *valp = AF_LAT; return 0; }
04249 #endif
04250 #ifdef PF_LAT
04251         if (memcmp(str, "PF_LAT", 6) == 0) { *valp = PF_LAT; return 0; }
04252 #endif
04253 #ifdef AF_CNT
04254         if (memcmp(str, "AF_CNT", 6) == 0) { *valp = AF_CNT; return 0; }
04255 #endif
04256 #ifdef PF_CNT
04257         if (memcmp(str, "PF_CNT", 6) == 0) { *valp = PF_CNT; return 0; }
04258 #endif
04259 #ifdef AF_SIP
04260         if (memcmp(str, "AF_SIP", 6) == 0) { *valp = AF_SIP; return 0; }
04261 #endif
04262 #ifdef PF_SIP
04263         if (memcmp(str, "PF_SIP", 6) == 0) { *valp = PF_SIP; return 0; }
04264 #endif
04265 #ifdef AF_PPP
04266         if (memcmp(str, "AF_PPP", 6) == 0) { *valp = AF_PPP; return 0; }
04267 #endif
04268 #ifdef PF_PPP
04269         if (memcmp(str, "PF_PPP", 6) == 0) { *valp = PF_PPP; return 0; }
04270 #endif
04271 #ifdef AF_ATM
04272         if (memcmp(str, "AF_ATM", 6) == 0) { *valp = AF_ATM; return 0; }
04273 #endif
04274 #ifdef PF_ATM
04275         if (memcmp(str, "PF_ATM", 6) == 0) { *valp = PF_ATM; return 0; }
04276 #endif
04277 #ifdef AF_MAX
04278         if (memcmp(str, "AF_MAX", 6) == 0) { *valp = AF_MAX; return 0; }
04279 #endif
04280 #ifdef PF_MAX
04281         if (memcmp(str, "PF_MAX", 6) == 0) { *valp = PF_MAX; return 0; }
04282 #endif
04283 #ifdef PF_XTP
04284         if (memcmp(str, "PF_XTP", 6) == 0) { *valp = PF_XTP; return 0; }
04285 #endif
04286 #ifdef PF_PIP
04287         if (memcmp(str, "PF_PIP", 6) == 0) { *valp = PF_PIP; return 0; }
04288 #endif
04289 #ifdef PF_KEY
04290         if (memcmp(str, "PF_KEY", 6) == 0) { *valp = PF_KEY; return 0; }
04291 #endif
04292 #ifdef AF_UNSPEC
04293         if (memcmp(str, "UNSPEC", 6) == 0) { *valp = AF_UNSPEC; return 0; }
04294 #endif
04295 #ifdef AF_HYLINK
04296         if (memcmp(str, "HYLINK", 6) == 0) { *valp = AF_HYLINK; return 0; }
04297 #endif
04298 #ifdef AF_SYSTEM
04299         if (memcmp(str, "SYSTEM", 6) == 0) { *valp = AF_SYSTEM; return 0; }
04300 #endif
04301 #ifdef AF_PACKET
04302         if (memcmp(str, "PACKET", 6) == 0) { *valp = AF_PACKET; return 0; }
04303 #endif
04304         return -1;
04305 
04306       case 7:
04307 #ifdef AF_INET
04308         if (memcmp(str, "AF_INET", 7) == 0) { *valp = AF_INET; return 0; }
04309 #endif
04310 #ifdef PF_INET
04311         if (memcmp(str, "PF_INET", 7) == 0) { *valp = PF_INET; return 0; }
04312 #endif
04313 #ifdef AF_UNIX
04314         if (memcmp(str, "AF_UNIX", 7) == 0) { *valp = AF_UNIX; return 0; }
04315 #endif
04316 #ifdef PF_UNIX
04317         if (memcmp(str, "PF_UNIX", 7) == 0) { *valp = PF_UNIX; return 0; }
04318 #endif
04319 #ifdef AF_AX25
04320         if (memcmp(str, "AF_AX25", 7) == 0) { *valp = AF_AX25; return 0; }
04321 #endif
04322 #ifdef PF_AX25
04323         if (memcmp(str, "PF_AX25", 7) == 0) { *valp = PF_AX25; return 0; }
04324 #endif
04325 #ifdef AF_ECMA
04326         if (memcmp(str, "AF_ECMA", 7) == 0) { *valp = AF_ECMA; return 0; }
04327 #endif
04328 #ifdef PF_ECMA
04329         if (memcmp(str, "PF_ECMA", 7) == 0) { *valp = PF_ECMA; return 0; }
04330 #endif
04331 #ifdef AF_LINK
04332         if (memcmp(str, "AF_LINK", 7) == 0) { *valp = AF_LINK; return 0; }
04333 #endif
04334 #ifdef PF_LINK
04335         if (memcmp(str, "PF_LINK", 7) == 0) { *valp = PF_LINK; return 0; }
04336 #endif
04337 #ifdef AF_COIP
04338         if (memcmp(str, "AF_COIP", 7) == 0) { *valp = AF_COIP; return 0; }
04339 #endif
04340 #ifdef PF_COIP
04341         if (memcmp(str, "PF_COIP", 7) == 0) { *valp = PF_COIP; return 0; }
04342 #endif
04343 #ifdef AF_NDRV
04344         if (memcmp(str, "AF_NDRV", 7) == 0) { *valp = AF_NDRV; return 0; }
04345 #endif
04346 #ifdef PF_NDRV
04347         if (memcmp(str, "PF_NDRV", 7) == 0) { *valp = PF_NDRV; return 0; }
04348 #endif
04349 #ifdef AF_ISDN
04350         if (memcmp(str, "AF_ISDN", 7) == 0) { *valp = AF_ISDN; return 0; }
04351 #endif
04352 #ifdef PF_ISDN
04353         if (memcmp(str, "PF_ISDN", 7) == 0) { *valp = PF_ISDN; return 0; }
04354 #endif
04355 #ifdef AF_NATM
04356         if (memcmp(str, "AF_NATM", 7) == 0) { *valp = AF_NATM; return 0; }
04357 #endif
04358 #ifdef PF_NATM
04359         if (memcmp(str, "PF_NATM", 7) == 0) { *valp = PF_NATM; return 0; }
04360 #endif
04361 #ifdef AF_E164
04362         if (memcmp(str, "AF_E164", 7) == 0) { *valp = AF_E164; return 0; }
04363 #endif
04364 #ifdef PF_RTIP
04365         if (memcmp(str, "PF_RTIP", 7) == 0) { *valp = PF_RTIP; return 0; }
04366 #endif
04367 #ifdef AF_IMPLINK
04368         if (memcmp(str, "IMPLINK", 7) == 0) { *valp = AF_IMPLINK; return 0; }
04369 #endif
04370 #ifdef AF_DATAKIT
04371         if (memcmp(str, "DATAKIT", 7) == 0) { *valp = AF_DATAKIT; return 0; }
04372 #endif
04373 #ifdef AF_NETBIOS
04374         if (memcmp(str, "NETBIOS", 7) == 0) { *valp = AF_NETBIOS; return 0; }
04375 #endif
04376         return -1;
04377 
04378       case 8:
04379 #ifdef AF_INET6
04380         if (memcmp(str, "AF_INET6", 8) == 0) { *valp = AF_INET6; return 0; }
04381 #endif
04382 #ifdef PF_INET6
04383         if (memcmp(str, "PF_INET6", 8) == 0) { *valp = PF_INET6; return 0; }
04384 #endif
04385 #ifdef AF_LOCAL
04386         if (memcmp(str, "AF_LOCAL", 8) == 0) { *valp = AF_LOCAL; return 0; }
04387 #endif
04388 #ifdef PF_LOCAL
04389         if (memcmp(str, "PF_LOCAL", 8) == 0) { *valp = PF_LOCAL; return 0; }
04390 #endif
04391 #ifdef AF_CHAOS
04392         if (memcmp(str, "AF_CHAOS", 8) == 0) { *valp = AF_CHAOS; return 0; }
04393 #endif
04394 #ifdef PF_CHAOS
04395         if (memcmp(str, "PF_CHAOS", 8) == 0) { *valp = PF_CHAOS; return 0; }
04396 #endif
04397 #ifdef AF_CCITT
04398         if (memcmp(str, "AF_CCITT", 8) == 0) { *valp = AF_CCITT; return 0; }
04399 #endif
04400 #ifdef PF_CCITT
04401         if (memcmp(str, "PF_CCITT", 8) == 0) { *valp = PF_CCITT; return 0; }
04402 #endif
04403 #ifdef AF_ROUTE
04404         if (memcmp(str, "AF_ROUTE", 8) == 0) { *valp = AF_ROUTE; return 0; }
04405 #endif
04406 #ifdef PF_ROUTE
04407         if (memcmp(str, "PF_ROUTE", 8) == 0) { *valp = PF_ROUTE; return 0; }
04408 #endif
04409 #ifdef AF_NETGRAPH
04410         if (memcmp(str, "NETGRAPH", 8) == 0) { *valp = AF_NETGRAPH; return 0; }
04411 #endif
04412         return -1;
04413 
04414       case 9:
04415 #ifdef AF_UNSPEC
04416         if (memcmp(str, "AF_UNSPEC", 9) == 0) { *valp = AF_UNSPEC; return 0; }
04417 #endif
04418 #ifdef PF_UNSPEC
04419         if (memcmp(str, "PF_UNSPEC", 9) == 0) { *valp = PF_UNSPEC; return 0; }
04420 #endif
04421 #ifdef AF_HYLINK
04422         if (memcmp(str, "AF_HYLINK", 9) == 0) { *valp = AF_HYLINK; return 0; }
04423 #endif
04424 #ifdef PF_HYLINK
04425         if (memcmp(str, "PF_HYLINK", 9) == 0) { *valp = PF_HYLINK; return 0; }
04426 #endif
04427 #ifdef AF_SYSTEM
04428         if (memcmp(str, "AF_SYSTEM", 9) == 0) { *valp = AF_SYSTEM; return 0; }
04429 #endif
04430 #ifdef PF_SYSTEM
04431         if (memcmp(str, "PF_SYSTEM", 9) == 0) { *valp = PF_SYSTEM; return 0; }
04432 #endif
04433 #ifdef AF_PACKET
04434         if (memcmp(str, "AF_PACKET", 9) == 0) { *valp = AF_PACKET; return 0; }
04435 #endif
04436 #ifdef PF_PACKET
04437         if (memcmp(str, "PF_PACKET", 9) == 0) { *valp = PF_PACKET; return 0; }
04438 #endif
04439 #ifdef AF_APPLETALK
04440         if (memcmp(str, "APPLETALK", 9) == 0) { *valp = AF_APPLETALK; return 0; }
04441 #endif
04442         return -1;
04443 
04444       case 10:
04445 #ifdef AF_IMPLINK
04446         if (memcmp(str, "AF_IMPLINK", 10) == 0) { *valp = AF_IMPLINK; return 0; }
04447 #endif
04448 #ifdef PF_IMPLINK
04449         if (memcmp(str, "PF_IMPLINK", 10) == 0) { *valp = PF_IMPLINK; return 0; }
04450 #endif
04451 #ifdef AF_DATAKIT
04452         if (memcmp(str, "AF_DATAKIT", 10) == 0) { *valp = AF_DATAKIT; return 0; }
04453 #endif
04454 #ifdef PF_DATAKIT
04455         if (memcmp(str, "PF_DATAKIT", 10) == 0) { *valp = PF_DATAKIT; return 0; }
04456 #endif
04457 #ifdef AF_NETBIOS
04458         if (memcmp(str, "AF_NETBIOS", 10) == 0) { *valp = AF_NETBIOS; return 0; }
04459 #endif
04460 #ifdef PF_NETBIOS
04461         if (memcmp(str, "PF_NETBIOS", 10) == 0) { *valp = PF_NETBIOS; return 0; }
04462 #endif
04463         return -1;
04464 
04465       case 11:
04466 #ifdef AF_NETGRAPH
04467         if (memcmp(str, "AF_NETGRAPH", 11) == 0) { *valp = AF_NETGRAPH; return 0; }
04468 #endif
04469 #ifdef PF_NETGRAPH
04470         if (memcmp(str, "PF_NETGRAPH", 11) == 0) { *valp = PF_NETGRAPH; return 0; }
04471 #endif
04472         return -1;
04473 
04474       case 12:
04475 #ifdef AF_APPLETALK
04476         if (memcmp(str, "AF_APPLETALK", 12) == 0) { *valp = AF_APPLETALK; return 0; }
04477 #endif
04478 #ifdef PF_APPLETALK
04479         if (memcmp(str, "PF_APPLETALK", 12) == 0) { *valp = PF_APPLETALK; return 0; }
04480 #endif
04481         return -1;
04482 
04483       default:
04484         return -1;
04485     }
04486 }
04487 
04488 
04489 int
04490 rsock_socktype_to_int(const char *str, long len, int *valp)
04491 {
04492     switch (len) {
04493       case 3:
04494 #ifdef SOCK_RAW
04495         if (memcmp(str, "RAW", 3) == 0) { *valp = SOCK_RAW; return 0; }
04496 #endif
04497 #ifdef SOCK_RDM
04498         if (memcmp(str, "RDM", 3) == 0) { *valp = SOCK_RDM; return 0; }
04499 #endif
04500         return -1;
04501 
04502       case 5:
04503 #ifdef SOCK_DGRAM
04504         if (memcmp(str, "DGRAM", 5) == 0) { *valp = SOCK_DGRAM; return 0; }
04505 #endif
04506         return -1;
04507 
04508       case 6:
04509 #ifdef SOCK_STREAM
04510         if (memcmp(str, "STREAM", 6) == 0) { *valp = SOCK_STREAM; return 0; }
04511 #endif
04512 #ifdef SOCK_PACKET
04513         if (memcmp(str, "PACKET", 6) == 0) { *valp = SOCK_PACKET; return 0; }
04514 #endif
04515         return -1;
04516 
04517       case 8:
04518 #ifdef SOCK_RAW
04519         if (memcmp(str, "SOCK_RAW", 8) == 0) { *valp = SOCK_RAW; return 0; }
04520 #endif
04521 #ifdef SOCK_RDM
04522         if (memcmp(str, "SOCK_RDM", 8) == 0) { *valp = SOCK_RDM; return 0; }
04523 #endif
04524         return -1;
04525 
04526       case 9:
04527 #ifdef SOCK_SEQPACKET
04528         if (memcmp(str, "SEQPACKET", 9) == 0) { *valp = SOCK_SEQPACKET; return 0; }
04529 #endif
04530         return -1;
04531 
04532       case 10:
04533 #ifdef SOCK_DGRAM
04534         if (memcmp(str, "SOCK_DGRAM", 10) == 0) { *valp = SOCK_DGRAM; return 0; }
04535 #endif
04536         return -1;
04537 
04538       case 11:
04539 #ifdef SOCK_STREAM
04540         if (memcmp(str, "SOCK_STREAM", 11) == 0) { *valp = SOCK_STREAM; return 0; }
04541 #endif
04542 #ifdef SOCK_PACKET
04543         if (memcmp(str, "SOCK_PACKET", 11) == 0) { *valp = SOCK_PACKET; return 0; }
04544 #endif
04545         return -1;
04546 
04547       case 14:
04548 #ifdef SOCK_SEQPACKET
04549         if (memcmp(str, "SOCK_SEQPACKET", 14) == 0) { *valp = SOCK_SEQPACKET; return 0; }
04550 #endif
04551         return -1;
04552 
04553       default:
04554         return -1;
04555     }
04556 }
04557 
04558 
04559 int
04560 rsock_ipproto_to_int(const char *str, long len, int *valp)
04561 {
04562     switch (len) {
04563       case 2:
04564 #ifdef IPPROTO_IP
04565         if (memcmp(str, "IP", 2) == 0) { *valp = IPPROTO_IP; return 0; }
04566 #endif
04567 #ifdef IPPROTO_ND
04568         if (memcmp(str, "ND", 2) == 0) { *valp = IPPROTO_ND; return 0; }
04569 #endif
04570 #ifdef IPPROTO_TP
04571         if (memcmp(str, "TP", 2) == 0) { *valp = IPPROTO_TP; return 0; }
04572 #endif
04573 #ifdef IPPROTO_AH
04574         if (memcmp(str, "AH", 2) == 0) { *valp = IPPROTO_AH; return 0; }
04575 #endif
04576         return -1;
04577 
04578       case 3:
04579 #ifdef IPPROTO_GGP
04580         if (memcmp(str, "GGP", 3) == 0) { *valp = IPPROTO_GGP; return 0; }
04581 #endif
04582 #ifdef IPPROTO_TCP
04583         if (memcmp(str, "TCP", 3) == 0) { *valp = IPPROTO_TCP; return 0; }
04584 #endif
04585 #ifdef IPPROTO_EGP
04586         if (memcmp(str, "EGP", 3) == 0) { *valp = IPPROTO_EGP; return 0; }
04587 #endif
04588 #ifdef IPPROTO_PUP
04589         if (memcmp(str, "PUP", 3) == 0) { *valp = IPPROTO_PUP; return 0; }
04590 #endif
04591 #ifdef IPPROTO_UDP
04592         if (memcmp(str, "UDP", 3) == 0) { *valp = IPPROTO_UDP; return 0; }
04593 #endif
04594 #ifdef IPPROTO_IDP
04595         if (memcmp(str, "IDP", 3) == 0) { *valp = IPPROTO_IDP; return 0; }
04596 #endif
04597 #ifdef IPPROTO_XTP
04598         if (memcmp(str, "XTP", 3) == 0) { *valp = IPPROTO_XTP; return 0; }
04599 #endif
04600 #ifdef IPPROTO_EON
04601         if (memcmp(str, "EON", 3) == 0) { *valp = IPPROTO_EON; return 0; }
04602 #endif
04603 #ifdef IPPROTO_BIP
04604         if (memcmp(str, "BIP", 3) == 0) { *valp = IPPROTO_BIP; return 0; }
04605 #endif
04606 #ifdef IPPROTO_ESP
04607         if (memcmp(str, "ESP", 3) == 0) { *valp = IPPROTO_ESP; return 0; }
04608 #endif
04609 #ifdef IPPROTO_RAW
04610         if (memcmp(str, "RAW", 3) == 0) { *valp = IPPROTO_RAW; return 0; }
04611 #endif
04612 #ifdef IPPROTO_MAX
04613         if (memcmp(str, "MAX", 3) == 0) { *valp = IPPROTO_MAX; return 0; }
04614 #endif
04615         return -1;
04616 
04617       case 4:
04618 #ifdef IPPROTO_ICMP
04619         if (memcmp(str, "ICMP", 4) == 0) { *valp = IPPROTO_ICMP; return 0; }
04620 #endif
04621 #ifdef IPPROTO_IGMP
04622         if (memcmp(str, "IGMP", 4) == 0) { *valp = IPPROTO_IGMP; return 0; }
04623 #endif
04624 #ifdef IPPROTO_IPV6
04625         if (memcmp(str, "IPV6", 4) == 0) { *valp = IPPROTO_IPV6; return 0; }
04626 #endif
04627 #ifdef IPPROTO_NONE
04628         if (memcmp(str, "NONE", 4) == 0) { *valp = IPPROTO_NONE; return 0; }
04629 #endif
04630         return -1;
04631 
04632       case 5:
04633 #ifdef IPPROTO_HELLO
04634         if (memcmp(str, "HELLO", 5) == 0) { *valp = IPPROTO_HELLO; return 0; }
04635 #endif
04636         return -1;
04637 
04638       case 6:
04639 #ifdef IPPROTO_ICMPV6
04640         if (memcmp(str, "ICMPV6", 6) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
04641 #endif
04642         return -1;
04643 
04644       case 7:
04645 #ifdef IPPROTO_DSTOPTS
04646         if (memcmp(str, "DSTOPTS", 7) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
04647 #endif
04648 #ifdef IPPROTO_HOPOPTS
04649         if (memcmp(str, "HOPOPTS", 7) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
04650 #endif
04651 #ifdef IPPROTO_ROUTING
04652         if (memcmp(str, "ROUTING", 7) == 0) { *valp = IPPROTO_ROUTING; return 0; }
04653 #endif
04654         return -1;
04655 
04656       case 8:
04657 #ifdef IPPROTO_FRAGMENT
04658         if (memcmp(str, "FRAGMENT", 8) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
04659 #endif
04660         return -1;
04661 
04662       case 10:
04663 #ifdef IPPROTO_IP
04664         if (memcmp(str, "IPPROTO_IP", 10) == 0) { *valp = IPPROTO_IP; return 0; }
04665 #endif
04666 #ifdef IPPROTO_ND
04667         if (memcmp(str, "IPPROTO_ND", 10) == 0) { *valp = IPPROTO_ND; return 0; }
04668 #endif
04669 #ifdef IPPROTO_TP
04670         if (memcmp(str, "IPPROTO_TP", 10) == 0) { *valp = IPPROTO_TP; return 0; }
04671 #endif
04672 #ifdef IPPROTO_AH
04673         if (memcmp(str, "IPPROTO_AH", 10) == 0) { *valp = IPPROTO_AH; return 0; }
04674 #endif
04675         return -1;
04676 
04677       case 11:
04678 #ifdef IPPROTO_GGP
04679         if (memcmp(str, "IPPROTO_GGP", 11) == 0) { *valp = IPPROTO_GGP; return 0; }
04680 #endif
04681 #ifdef IPPROTO_TCP
04682         if (memcmp(str, "IPPROTO_TCP", 11) == 0) { *valp = IPPROTO_TCP; return 0; }
04683 #endif
04684 #ifdef IPPROTO_EGP
04685         if (memcmp(str, "IPPROTO_EGP", 11) == 0) { *valp = IPPROTO_EGP; return 0; }
04686 #endif
04687 #ifdef IPPROTO_PUP
04688         if (memcmp(str, "IPPROTO_PUP", 11) == 0) { *valp = IPPROTO_PUP; return 0; }
04689 #endif
04690 #ifdef IPPROTO_UDP
04691         if (memcmp(str, "IPPROTO_UDP", 11) == 0) { *valp = IPPROTO_UDP; return 0; }
04692 #endif
04693 #ifdef IPPROTO_IDP
04694         if (memcmp(str, "IPPROTO_IDP", 11) == 0) { *valp = IPPROTO_IDP; return 0; }
04695 #endif
04696 #ifdef IPPROTO_XTP
04697         if (memcmp(str, "IPPROTO_XTP", 11) == 0) { *valp = IPPROTO_XTP; return 0; }
04698 #endif
04699 #ifdef IPPROTO_EON
04700         if (memcmp(str, "IPPROTO_EON", 11) == 0) { *valp = IPPROTO_EON; return 0; }
04701 #endif
04702 #ifdef IPPROTO_BIP
04703         if (memcmp(str, "IPPROTO_BIP", 11) == 0) { *valp = IPPROTO_BIP; return 0; }
04704 #endif
04705 #ifdef IPPROTO_ESP
04706         if (memcmp(str, "IPPROTO_ESP", 11) == 0) { *valp = IPPROTO_ESP; return 0; }
04707 #endif
04708 #ifdef IPPROTO_RAW
04709         if (memcmp(str, "IPPROTO_RAW", 11) == 0) { *valp = IPPROTO_RAW; return 0; }
04710 #endif
04711 #ifdef IPPROTO_MAX
04712         if (memcmp(str, "IPPROTO_MAX", 11) == 0) { *valp = IPPROTO_MAX; return 0; }
04713 #endif
04714         return -1;
04715 
04716       case 12:
04717 #ifdef IPPROTO_ICMP
04718         if (memcmp(str, "IPPROTO_ICMP", 12) == 0) { *valp = IPPROTO_ICMP; return 0; }
04719 #endif
04720 #ifdef IPPROTO_IGMP
04721         if (memcmp(str, "IPPROTO_IGMP", 12) == 0) { *valp = IPPROTO_IGMP; return 0; }
04722 #endif
04723 #ifdef IPPROTO_IPV6
04724         if (memcmp(str, "IPPROTO_IPV6", 12) == 0) { *valp = IPPROTO_IPV6; return 0; }
04725 #endif
04726 #ifdef IPPROTO_NONE
04727         if (memcmp(str, "IPPROTO_NONE", 12) == 0) { *valp = IPPROTO_NONE; return 0; }
04728 #endif
04729         return -1;
04730 
04731       case 13:
04732 #ifdef IPPROTO_HELLO
04733         if (memcmp(str, "IPPROTO_HELLO", 13) == 0) { *valp = IPPROTO_HELLO; return 0; }
04734 #endif
04735         return -1;
04736 
04737       case 14:
04738 #ifdef IPPROTO_ICMPV6
04739         if (memcmp(str, "IPPROTO_ICMPV6", 14) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
04740 #endif
04741         return -1;
04742 
04743       case 15:
04744 #ifdef IPPROTO_DSTOPTS
04745         if (memcmp(str, "IPPROTO_DSTOPTS", 15) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
04746 #endif
04747 #ifdef IPPROTO_HOPOPTS
04748         if (memcmp(str, "IPPROTO_HOPOPTS", 15) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
04749 #endif
04750 #ifdef IPPROTO_ROUTING
04751         if (memcmp(str, "IPPROTO_ROUTING", 15) == 0) { *valp = IPPROTO_ROUTING; return 0; }
04752 #endif
04753         return -1;
04754 
04755       case 16:
04756 #ifdef IPPROTO_FRAGMENT
04757         if (memcmp(str, "IPPROTO_FRAGMENT", 16) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
04758 #endif
04759         return -1;
04760 
04761       default:
04762         return -1;
04763     }
04764 }
04765 
04766 
04767 int
04768 rsock_unknown_level_to_int(const char *str, long len, int *valp)
04769 {
04770     switch (len) {
04771       case 6:
04772 #ifdef SOL_SOCKET
04773         if (memcmp(str, "SOCKET", 6) == 0) { *valp = SOL_SOCKET; return 0; }
04774 #endif
04775         return -1;
04776 
04777       case 10:
04778 #ifdef SOL_SOCKET
04779         if (memcmp(str, "SOL_SOCKET", 10) == 0) { *valp = SOL_SOCKET; return 0; }
04780 #endif
04781         return -1;
04782 
04783       default:
04784         return -1;
04785     }
04786 }
04787 
04788 
04789 int
04790 rsock_ip_level_to_int(const char *str, long len, int *valp)
04791 {
04792     switch (len) {
04793       case 2:
04794 #ifdef IPPROTO_IP
04795         if (memcmp(str, "IP", 2) == 0) { *valp = IPPROTO_IP; return 0; }
04796 #endif
04797 #ifdef IPPROTO_ND
04798         if (memcmp(str, "ND", 2) == 0) { *valp = IPPROTO_ND; return 0; }
04799 #endif
04800 #ifdef IPPROTO_TP
04801         if (memcmp(str, "TP", 2) == 0) { *valp = IPPROTO_TP; return 0; }
04802 #endif
04803 #ifdef IPPROTO_AH
04804         if (memcmp(str, "AH", 2) == 0) { *valp = IPPROTO_AH; return 0; }
04805 #endif
04806         return -1;
04807 
04808       case 3:
04809 #ifdef IPPROTO_GGP
04810         if (memcmp(str, "GGP", 3) == 0) { *valp = IPPROTO_GGP; return 0; }
04811 #endif
04812 #ifdef IPPROTO_TCP
04813         if (memcmp(str, "TCP", 3) == 0) { *valp = IPPROTO_TCP; return 0; }
04814 #endif
04815 #ifdef IPPROTO_EGP
04816         if (memcmp(str, "EGP", 3) == 0) { *valp = IPPROTO_EGP; return 0; }
04817 #endif
04818 #ifdef IPPROTO_PUP
04819         if (memcmp(str, "PUP", 3) == 0) { *valp = IPPROTO_PUP; return 0; }
04820 #endif
04821 #ifdef IPPROTO_UDP
04822         if (memcmp(str, "UDP", 3) == 0) { *valp = IPPROTO_UDP; return 0; }
04823 #endif
04824 #ifdef IPPROTO_IDP
04825         if (memcmp(str, "IDP", 3) == 0) { *valp = IPPROTO_IDP; return 0; }
04826 #endif
04827 #ifdef IPPROTO_XTP
04828         if (memcmp(str, "XTP", 3) == 0) { *valp = IPPROTO_XTP; return 0; }
04829 #endif
04830 #ifdef IPPROTO_EON
04831         if (memcmp(str, "EON", 3) == 0) { *valp = IPPROTO_EON; return 0; }
04832 #endif
04833 #ifdef IPPROTO_BIP
04834         if (memcmp(str, "BIP", 3) == 0) { *valp = IPPROTO_BIP; return 0; }
04835 #endif
04836 #ifdef IPPROTO_ESP
04837         if (memcmp(str, "ESP", 3) == 0) { *valp = IPPROTO_ESP; return 0; }
04838 #endif
04839 #ifdef IPPROTO_RAW
04840         if (memcmp(str, "RAW", 3) == 0) { *valp = IPPROTO_RAW; return 0; }
04841 #endif
04842 #ifdef IPPROTO_MAX
04843         if (memcmp(str, "MAX", 3) == 0) { *valp = IPPROTO_MAX; return 0; }
04844 #endif
04845         return -1;
04846 
04847       case 4:
04848 #ifdef IPPROTO_ICMP
04849         if (memcmp(str, "ICMP", 4) == 0) { *valp = IPPROTO_ICMP; return 0; }
04850 #endif
04851 #ifdef IPPROTO_IGMP
04852         if (memcmp(str, "IGMP", 4) == 0) { *valp = IPPROTO_IGMP; return 0; }
04853 #endif
04854 #ifdef IPPROTO_IPV6
04855         if (memcmp(str, "IPV6", 4) == 0) { *valp = IPPROTO_IPV6; return 0; }
04856 #endif
04857 #ifdef IPPROTO_NONE
04858         if (memcmp(str, "NONE", 4) == 0) { *valp = IPPROTO_NONE; return 0; }
04859 #endif
04860         return -1;
04861 
04862       case 5:
04863 #ifdef IPPROTO_HELLO
04864         if (memcmp(str, "HELLO", 5) == 0) { *valp = IPPROTO_HELLO; return 0; }
04865 #endif
04866         return -1;
04867 
04868       case 6:
04869 #ifdef SOL_SOCKET
04870         if (memcmp(str, "SOCKET", 6) == 0) { *valp = SOL_SOCKET; return 0; }
04871 #endif
04872 #ifdef IPPROTO_ICMPV6
04873         if (memcmp(str, "ICMPV6", 6) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
04874 #endif
04875         return -1;
04876 
04877       case 7:
04878 #ifdef IPPROTO_DSTOPTS
04879         if (memcmp(str, "DSTOPTS", 7) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
04880 #endif
04881 #ifdef IPPROTO_HOPOPTS
04882         if (memcmp(str, "HOPOPTS", 7) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
04883 #endif
04884 #ifdef IPPROTO_ROUTING
04885         if (memcmp(str, "ROUTING", 7) == 0) { *valp = IPPROTO_ROUTING; return 0; }
04886 #endif
04887         return -1;
04888 
04889       case 8:
04890 #ifdef IPPROTO_FRAGMENT
04891         if (memcmp(str, "FRAGMENT", 8) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
04892 #endif
04893         return -1;
04894 
04895       case 10:
04896 #ifdef SOL_SOCKET
04897         if (memcmp(str, "SOL_SOCKET", 10) == 0) { *valp = SOL_SOCKET; return 0; }
04898 #endif
04899 #ifdef IPPROTO_IP
04900         if (memcmp(str, "IPPROTO_IP", 10) == 0) { *valp = IPPROTO_IP; return 0; }
04901 #endif
04902 #ifdef IPPROTO_ND
04903         if (memcmp(str, "IPPROTO_ND", 10) == 0) { *valp = IPPROTO_ND; return 0; }
04904 #endif
04905 #ifdef IPPROTO_TP
04906         if (memcmp(str, "IPPROTO_TP", 10) == 0) { *valp = IPPROTO_TP; return 0; }
04907 #endif
04908 #ifdef IPPROTO_AH
04909         if (memcmp(str, "IPPROTO_AH", 10) == 0) { *valp = IPPROTO_AH; return 0; }
04910 #endif
04911         return -1;
04912 
04913       case 11:
04914 #ifdef IPPROTO_GGP
04915         if (memcmp(str, "IPPROTO_GGP", 11) == 0) { *valp = IPPROTO_GGP; return 0; }
04916 #endif
04917 #ifdef IPPROTO_TCP
04918         if (memcmp(str, "IPPROTO_TCP", 11) == 0) { *valp = IPPROTO_TCP; return 0; }
04919 #endif
04920 #ifdef IPPROTO_EGP
04921         if (memcmp(str, "IPPROTO_EGP", 11) == 0) { *valp = IPPROTO_EGP; return 0; }
04922 #endif
04923 #ifdef IPPROTO_PUP
04924         if (memcmp(str, "IPPROTO_PUP", 11) == 0) { *valp = IPPROTO_PUP; return 0; }
04925 #endif
04926 #ifdef IPPROTO_UDP
04927         if (memcmp(str, "IPPROTO_UDP", 11) == 0) { *valp = IPPROTO_UDP; return 0; }
04928 #endif
04929 #ifdef IPPROTO_IDP
04930         if (memcmp(str, "IPPROTO_IDP", 11) == 0) { *valp = IPPROTO_IDP; return 0; }
04931 #endif
04932 #ifdef IPPROTO_XTP
04933         if (memcmp(str, "IPPROTO_XTP", 11) == 0) { *valp = IPPROTO_XTP; return 0; }
04934 #endif
04935 #ifdef IPPROTO_EON
04936         if (memcmp(str, "IPPROTO_EON", 11) == 0) { *valp = IPPROTO_EON; return 0; }
04937 #endif
04938 #ifdef IPPROTO_BIP
04939         if (memcmp(str, "IPPROTO_BIP", 11) == 0) { *valp = IPPROTO_BIP; return 0; }
04940 #endif
04941 #ifdef IPPROTO_ESP
04942         if (memcmp(str, "IPPROTO_ESP", 11) == 0) { *valp = IPPROTO_ESP; return 0; }
04943 #endif
04944 #ifdef IPPROTO_RAW
04945         if (memcmp(str, "IPPROTO_RAW", 11) == 0) { *valp = IPPROTO_RAW; return 0; }
04946 #endif
04947 #ifdef IPPROTO_MAX
04948         if (memcmp(str, "IPPROTO_MAX", 11) == 0) { *valp = IPPROTO_MAX; return 0; }
04949 #endif
04950         return -1;
04951 
04952       case 12:
04953 #ifdef IPPROTO_ICMP
04954         if (memcmp(str, "IPPROTO_ICMP", 12) == 0) { *valp = IPPROTO_ICMP; return 0; }
04955 #endif
04956 #ifdef IPPROTO_IGMP
04957         if (memcmp(str, "IPPROTO_IGMP", 12) == 0) { *valp = IPPROTO_IGMP; return 0; }
04958 #endif
04959 #ifdef IPPROTO_IPV6
04960         if (memcmp(str, "IPPROTO_IPV6", 12) == 0) { *valp = IPPROTO_IPV6; return 0; }
04961 #endif
04962 #ifdef IPPROTO_NONE
04963         if (memcmp(str, "IPPROTO_NONE", 12) == 0) { *valp = IPPROTO_NONE; return 0; }
04964 #endif
04965         return -1;
04966 
04967       case 13:
04968 #ifdef IPPROTO_HELLO
04969         if (memcmp(str, "IPPROTO_HELLO", 13) == 0) { *valp = IPPROTO_HELLO; return 0; }
04970 #endif
04971         return -1;
04972 
04973       case 14:
04974 #ifdef IPPROTO_ICMPV6
04975         if (memcmp(str, "IPPROTO_ICMPV6", 14) == 0) { *valp = IPPROTO_ICMPV6; return 0; }
04976 #endif
04977         return -1;
04978 
04979       case 15:
04980 #ifdef IPPROTO_DSTOPTS
04981         if (memcmp(str, "IPPROTO_DSTOPTS", 15) == 0) { *valp = IPPROTO_DSTOPTS; return 0; }
04982 #endif
04983 #ifdef IPPROTO_HOPOPTS
04984         if (memcmp(str, "IPPROTO_HOPOPTS", 15) == 0) { *valp = IPPROTO_HOPOPTS; return 0; }
04985 #endif
04986 #ifdef IPPROTO_ROUTING
04987         if (memcmp(str, "IPPROTO_ROUTING", 15) == 0) { *valp = IPPROTO_ROUTING; return 0; }
04988 #endif
04989         return -1;
04990 
04991       case 16:
04992 #ifdef IPPROTO_FRAGMENT
04993         if (memcmp(str, "IPPROTO_FRAGMENT", 16) == 0) { *valp = IPPROTO_FRAGMENT; return 0; }
04994 #endif
04995         return -1;
04996 
04997       default:
04998         return -1;
04999     }
05000 }
05001 
05002 
05003 int
05004 rsock_so_optname_to_int(const char *str, long len, int *valp)
05005 {
05006     switch (len) {
05007       case 3:
05008 #ifdef SO_NKE
05009         if (memcmp(str, "NKE", 3) == 0) { *valp = SO_NKE; return 0; }
05010 #endif
05011         return -1;
05012 
05013       case 4:
05014 #ifdef SO_TYPE
05015         if (memcmp(str, "TYPE", 4) == 0) { *valp = SO_TYPE; return 0; }
05016 #endif
05017         return -1;
05018 
05019       case 5:
05020 #ifdef SO_DEBUG
05021         if (memcmp(str, "DEBUG", 5) == 0) { *valp = SO_DEBUG; return 0; }
05022 #endif
05023 #ifdef SO_ERROR
05024         if (memcmp(str, "ERROR", 5) == 0) { *valp = SO_ERROR; return 0; }
05025 #endif
05026 #ifdef SO_NREAD
05027         if (memcmp(str, "NREAD", 5) == 0) { *valp = SO_NREAD; return 0; }
05028 #endif
05029         return -1;
05030 
05031       case 6:
05032 #ifdef SO_NKE
05033         if (memcmp(str, "SO_NKE", 6) == 0) { *valp = SO_NKE; return 0; }
05034 #endif
05035 #ifdef SO_SNDBUF
05036         if (memcmp(str, "SNDBUF", 6) == 0) { *valp = SO_SNDBUF; return 0; }
05037 #endif
05038 #ifdef SO_RCVBUF
05039         if (memcmp(str, "RCVBUF", 6) == 0) { *valp = SO_RCVBUF; return 0; }
05040 #endif
05041 #ifdef SO_LINGER
05042         if (memcmp(str, "LINGER", 6) == 0) { *valp = SO_LINGER; return 0; }
05043 #endif
05044         return -1;
05045 
05046       case 7:
05047 #ifdef SO_TYPE
05048         if (memcmp(str, "SO_TYPE", 7) == 0) { *valp = SO_TYPE; return 0; }
05049 #endif
05050 #ifdef SO_BINTIME
05051         if (memcmp(str, "BINTIME", 7) == 0) { *valp = SO_BINTIME; return 0; }
05052 #endif
05053         return -1;
05054 
05055       case 8:
05056 #ifdef SO_DEBUG
05057         if (memcmp(str, "SO_DEBUG", 8) == 0) { *valp = SO_DEBUG; return 0; }
05058 #endif
05059 #ifdef SO_ERROR
05060         if (memcmp(str, "SO_ERROR", 8) == 0) { *valp = SO_ERROR; return 0; }
05061 #endif
05062 #ifdef SO_NREAD
05063         if (memcmp(str, "SO_NREAD", 8) == 0) { *valp = SO_NREAD; return 0; }
05064 #endif
05065 #ifdef SO_NO_CHECK
05066         if (memcmp(str, "NO_CHECK", 8) == 0) { *valp = SO_NO_CHECK; return 0; }
05067 #endif
05068 #ifdef SO_PRIORITY
05069         if (memcmp(str, "PRIORITY", 8) == 0) { *valp = SO_PRIORITY; return 0; }
05070 #endif
05071 #ifdef SO_PASSCRED
05072         if (memcmp(str, "PASSCRED", 8) == 0) { *valp = SO_PASSCRED; return 0; }
05073 #endif
05074 #ifdef SO_PEERCRED
05075         if (memcmp(str, "PEERCRED", 8) == 0) { *valp = SO_PEERCRED; return 0; }
05076 #endif
05077 #ifdef SO_RCVLOWAT
05078         if (memcmp(str, "RCVLOWAT", 8) == 0) { *valp = SO_RCVLOWAT; return 0; }
05079 #endif
05080 #ifdef SO_SNDLOWAT
05081         if (memcmp(str, "SNDLOWAT", 8) == 0) { *valp = SO_SNDLOWAT; return 0; }
05082 #endif
05083 #ifdef SO_RCVTIMEO
05084         if (memcmp(str, "RCVTIMEO", 8) == 0) { *valp = SO_RCVTIMEO; return 0; }
05085 #endif
05086 #ifdef SO_SNDTIMEO
05087         if (memcmp(str, "SNDTIMEO", 8) == 0) { *valp = SO_SNDTIMEO; return 0; }
05088 #endif
05089 #ifdef SO_WANTMORE
05090         if (memcmp(str, "WANTMORE", 8) == 0) { *valp = SO_WANTMORE; return 0; }
05091 #endif
05092 #ifdef SO_PEERNAME
05093         if (memcmp(str, "PEERNAME", 8) == 0) { *valp = SO_PEERNAME; return 0; }
05094 #endif
05095 #ifdef SO_ALLZONES
05096         if (memcmp(str, "ALLZONES", 8) == 0) { *valp = SO_ALLZONES; return 0; }
05097 #endif
05098         return -1;
05099 
05100       case 9:
05101 #ifdef SO_SNDBUF
05102         if (memcmp(str, "SO_SNDBUF", 9) == 0) { *valp = SO_SNDBUF; return 0; }
05103 #endif
05104 #ifdef SO_RCVBUF
05105         if (memcmp(str, "SO_RCVBUF", 9) == 0) { *valp = SO_RCVBUF; return 0; }
05106 #endif
05107 #ifdef SO_LINGER
05108         if (memcmp(str, "SO_LINGER", 9) == 0) { *valp = SO_LINGER; return 0; }
05109 #endif
05110 #ifdef SO_REUSEADDR
05111         if (memcmp(str, "REUSEADDR", 9) == 0) { *valp = SO_REUSEADDR; return 0; }
05112 #endif
05113 #ifdef SO_REUSEPORT
05114         if (memcmp(str, "REUSEPORT", 9) == 0) { *valp = SO_REUSEPORT; return 0; }
05115 #endif
05116 #ifdef SO_DONTROUTE
05117         if (memcmp(str, "DONTROUTE", 9) == 0) { *valp = SO_DONTROUTE; return 0; }
05118 #endif
05119 #ifdef SO_BROADCAST
05120         if (memcmp(str, "BROADCAST", 9) == 0) { *valp = SO_BROADCAST; return 0; }
05121 #endif
05122 #ifdef SO_KEEPALIVE
05123         if (memcmp(str, "KEEPALIVE", 9) == 0) { *valp = SO_KEEPALIVE; return 0; }
05124 #endif
05125 #ifdef SO_OOBINLINE
05126         if (memcmp(str, "OOBINLINE", 9) == 0) { *valp = SO_OOBINLINE; return 0; }
05127 #endif
05128 #ifdef SO_DONTTRUNC
05129         if (memcmp(str, "DONTTRUNC", 9) == 0) { *valp = SO_DONTTRUNC; return 0; }
05130 #endif
05131 #ifdef SO_NOSIGPIPE
05132         if (memcmp(str, "NOSIGPIPE", 9) == 0) { *valp = SO_NOSIGPIPE; return 0; }
05133 #endif
05134 #ifdef SO_TIMESTAMP
05135         if (memcmp(str, "TIMESTAMP", 9) == 0) { *valp = SO_TIMESTAMP; return 0; }
05136 #endif
05137 #ifdef SO_RECVUCRED
05138         if (memcmp(str, "RECVUCRED", 9) == 0) { *valp = SO_RECVUCRED; return 0; }
05139 #endif
05140         return -1;
05141 
05142       case 10:
05143 #ifdef SO_BINTIME
05144         if (memcmp(str, "SO_BINTIME", 10) == 0) { *valp = SO_BINTIME; return 0; }
05145 #endif
05146 #ifdef SO_ACCEPTCONN
05147         if (memcmp(str, "ACCEPTCONN", 10) == 0) { *valp = SO_ACCEPTCONN; return 0; }
05148 #endif
05149 #ifdef SO_MAC_EXEMPT
05150         if (memcmp(str, "MAC_EXEMPT", 10) == 0) { *valp = SO_MAC_EXEMPT; return 0; }
05151 #endif
05152         return -1;
05153 
05154       case 11:
05155 #ifdef SO_NO_CHECK
05156         if (memcmp(str, "SO_NO_CHECK", 11) == 0) { *valp = SO_NO_CHECK; return 0; }
05157 #endif
05158 #ifdef SO_PRIORITY
05159         if (memcmp(str, "SO_PRIORITY", 11) == 0) { *valp = SO_PRIORITY; return 0; }
05160 #endif
05161 #ifdef SO_PASSCRED
05162         if (memcmp(str, "SO_PASSCRED", 11) == 0) { *valp = SO_PASSCRED; return 0; }
05163 #endif
05164 #ifdef SO_PEERCRED
05165         if (memcmp(str, "SO_PEERCRED", 11) == 0) { *valp = SO_PEERCRED; return 0; }
05166 #endif
05167 #ifdef SO_RCVLOWAT
05168         if (memcmp(str, "SO_RCVLOWAT", 11) == 0) { *valp = SO_RCVLOWAT; return 0; }
05169 #endif
05170 #ifdef SO_SNDLOWAT
05171         if (memcmp(str, "SO_SNDLOWAT", 11) == 0) { *valp = SO_SNDLOWAT; return 0; }
05172 #endif
05173 #ifdef SO_RCVTIMEO
05174         if (memcmp(str, "SO_RCVTIMEO", 11) == 0) { *valp = SO_RCVTIMEO; return 0; }
05175 #endif
05176 #ifdef SO_SNDTIMEO
05177         if (memcmp(str, "SO_SNDTIMEO", 11) == 0) { *valp = SO_SNDTIMEO; return 0; }
05178 #endif
05179 #ifdef SO_WANTMORE
05180         if (memcmp(str, "SO_WANTMORE", 11) == 0) { *valp = SO_WANTMORE; return 0; }
05181 #endif
05182 #ifdef SO_PEERNAME
05183         if (memcmp(str, "SO_PEERNAME", 11) == 0) { *valp = SO_PEERNAME; return 0; }
05184 #endif
05185 #ifdef SO_ALLZONES
05186         if (memcmp(str, "SO_ALLZONES", 11) == 0) { *valp = SO_ALLZONES; return 0; }
05187 #endif
05188 #ifdef SO_USELOOPBACK
05189         if (memcmp(str, "USELOOPBACK", 11) == 0) { *valp = SO_USELOOPBACK; return 0; }
05190 #endif
05191 #ifdef SO_WANTOOBFLAG
05192         if (memcmp(str, "WANTOOBFLAG", 11) == 0) { *valp = SO_WANTOOBFLAG; return 0; }
05193 #endif
05194 #ifdef SO_TIMESTAMPNS
05195         if (memcmp(str, "TIMESTAMPNS", 11) == 0) { *valp = SO_TIMESTAMPNS; return 0; }
05196 #endif
05197         return -1;
05198 
05199       case 12:
05200 #ifdef SO_REUSEADDR
05201         if (memcmp(str, "SO_REUSEADDR", 12) == 0) { *valp = SO_REUSEADDR; return 0; }
05202 #endif
05203 #ifdef SO_REUSEPORT
05204         if (memcmp(str, "SO_REUSEPORT", 12) == 0) { *valp = SO_REUSEPORT; return 0; }
05205 #endif
05206 #ifdef SO_DONTROUTE
05207         if (memcmp(str, "SO_DONTROUTE", 12) == 0) { *valp = SO_DONTROUTE; return 0; }
05208 #endif
05209 #ifdef SO_BROADCAST
05210         if (memcmp(str, "SO_BROADCAST", 12) == 0) { *valp = SO_BROADCAST; return 0; }
05211 #endif
05212 #ifdef SO_KEEPALIVE
05213         if (memcmp(str, "SO_KEEPALIVE", 12) == 0) { *valp = SO_KEEPALIVE; return 0; }
05214 #endif
05215 #ifdef SO_OOBINLINE
05216         if (memcmp(str, "SO_OOBINLINE", 12) == 0) { *valp = SO_OOBINLINE; return 0; }
05217 #endif
05218 #ifdef SO_DONTTRUNC
05219         if (memcmp(str, "SO_DONTTRUNC", 12) == 0) { *valp = SO_DONTTRUNC; return 0; }
05220 #endif
05221 #ifdef SO_NOSIGPIPE
05222         if (memcmp(str, "SO_NOSIGPIPE", 12) == 0) { *valp = SO_NOSIGPIPE; return 0; }
05223 #endif
05224 #ifdef SO_TIMESTAMP
05225         if (memcmp(str, "SO_TIMESTAMP", 12) == 0) { *valp = SO_TIMESTAMP; return 0; }
05226 #endif
05227 #ifdef SO_RECVUCRED
05228         if (memcmp(str, "SO_RECVUCRED", 12) == 0) { *valp = SO_RECVUCRED; return 0; }
05229 #endif
05230 #ifdef SO_ACCEPTFILTER
05231         if (memcmp(str, "ACCEPTFILTER", 12) == 0) { *valp = SO_ACCEPTFILTER; return 0; }
05232 #endif
05233 #ifdef SO_BINDTODEVICE
05234         if (memcmp(str, "BINDTODEVICE", 12) == 0) { *valp = SO_BINDTODEVICE; return 0; }
05235 #endif
05236         return -1;
05237 
05238       case 13:
05239 #ifdef SO_ACCEPTCONN
05240         if (memcmp(str, "SO_ACCEPTCONN", 13) == 0) { *valp = SO_ACCEPTCONN; return 0; }
05241 #endif
05242 #ifdef SO_MAC_EXEMPT
05243         if (memcmp(str, "SO_MAC_EXEMPT", 13) == 0) { *valp = SO_MAC_EXEMPT; return 0; }
05244 #endif
05245 #ifdef SO_ATTACH_FILTER
05246         if (memcmp(str, "ATTACH_FILTER", 13) == 0) { *valp = SO_ATTACH_FILTER; return 0; }
05247 #endif
05248 #ifdef SO_DETACH_FILTER
05249         if (memcmp(str, "DETACH_FILTER", 13) == 0) { *valp = SO_DETACH_FILTER; return 0; }
05250 #endif
05251         return -1;
05252 
05253       case 14:
05254 #ifdef SO_USELOOPBACK
05255         if (memcmp(str, "SO_USELOOPBACK", 14) == 0) { *valp = SO_USELOOPBACK; return 0; }
05256 #endif
05257 #ifdef SO_WANTOOBFLAG
05258         if (memcmp(str, "SO_WANTOOBFLAG", 14) == 0) { *valp = SO_WANTOOBFLAG; return 0; }
05259 #endif
05260 #ifdef SO_TIMESTAMPNS
05261         if (memcmp(str, "SO_TIMESTAMPNS", 14) == 0) { *valp = SO_TIMESTAMPNS; return 0; }
05262 #endif
05263         return -1;
05264 
05265       case 15:
05266 #ifdef SO_ACCEPTFILTER
05267         if (memcmp(str, "SO_ACCEPTFILTER", 15) == 0) { *valp = SO_ACCEPTFILTER; return 0; }
05268 #endif
05269 #ifdef SO_BINDTODEVICE
05270         if (memcmp(str, "SO_BINDTODEVICE", 15) == 0) { *valp = SO_BINDTODEVICE; return 0; }
05271 #endif
05272         return -1;
05273 
05274       case 16:
05275 #ifdef SO_ATTACH_FILTER
05276         if (memcmp(str, "SO_ATTACH_FILTER", 16) == 0) { *valp = SO_ATTACH_FILTER; return 0; }
05277 #endif
05278 #ifdef SO_DETACH_FILTER
05279         if (memcmp(str, "SO_DETACH_FILTER", 16) == 0) { *valp = SO_DETACH_FILTER; return 0; }
05280 #endif
05281         return -1;
05282 
05283       case 23:
05284 #ifdef SO_SECURITY_AUTHENTICATION
05285         if (memcmp(str, "SECURITY_AUTHENTICATION", 23) == 0) { *valp = SO_SECURITY_AUTHENTICATION; return 0; }
05286 #endif
05287         return -1;
05288 
05289       case 26:
05290 #ifdef SO_SECURITY_AUTHENTICATION
05291         if (memcmp(str, "SO_SECURITY_AUTHENTICATION", 26) == 0) { *valp = SO_SECURITY_AUTHENTICATION; return 0; }
05292 #endif
05293         return -1;
05294 
05295       case 27:
05296 #ifdef SO_SECURITY_ENCRYPTION_NETWORK
05297         if (memcmp(str, "SECURITY_ENCRYPTION_NETWORK", 27) == 0) { *valp = SO_SECURITY_ENCRYPTION_NETWORK; return 0; }
05298 #endif
05299         return -1;
05300 
05301       case 29:
05302 #ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
05303         if (memcmp(str, "SECURITY_ENCRYPTION_TRANSPORT", 29) == 0) { *valp = SO_SECURITY_ENCRYPTION_TRANSPORT; return 0; }
05304 #endif
05305         return -1;
05306 
05307       case 30:
05308 #ifdef SO_SECURITY_ENCRYPTION_NETWORK
05309         if (memcmp(str, "SO_SECURITY_ENCRYPTION_NETWORK", 30) == 0) { *valp = SO_SECURITY_ENCRYPTION_NETWORK; return 0; }
05310 #endif
05311         return -1;
05312 
05313       case 32:
05314 #ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
05315         if (memcmp(str, "SO_SECURITY_ENCRYPTION_TRANSPORT", 32) == 0) { *valp = SO_SECURITY_ENCRYPTION_TRANSPORT; return 0; }
05316 #endif
05317         return -1;
05318 
05319       default:
05320         return -1;
05321     }
05322 }
05323 
05324 
05325 int
05326 rsock_ip_optname_to_int(const char *str, long len, int *valp)
05327 {
05328     switch (len) {
05329       case 3:
05330 #ifdef IP_TOS
05331         if (memcmp(str, "TOS", 3) == 0) { *valp = IP_TOS; return 0; }
05332 #endif
05333 #ifdef IP_TTL
05334         if (memcmp(str, "TTL", 3) == 0) { *valp = IP_TTL; return 0; }
05335 #endif
05336 #ifdef IP_MTU
05337         if (memcmp(str, "MTU", 3) == 0) { *valp = IP_MTU; return 0; }
05338 #endif
05339         return -1;
05340 
05341       case 6:
05342 #ifdef IP_TOS
05343         if (memcmp(str, "IP_TOS", 6) == 0) { *valp = IP_TOS; return 0; }
05344 #endif
05345 #ifdef IP_TTL
05346         if (memcmp(str, "IP_TTL", 6) == 0) { *valp = IP_TTL; return 0; }
05347 #endif
05348 #ifdef IP_MTU
05349         if (memcmp(str, "IP_MTU", 6) == 0) { *valp = IP_MTU; return 0; }
05350 #endif
05351 #ifdef IP_MINTTL
05352         if (memcmp(str, "MINTTL", 6) == 0) { *valp = IP_MINTTL; return 0; }
05353 #endif
05354 #ifdef IP_RECVIF
05355         if (memcmp(str, "RECVIF", 6) == 0) { *valp = IP_RECVIF; return 0; }
05356 #endif
05357         return -1;
05358 
05359       case 7:
05360 #ifdef IP_OPTIONS
05361         if (memcmp(str, "OPTIONS", 7) == 0) { *valp = IP_OPTIONS; return 0; }
05362 #endif
05363 #ifdef IP_HDRINCL
05364         if (memcmp(str, "HDRINCL", 7) == 0) { *valp = IP_HDRINCL; return 0; }
05365 #endif
05366 #ifdef IP_RETOPTS
05367         if (memcmp(str, "RETOPTS", 7) == 0) { *valp = IP_RETOPTS; return 0; }
05368 #endif
05369 #ifdef IP_RECVTTL
05370         if (memcmp(str, "RECVTTL", 7) == 0) { *valp = IP_RECVTTL; return 0; }
05371 #endif
05372 #ifdef IP_PKTINFO
05373         if (memcmp(str, "PKTINFO", 7) == 0) { *valp = IP_PKTINFO; return 0; }
05374 #endif
05375 #ifdef IP_RECVERR
05376         if (memcmp(str, "RECVERR", 7) == 0) { *valp = IP_RECVERR; return 0; }
05377 #endif
05378 #ifdef IP_RECVTOS
05379         if (memcmp(str, "RECVTOS", 7) == 0) { *valp = IP_RECVTOS; return 0; }
05380 #endif
05381 #ifdef IP_PASSSEC
05382         if (memcmp(str, "PASSSEC", 7) == 0) { *valp = IP_PASSSEC; return 0; }
05383 #endif
05384         return -1;
05385 
05386       case 8:
05387 #ifdef IP_RECVOPTS
05388         if (memcmp(str, "RECVOPTS", 8) == 0) { *valp = IP_RECVOPTS; return 0; }
05389 #endif
05390 #ifdef IP_DONTFRAG
05391         if (memcmp(str, "DONTFRAG", 8) == 0) { *valp = IP_DONTFRAG; return 0; }
05392 #endif
05393 #ifdef IP_RECVSLLA
05394         if (memcmp(str, "RECVSLLA", 8) == 0) { *valp = IP_RECVSLLA; return 0; }
05395 #endif
05396 #ifdef IP_FREEBIND
05397         if (memcmp(str, "FREEBIND", 8) == 0) { *valp = IP_FREEBIND; return 0; }
05398 #endif
05399 #ifdef IP_MSFILTER
05400         if (memcmp(str, "MSFILTER", 8) == 0) { *valp = IP_MSFILTER; return 0; }
05401 #endif
05402         return -1;
05403 
05404       case 9:
05405 #ifdef IP_MINTTL
05406         if (memcmp(str, "IP_MINTTL", 9) == 0) { *valp = IP_MINTTL; return 0; }
05407 #endif
05408 #ifdef IP_RECVIF
05409         if (memcmp(str, "IP_RECVIF", 9) == 0) { *valp = IP_RECVIF; return 0; }
05410 #endif
05411 #ifdef IP_ONESBCAST
05412         if (memcmp(str, "ONESBCAST", 9) == 0) { *valp = IP_ONESBCAST; return 0; }
05413 #endif
05414 #ifdef IP_PORTRANGE
05415         if (memcmp(str, "PORTRANGE", 9) == 0) { *valp = IP_PORTRANGE; return 0; }
05416 #endif
05417         return -1;
05418 
05419       case 10:
05420 #ifdef IP_OPTIONS
05421         if (memcmp(str, "IP_OPTIONS", 10) == 0) { *valp = IP_OPTIONS; return 0; }
05422 #endif
05423 #ifdef IP_HDRINCL
05424         if (memcmp(str, "IP_HDRINCL", 10) == 0) { *valp = IP_HDRINCL; return 0; }
05425 #endif
05426 #ifdef IP_RETOPTS
05427         if (memcmp(str, "IP_RETOPTS", 10) == 0) { *valp = IP_RETOPTS; return 0; }
05428 #endif
05429 #ifdef IP_RECVTTL
05430         if (memcmp(str, "IP_RECVTTL", 10) == 0) { *valp = IP_RECVTTL; return 0; }
05431 #endif
05432 #ifdef IP_PKTINFO
05433         if (memcmp(str, "IP_PKTINFO", 10) == 0) { *valp = IP_PKTINFO; return 0; }
05434 #endif
05435 #ifdef IP_RECVERR
05436         if (memcmp(str, "IP_RECVERR", 10) == 0) { *valp = IP_RECVERR; return 0; }
05437 #endif
05438 #ifdef IP_RECVTOS
05439         if (memcmp(str, "IP_RECVTOS", 10) == 0) { *valp = IP_RECVTOS; return 0; }
05440 #endif
05441 #ifdef IP_PASSSEC
05442         if (memcmp(str, "IP_PASSSEC", 10) == 0) { *valp = IP_PASSSEC; return 0; }
05443 #endif
05444 #ifdef IP_PKTOPTIONS
05445         if (memcmp(str, "PKTOPTIONS", 10) == 0) { *valp = IP_PKTOPTIONS; return 0; }
05446 #endif
05447         return -1;
05448 
05449       case 11:
05450 #ifdef IP_RECVOPTS
05451         if (memcmp(str, "IP_RECVOPTS", 11) == 0) { *valp = IP_RECVOPTS; return 0; }
05452 #endif
05453 #ifdef IP_DONTFRAG
05454         if (memcmp(str, "IP_DONTFRAG", 11) == 0) { *valp = IP_DONTFRAG; return 0; }
05455 #endif
05456 #ifdef IP_RECVSLLA
05457         if (memcmp(str, "IP_RECVSLLA", 11) == 0) { *valp = IP_RECVSLLA; return 0; }
05458 #endif
05459 #ifdef IP_FREEBIND
05460         if (memcmp(str, "IP_FREEBIND", 11) == 0) { *valp = IP_FREEBIND; return 0; }
05461 #endif
05462 #ifdef IP_MSFILTER
05463         if (memcmp(str, "IP_MSFILTER", 11) == 0) { *valp = IP_MSFILTER; return 0; }
05464 #endif
05465 #ifdef IP_RECVRETOPTS
05466         if (memcmp(str, "RECVRETOPTS", 11) == 0) { *valp = IP_RECVRETOPTS; return 0; }
05467 #endif
05468 #ifdef IP_RECVDSTADDR
05469         if (memcmp(str, "RECVDSTADDR", 11) == 0) { *valp = IP_RECVDSTADDR; return 0; }
05470 #endif
05471 #ifdef IP_SENDSRCADDR
05472         if (memcmp(str, "SENDSRCADDR", 11) == 0) { *valp = IP_SENDSRCADDR; return 0; }
05473 #endif
05474 #ifdef IP_XFRM_POLICY
05475         if (memcmp(str, "XFRM_POLICY", 11) == 0) { *valp = IP_XFRM_POLICY; return 0; }
05476 #endif
05477 #ifdef IP_PMTUDISC_DO
05478         if (memcmp(str, "PMTUDISC_DO", 11) == 0) { *valp = IP_PMTUDISC_DO; return 0; }
05479 #endif
05480         return -1;
05481 
05482       case 12:
05483 #ifdef IP_ONESBCAST
05484         if (memcmp(str, "IP_ONESBCAST", 12) == 0) { *valp = IP_ONESBCAST; return 0; }
05485 #endif
05486 #ifdef IP_PORTRANGE
05487         if (memcmp(str, "IP_PORTRANGE", 12) == 0) { *valp = IP_PORTRANGE; return 0; }
05488 #endif
05489 #ifdef IP_MULTICAST_IF
05490         if (memcmp(str, "MULTICAST_IF", 12) == 0) { *valp = IP_MULTICAST_IF; return 0; }
05491 #endif
05492 #ifdef IP_ROUTER_ALERT
05493         if (memcmp(str, "ROUTER_ALERT", 12) == 0) { *valp = IP_ROUTER_ALERT; return 0; }
05494 #endif
05495 #ifdef IP_MTU_DISCOVER
05496         if (memcmp(str, "MTU_DISCOVER", 12) == 0) { *valp = IP_MTU_DISCOVER; return 0; }
05497 #endif
05498 #ifdef IP_IPSEC_POLICY
05499         if (memcmp(str, "IPSEC_POLICY", 12) == 0) { *valp = IP_IPSEC_POLICY; return 0; }
05500 #endif
05501 #ifdef IP_BLOCK_SOURCE
05502         if (memcmp(str, "BLOCK_SOURCE", 12) == 0) { *valp = IP_BLOCK_SOURCE; return 0; }
05503 #endif
05504         return -1;
05505 
05506       case 13:
05507 #ifdef IP_PKTOPTIONS
05508         if (memcmp(str, "IP_PKTOPTIONS", 13) == 0) { *valp = IP_PKTOPTIONS; return 0; }
05509 #endif
05510 #ifdef IP_MULTICAST_TTL
05511         if (memcmp(str, "MULTICAST_TTL", 13) == 0) { *valp = IP_MULTICAST_TTL; return 0; }
05512 #endif
05513 #ifdef IP_PMTUDISC_DONT
05514         if (memcmp(str, "PMTUDISC_DONT", 13) == 0) { *valp = IP_PMTUDISC_DONT; return 0; }
05515 #endif
05516 #ifdef IP_PMTUDISC_WANT
05517         if (memcmp(str, "PMTUDISC_WANT", 13) == 0) { *valp = IP_PMTUDISC_WANT; return 0; }
05518 #endif
05519         return -1;
05520 
05521       case 14:
05522 #ifdef IP_RECVRETOPTS
05523         if (memcmp(str, "IP_RECVRETOPTS", 14) == 0) { *valp = IP_RECVRETOPTS; return 0; }
05524 #endif
05525 #ifdef IP_RECVDSTADDR
05526         if (memcmp(str, "IP_RECVDSTADDR", 14) == 0) { *valp = IP_RECVDSTADDR; return 0; }
05527 #endif
05528 #ifdef IP_SENDSRCADDR
05529         if (memcmp(str, "IP_SENDSRCADDR", 14) == 0) { *valp = IP_SENDSRCADDR; return 0; }
05530 #endif
05531 #ifdef IP_XFRM_POLICY
05532         if (memcmp(str, "IP_XFRM_POLICY", 14) == 0) { *valp = IP_XFRM_POLICY; return 0; }
05533 #endif
05534 #ifdef IP_PMTUDISC_DO
05535         if (memcmp(str, "IP_PMTUDISC_DO", 14) == 0) { *valp = IP_PMTUDISC_DO; return 0; }
05536 #endif
05537 #ifdef IP_MULTICAST_LOOP
05538         if (memcmp(str, "MULTICAST_LOOP", 14) == 0) { *valp = IP_MULTICAST_LOOP; return 0; }
05539 #endif
05540 #ifdef IP_ADD_MEMBERSHIP
05541         if (memcmp(str, "ADD_MEMBERSHIP", 14) == 0) { *valp = IP_ADD_MEMBERSHIP; return 0; }
05542 #endif
05543 #ifdef IP_UNBLOCK_SOURCE
05544         if (memcmp(str, "UNBLOCK_SOURCE", 14) == 0) { *valp = IP_UNBLOCK_SOURCE; return 0; }
05545 #endif
05546         return -1;
05547 
05548       case 15:
05549 #ifdef IP_MULTICAST_IF
05550         if (memcmp(str, "IP_MULTICAST_IF", 15) == 0) { *valp = IP_MULTICAST_IF; return 0; }
05551 #endif
05552 #ifdef IP_ROUTER_ALERT
05553         if (memcmp(str, "IP_ROUTER_ALERT", 15) == 0) { *valp = IP_ROUTER_ALERT; return 0; }
05554 #endif
05555 #ifdef IP_MTU_DISCOVER
05556         if (memcmp(str, "IP_MTU_DISCOVER", 15) == 0) { *valp = IP_MTU_DISCOVER; return 0; }
05557 #endif
05558 #ifdef IP_IPSEC_POLICY
05559         if (memcmp(str, "IP_IPSEC_POLICY", 15) == 0) { *valp = IP_IPSEC_POLICY; return 0; }
05560 #endif
05561 #ifdef IP_BLOCK_SOURCE
05562         if (memcmp(str, "IP_BLOCK_SOURCE", 15) == 0) { *valp = IP_BLOCK_SOURCE; return 0; }
05563 #endif
05564 #ifdef IP_DROP_MEMBERSHIP
05565         if (memcmp(str, "DROP_MEMBERSHIP", 15) == 0) { *valp = IP_DROP_MEMBERSHIP; return 0; }
05566 #endif
05567 #ifdef IP_MAX_MEMBERSHIPS
05568         if (memcmp(str, "MAX_MEMBERSHIPS", 15) == 0) { *valp = IP_MAX_MEMBERSHIPS; return 0; }
05569 #endif
05570         return -1;
05571 
05572       case 16:
05573 #ifdef IP_MULTICAST_TTL
05574         if (memcmp(str, "IP_MULTICAST_TTL", 16) == 0) { *valp = IP_MULTICAST_TTL; return 0; }
05575 #endif
05576 #ifdef IP_PMTUDISC_DONT
05577         if (memcmp(str, "IP_PMTUDISC_DONT", 16) == 0) { *valp = IP_PMTUDISC_DONT; return 0; }
05578 #endif
05579 #ifdef IP_PMTUDISC_WANT
05580         if (memcmp(str, "IP_PMTUDISC_WANT", 16) == 0) { *valp = IP_PMTUDISC_WANT; return 0; }
05581 #endif
05582         return -1;
05583 
05584       case 17:
05585 #ifdef IP_MULTICAST_LOOP
05586         if (memcmp(str, "IP_MULTICAST_LOOP", 17) == 0) { *valp = IP_MULTICAST_LOOP; return 0; }
05587 #endif
05588 #ifdef IP_ADD_MEMBERSHIP
05589         if (memcmp(str, "IP_ADD_MEMBERSHIP", 17) == 0) { *valp = IP_ADD_MEMBERSHIP; return 0; }
05590 #endif
05591 #ifdef IP_UNBLOCK_SOURCE
05592         if (memcmp(str, "IP_UNBLOCK_SOURCE", 17) == 0) { *valp = IP_UNBLOCK_SOURCE; return 0; }
05593 #endif
05594         return -1;
05595 
05596       case 18:
05597 #ifdef IP_DROP_MEMBERSHIP
05598         if (memcmp(str, "IP_DROP_MEMBERSHIP", 18) == 0) { *valp = IP_DROP_MEMBERSHIP; return 0; }
05599 #endif
05600 #ifdef IP_MAX_MEMBERSHIPS
05601         if (memcmp(str, "IP_MAX_MEMBERSHIPS", 18) == 0) { *valp = IP_MAX_MEMBERSHIPS; return 0; }
05602 #endif
05603         return -1;
05604 
05605       case 21:
05606 #ifdef IP_DEFAULT_MULTICAST_TTL
05607         if (memcmp(str, "DEFAULT_MULTICAST_TTL", 21) == 0) { *valp = IP_DEFAULT_MULTICAST_TTL; return 0; }
05608 #endif
05609 #ifdef IP_ADD_SOURCE_MEMBERSHIP
05610         if (memcmp(str, "ADD_SOURCE_MEMBERSHIP", 21) == 0) { *valp = IP_ADD_SOURCE_MEMBERSHIP; return 0; }
05611 #endif
05612         return -1;
05613 
05614       case 22:
05615 #ifdef IP_DEFAULT_MULTICAST_LOOP
05616         if (memcmp(str, "DEFAULT_MULTICAST_LOOP", 22) == 0) { *valp = IP_DEFAULT_MULTICAST_LOOP; return 0; }
05617 #endif
05618 #ifdef IP_DROP_SOURCE_MEMBERSHIP
05619         if (memcmp(str, "DROP_SOURCE_MEMBERSHIP", 22) == 0) { *valp = IP_DROP_SOURCE_MEMBERSHIP; return 0; }
05620 #endif
05621         return -1;
05622 
05623       case 24:
05624 #ifdef IP_DEFAULT_MULTICAST_TTL
05625         if (memcmp(str, "IP_DEFAULT_MULTICAST_TTL", 24) == 0) { *valp = IP_DEFAULT_MULTICAST_TTL; return 0; }
05626 #endif
05627 #ifdef IP_ADD_SOURCE_MEMBERSHIP
05628         if (memcmp(str, "IP_ADD_SOURCE_MEMBERSHIP", 24) == 0) { *valp = IP_ADD_SOURCE_MEMBERSHIP; return 0; }
05629 #endif
05630         return -1;
05631 
05632       case 25:
05633 #ifdef IP_DEFAULT_MULTICAST_LOOP
05634         if (memcmp(str, "IP_DEFAULT_MULTICAST_LOOP", 25) == 0) { *valp = IP_DEFAULT_MULTICAST_LOOP; return 0; }
05635 #endif
05636 #ifdef IP_DROP_SOURCE_MEMBERSHIP
05637         if (memcmp(str, "IP_DROP_SOURCE_MEMBERSHIP", 25) == 0) { *valp = IP_DROP_SOURCE_MEMBERSHIP; return 0; }
05638 #endif
05639         return -1;
05640 
05641       default:
05642         return -1;
05643     }
05644 }
05645 
05646 
05647 #ifdef IPPROTO_IPV6
05648 int
05649 rsock_ipv6_optname_to_int(const char *str, long len, int *valp)
05650 {
05651     switch (len) {
05652       case 5:
05653 #ifdef IPV6_RTHDR
05654         if (memcmp(str, "RTHDR", 5) == 0) { *valp = IPV6_RTHDR; return 0; }
05655 #endif
05656         return -1;
05657 
05658       case 6:
05659 #ifdef IPV6_V6ONLY
05660         if (memcmp(str, "V6ONLY", 6) == 0) { *valp = IPV6_V6ONLY; return 0; }
05661 #endif
05662 #ifdef IPV6_TCLASS
05663         if (memcmp(str, "TCLASS", 6) == 0) { *valp = IPV6_TCLASS; return 0; }
05664 #endif
05665         return -1;
05666 
05667       case 7:
05668 #ifdef IPV6_DSTOPTS
05669         if (memcmp(str, "DSTOPTS", 7) == 0) { *valp = IPV6_DSTOPTS; return 0; }
05670 #endif
05671 #ifdef IPV6_HOPOPTS
05672         if (memcmp(str, "HOPOPTS", 7) == 0) { *valp = IPV6_HOPOPTS; return 0; }
05673 #endif
05674 #ifdef IPV6_NEXTHOP
05675         if (memcmp(str, "NEXTHOP", 7) == 0) { *valp = IPV6_NEXTHOP; return 0; }
05676 #endif
05677 #ifdef IPV6_PATHMTU
05678         if (memcmp(str, "PATHMTU", 7) == 0) { *valp = IPV6_PATHMTU; return 0; }
05679 #endif
05680 #ifdef IPV6_PKTINFO
05681         if (memcmp(str, "PKTINFO", 7) == 0) { *valp = IPV6_PKTINFO; return 0; }
05682 #endif
05683         return -1;
05684 
05685       case 8:
05686 #ifdef IPV6_CHECKSUM
05687         if (memcmp(str, "CHECKSUM", 8) == 0) { *valp = IPV6_CHECKSUM; return 0; }
05688 #endif
05689 #ifdef IPV6_DONTFRAG
05690         if (memcmp(str, "DONTFRAG", 8) == 0) { *valp = IPV6_DONTFRAG; return 0; }
05691 #endif
05692 #ifdef IPV6_HOPLIMIT
05693         if (memcmp(str, "HOPLIMIT", 8) == 0) { *valp = IPV6_HOPLIMIT; return 0; }
05694 #endif
05695         return -1;
05696 
05697       case 9:
05698 #ifdef IPV6_RECVRTHDR
05699         if (memcmp(str, "RECVRTHDR", 9) == 0) { *valp = IPV6_RECVRTHDR; return 0; }
05700 #endif
05701         return -1;
05702 
05703       case 10:
05704 #ifdef IPV6_RTHDR
05705         if (memcmp(str, "IPV6_RTHDR", 10) == 0) { *valp = IPV6_RTHDR; return 0; }
05706 #endif
05707 #ifdef IPV6_JOIN_GROUP
05708         if (memcmp(str, "JOIN_GROUP", 10) == 0) { *valp = IPV6_JOIN_GROUP; return 0; }
05709 #endif
05710 #ifdef IPV6_RECVTCLASS
05711         if (memcmp(str, "RECVTCLASS", 10) == 0) { *valp = IPV6_RECVTCLASS; return 0; }
05712 #endif
05713         return -1;
05714 
05715       case 11:
05716 #ifdef IPV6_V6ONLY
05717         if (memcmp(str, "IPV6_V6ONLY", 11) == 0) { *valp = IPV6_V6ONLY; return 0; }
05718 #endif
05719 #ifdef IPV6_TCLASS
05720         if (memcmp(str, "IPV6_TCLASS", 11) == 0) { *valp = IPV6_TCLASS; return 0; }
05721 #endif
05722 #ifdef IPV6_LEAVE_GROUP
05723         if (memcmp(str, "LEAVE_GROUP", 11) == 0) { *valp = IPV6_LEAVE_GROUP; return 0; }
05724 #endif
05725 #ifdef IPV6_RECVDSTOPTS
05726         if (memcmp(str, "RECVDSTOPTS", 11) == 0) { *valp = IPV6_RECVDSTOPTS; return 0; }
05727 #endif
05728 #ifdef IPV6_RECVHOPOPTS
05729         if (memcmp(str, "RECVHOPOPTS", 11) == 0) { *valp = IPV6_RECVHOPOPTS; return 0; }
05730 #endif
05731 #ifdef IPV6_RECVPKTINFO
05732         if (memcmp(str, "RECVPKTINFO", 11) == 0) { *valp = IPV6_RECVPKTINFO; return 0; }
05733 #endif
05734 #ifdef IPV6_RECVPATHMTU
05735         if (memcmp(str, "RECVPATHMTU", 11) == 0) { *valp = IPV6_RECVPATHMTU; return 0; }
05736 #endif
05737 #ifdef IPV6_USE_MIN_MTU
05738         if (memcmp(str, "USE_MIN_MTU", 11) == 0) { *valp = IPV6_USE_MIN_MTU; return 0; }
05739 #endif
05740         return -1;
05741 
05742       case 12:
05743 #ifdef IPV6_DSTOPTS
05744         if (memcmp(str, "IPV6_DSTOPTS", 12) == 0) { *valp = IPV6_DSTOPTS; return 0; }
05745 #endif
05746 #ifdef IPV6_HOPOPTS
05747         if (memcmp(str, "IPV6_HOPOPTS", 12) == 0) { *valp = IPV6_HOPOPTS; return 0; }
05748 #endif
05749 #ifdef IPV6_NEXTHOP
05750         if (memcmp(str, "IPV6_NEXTHOP", 12) == 0) { *valp = IPV6_NEXTHOP; return 0; }
05751 #endif
05752 #ifdef IPV6_PATHMTU
05753         if (memcmp(str, "IPV6_PATHMTU", 12) == 0) { *valp = IPV6_PATHMTU; return 0; }
05754 #endif
05755 #ifdef IPV6_PKTINFO
05756         if (memcmp(str, "IPV6_PKTINFO", 12) == 0) { *valp = IPV6_PKTINFO; return 0; }
05757 #endif
05758 #ifdef IPV6_MULTICAST_IF
05759         if (memcmp(str, "MULTICAST_IF", 12) == 0) { *valp = IPV6_MULTICAST_IF; return 0; }
05760 #endif
05761 #ifdef IPV6_UNICAST_HOPS
05762         if (memcmp(str, "UNICAST_HOPS", 12) == 0) { *valp = IPV6_UNICAST_HOPS; return 0; }
05763 #endif
05764 #ifdef IPV6_RECVHOPLIMIT
05765         if (memcmp(str, "RECVHOPLIMIT", 12) == 0) { *valp = IPV6_RECVHOPLIMIT; return 0; }
05766 #endif
05767 #ifdef IPV6_RTHDRDSTOPTS
05768         if (memcmp(str, "RTHDRDSTOPTS", 12) == 0) { *valp = IPV6_RTHDRDSTOPTS; return 0; }
05769 #endif
05770 #ifdef IPV6_RTHDR_TYPE_0
05771         if (memcmp(str, "RTHDR_TYPE_0", 12) == 0) { *valp = IPV6_RTHDR_TYPE_0; return 0; }
05772 #endif
05773         return -1;
05774 
05775       case 13:
05776 #ifdef IPV6_CHECKSUM
05777         if (memcmp(str, "IPV6_CHECKSUM", 13) == 0) { *valp = IPV6_CHECKSUM; return 0; }
05778 #endif
05779 #ifdef IPV6_DONTFRAG
05780         if (memcmp(str, "IPV6_DONTFRAG", 13) == 0) { *valp = IPV6_DONTFRAG; return 0; }
05781 #endif
05782 #ifdef IPV6_HOPLIMIT
05783         if (memcmp(str, "IPV6_HOPLIMIT", 13) == 0) { *valp = IPV6_HOPLIMIT; return 0; }
05784 #endif
05785         return -1;
05786 
05787       case 14:
05788 #ifdef IPV6_RECVRTHDR
05789         if (memcmp(str, "IPV6_RECVRTHDR", 14) == 0) { *valp = IPV6_RECVRTHDR; return 0; }
05790 #endif
05791 #ifdef IPV6_MULTICAST_HOPS
05792         if (memcmp(str, "MULTICAST_HOPS", 14) == 0) { *valp = IPV6_MULTICAST_HOPS; return 0; }
05793 #endif
05794 #ifdef IPV6_MULTICAST_LOOP
05795         if (memcmp(str, "MULTICAST_LOOP", 14) == 0) { *valp = IPV6_MULTICAST_LOOP; return 0; }
05796 #endif
05797         return -1;
05798 
05799       case 15:
05800 #ifdef IPV6_JOIN_GROUP
05801         if (memcmp(str, "IPV6_JOIN_GROUP", 15) == 0) { *valp = IPV6_JOIN_GROUP; return 0; }
05802 #endif
05803 #ifdef IPV6_RECVTCLASS
05804         if (memcmp(str, "IPV6_RECVTCLASS", 15) == 0) { *valp = IPV6_RECVTCLASS; return 0; }
05805 #endif
05806         return -1;
05807 
05808       case 16:
05809 #ifdef IPV6_LEAVE_GROUP
05810         if (memcmp(str, "IPV6_LEAVE_GROUP", 16) == 0) { *valp = IPV6_LEAVE_GROUP; return 0; }
05811 #endif
05812 #ifdef IPV6_RECVDSTOPTS
05813         if (memcmp(str, "IPV6_RECVDSTOPTS", 16) == 0) { *valp = IPV6_RECVDSTOPTS; return 0; }
05814 #endif
05815 #ifdef IPV6_RECVHOPOPTS
05816         if (memcmp(str, "IPV6_RECVHOPOPTS", 16) == 0) { *valp = IPV6_RECVHOPOPTS; return 0; }
05817 #endif
05818 #ifdef IPV6_RECVPKTINFO
05819         if (memcmp(str, "IPV6_RECVPKTINFO", 16) == 0) { *valp = IPV6_RECVPKTINFO; return 0; }
05820 #endif
05821 #ifdef IPV6_RECVPATHMTU
05822         if (memcmp(str, "IPV6_RECVPATHMTU", 16) == 0) { *valp = IPV6_RECVPATHMTU; return 0; }
05823 #endif
05824 #ifdef IPV6_USE_MIN_MTU
05825         if (memcmp(str, "IPV6_USE_MIN_MTU", 16) == 0) { *valp = IPV6_USE_MIN_MTU; return 0; }
05826 #endif
05827         return -1;
05828 
05829       case 17:
05830 #ifdef IPV6_MULTICAST_IF
05831         if (memcmp(str, "IPV6_MULTICAST_IF", 17) == 0) { *valp = IPV6_MULTICAST_IF; return 0; }
05832 #endif
05833 #ifdef IPV6_UNICAST_HOPS
05834         if (memcmp(str, "IPV6_UNICAST_HOPS", 17) == 0) { *valp = IPV6_UNICAST_HOPS; return 0; }
05835 #endif
05836 #ifdef IPV6_RECVHOPLIMIT
05837         if (memcmp(str, "IPV6_RECVHOPLIMIT", 17) == 0) { *valp = IPV6_RECVHOPLIMIT; return 0; }
05838 #endif
05839 #ifdef IPV6_RTHDRDSTOPTS
05840         if (memcmp(str, "IPV6_RTHDRDSTOPTS", 17) == 0) { *valp = IPV6_RTHDRDSTOPTS; return 0; }
05841 #endif
05842 #ifdef IPV6_RTHDR_TYPE_0
05843         if (memcmp(str, "IPV6_RTHDR_TYPE_0", 17) == 0) { *valp = IPV6_RTHDR_TYPE_0; return 0; }
05844 #endif
05845         return -1;
05846 
05847       case 19:
05848 #ifdef IPV6_MULTICAST_HOPS
05849         if (memcmp(str, "IPV6_MULTICAST_HOPS", 19) == 0) { *valp = IPV6_MULTICAST_HOPS; return 0; }
05850 #endif
05851 #ifdef IPV6_MULTICAST_LOOP
05852         if (memcmp(str, "IPV6_MULTICAST_LOOP", 19) == 0) { *valp = IPV6_MULTICAST_LOOP; return 0; }
05853 #endif
05854         return -1;
05855 
05856       default:
05857         return -1;
05858     }
05859 }
05860 
05861 #endif
05862 
05863 int
05864 rsock_tcp_optname_to_int(const char *str, long len, int *valp)
05865 {
05866     switch (len) {
05867       case 4:
05868 #ifdef TCP_CORK
05869         if (memcmp(str, "CORK", 4) == 0) { *valp = TCP_CORK; return 0; }
05870 #endif
05871 #ifdef TCP_INFO
05872         if (memcmp(str, "INFO", 4) == 0) { *valp = TCP_INFO; return 0; }
05873 #endif
05874         return -1;
05875 
05876       case 5:
05877 #ifdef TCP_NOOPT
05878         if (memcmp(str, "NOOPT", 5) == 0) { *valp = TCP_NOOPT; return 0; }
05879 #endif
05880         return -1;
05881 
05882       case 6:
05883 #ifdef TCP_MAXSEG
05884         if (memcmp(str, "MAXSEG", 6) == 0) { *valp = TCP_MAXSEG; return 0; }
05885 #endif
05886 #ifdef TCP_MD5SIG
05887         if (memcmp(str, "MD5SIG", 6) == 0) { *valp = TCP_MD5SIG; return 0; }
05888 #endif
05889 #ifdef TCP_NOPUSH
05890         if (memcmp(str, "NOPUSH", 6) == 0) { *valp = TCP_NOPUSH; return 0; }
05891 #endif
05892 #ifdef TCP_SYNCNT
05893         if (memcmp(str, "SYNCNT", 6) == 0) { *valp = TCP_SYNCNT; return 0; }
05894 #endif
05895         return -1;
05896 
05897       case 7:
05898 #ifdef TCP_NODELAY
05899         if (memcmp(str, "NODELAY", 7) == 0) { *valp = TCP_NODELAY; return 0; }
05900 #endif
05901 #ifdef TCP_KEEPCNT
05902         if (memcmp(str, "KEEPCNT", 7) == 0) { *valp = TCP_KEEPCNT; return 0; }
05903 #endif
05904 #ifdef TCP_LINGER2
05905         if (memcmp(str, "LINGER2", 7) == 0) { *valp = TCP_LINGER2; return 0; }
05906 #endif
05907         return -1;
05908 
05909       case 8:
05910 #ifdef TCP_CORK
05911         if (memcmp(str, "TCP_CORK", 8) == 0) { *valp = TCP_CORK; return 0; }
05912 #endif
05913 #ifdef TCP_INFO
05914         if (memcmp(str, "TCP_INFO", 8) == 0) { *valp = TCP_INFO; return 0; }
05915 #endif
05916 #ifdef TCP_KEEPIDLE
05917         if (memcmp(str, "KEEPIDLE", 8) == 0) { *valp = TCP_KEEPIDLE; return 0; }
05918 #endif
05919 #ifdef TCP_QUICKACK
05920         if (memcmp(str, "QUICKACK", 8) == 0) { *valp = TCP_QUICKACK; return 0; }
05921 #endif
05922 #ifdef TCP_FASTOPEN
05923         if (memcmp(str, "FASTOPEN", 8) == 0) { *valp = TCP_FASTOPEN; return 0; }
05924 #endif
05925         return -1;
05926 
05927       case 9:
05928 #ifdef TCP_NOOPT
05929         if (memcmp(str, "TCP_NOOPT", 9) == 0) { *valp = TCP_NOOPT; return 0; }
05930 #endif
05931 #ifdef TCP_KEEPINTVL
05932         if (memcmp(str, "KEEPINTVL", 9) == 0) { *valp = TCP_KEEPINTVL; return 0; }
05933 #endif
05934         return -1;
05935 
05936       case 10:
05937 #ifdef TCP_MAXSEG
05938         if (memcmp(str, "TCP_MAXSEG", 10) == 0) { *valp = TCP_MAXSEG; return 0; }
05939 #endif
05940 #ifdef TCP_MD5SIG
05941         if (memcmp(str, "TCP_MD5SIG", 10) == 0) { *valp = TCP_MD5SIG; return 0; }
05942 #endif
05943 #ifdef TCP_NOPUSH
05944         if (memcmp(str, "TCP_NOPUSH", 10) == 0) { *valp = TCP_NOPUSH; return 0; }
05945 #endif
05946 #ifdef TCP_SYNCNT
05947         if (memcmp(str, "TCP_SYNCNT", 10) == 0) { *valp = TCP_SYNCNT; return 0; }
05948 #endif
05949         return -1;
05950 
05951       case 11:
05952 #ifdef TCP_NODELAY
05953         if (memcmp(str, "TCP_NODELAY", 11) == 0) { *valp = TCP_NODELAY; return 0; }
05954 #endif
05955 #ifdef TCP_KEEPCNT
05956         if (memcmp(str, "TCP_KEEPCNT", 11) == 0) { *valp = TCP_KEEPCNT; return 0; }
05957 #endif
05958 #ifdef TCP_LINGER2
05959         if (memcmp(str, "TCP_LINGER2", 11) == 0) { *valp = TCP_LINGER2; return 0; }
05960 #endif
05961         return -1;
05962 
05963       case 12:
05964 #ifdef TCP_KEEPIDLE
05965         if (memcmp(str, "TCP_KEEPIDLE", 12) == 0) { *valp = TCP_KEEPIDLE; return 0; }
05966 #endif
05967 #ifdef TCP_QUICKACK
05968         if (memcmp(str, "TCP_QUICKACK", 12) == 0) { *valp = TCP_QUICKACK; return 0; }
05969 #endif
05970 #ifdef TCP_FASTOPEN
05971         if (memcmp(str, "TCP_FASTOPEN", 12) == 0) { *valp = TCP_FASTOPEN; return 0; }
05972 #endif
05973 #ifdef TCP_DEFER_ACCEPT
05974         if (memcmp(str, "DEFER_ACCEPT", 12) == 0) { *valp = TCP_DEFER_ACCEPT; return 0; }
05975 #endif
05976 #ifdef TCP_WINDOW_CLAMP
05977         if (memcmp(str, "WINDOW_CLAMP", 12) == 0) { *valp = TCP_WINDOW_CLAMP; return 0; }
05978 #endif
05979         return -1;
05980 
05981       case 13:
05982 #ifdef TCP_KEEPINTVL
05983         if (memcmp(str, "TCP_KEEPINTVL", 13) == 0) { *valp = TCP_KEEPINTVL; return 0; }
05984 #endif
05985         return -1;
05986 
05987       case 16:
05988 #ifdef TCP_DEFER_ACCEPT
05989         if (memcmp(str, "TCP_DEFER_ACCEPT", 16) == 0) { *valp = TCP_DEFER_ACCEPT; return 0; }
05990 #endif
05991 #ifdef TCP_WINDOW_CLAMP
05992         if (memcmp(str, "TCP_WINDOW_CLAMP", 16) == 0) { *valp = TCP_WINDOW_CLAMP; return 0; }
05993 #endif
05994         return -1;
05995 
05996       default:
05997         return -1;
05998     }
05999 }
06000 
06001 
06002 int
06003 rsock_udp_optname_to_int(const char *str, long len, int *valp)
06004 {
06005     switch (len) {
06006       case 4:
06007 #ifdef UDP_CORK
06008         if (memcmp(str, "CORK", 4) == 0) { *valp = UDP_CORK; return 0; }
06009 #endif
06010         return -1;
06011 
06012       case 8:
06013 #ifdef UDP_CORK
06014         if (memcmp(str, "UDP_CORK", 8) == 0) { *valp = UDP_CORK; return 0; }
06015 #endif
06016         return -1;
06017 
06018       default:
06019         return -1;
06020     }
06021 }
06022 
06023 
06024 int
06025 rsock_shutdown_how_to_int(const char *str, long len, int *valp)
06026 {
06027     switch (len) {
06028       case 2:
06029 #ifdef SHUT_RD
06030         if (memcmp(str, "RD", 2) == 0) { *valp = SHUT_RD; return 0; }
06031 #endif
06032 #ifdef SHUT_WR
06033         if (memcmp(str, "WR", 2) == 0) { *valp = SHUT_WR; return 0; }
06034 #endif
06035         return -1;
06036 
06037       case 4:
06038 #ifdef SHUT_RDWR
06039         if (memcmp(str, "RDWR", 4) == 0) { *valp = SHUT_RDWR; return 0; }
06040 #endif
06041         return -1;
06042 
06043       case 7:
06044 #ifdef SHUT_RD
06045         if (memcmp(str, "SHUT_RD", 7) == 0) { *valp = SHUT_RD; return 0; }
06046 #endif
06047 #ifdef SHUT_WR
06048         if (memcmp(str, "SHUT_WR", 7) == 0) { *valp = SHUT_WR; return 0; }
06049 #endif
06050         return -1;
06051 
06052       case 9:
06053 #ifdef SHUT_RDWR
06054         if (memcmp(str, "SHUT_RDWR", 9) == 0) { *valp = SHUT_RDWR; return 0; }
06055 #endif
06056         return -1;
06057 
06058       default:
06059         return -1;
06060     }
06061 }
06062 
06063 
06064 int
06065 rsock_scm_optname_to_int(const char *str, long len, int *valp)
06066 {
06067     switch (len) {
06068       case 5:
06069 #ifdef SCM_CREDS
06070         if (memcmp(str, "CREDS", 5) == 0) { *valp = SCM_CREDS; return 0; }
06071 #endif
06072 #ifdef SCM_UCRED
06073         if (memcmp(str, "UCRED", 5) == 0) { *valp = SCM_UCRED; return 0; }
06074 #endif
06075         return -1;
06076 
06077       case 6:
06078 #ifdef SCM_RIGHTS
06079         if (memcmp(str, "RIGHTS", 6) == 0) { *valp = SCM_RIGHTS; return 0; }
06080 #endif
06081         return -1;
06082 
06083       case 7:
06084 #ifdef SCM_BINTIME
06085         if (memcmp(str, "BINTIME", 7) == 0) { *valp = SCM_BINTIME; return 0; }
06086 #endif
06087         return -1;
06088 
06089       case 9:
06090 #ifdef SCM_CREDS
06091         if (memcmp(str, "SCM_CREDS", 9) == 0) { *valp = SCM_CREDS; return 0; }
06092 #endif
06093 #ifdef SCM_UCRED
06094         if (memcmp(str, "SCM_UCRED", 9) == 0) { *valp = SCM_UCRED; return 0; }
06095 #endif
06096 #ifdef SCM_TIMESTAMP
06097         if (memcmp(str, "TIMESTAMP", 9) == 0) { *valp = SCM_TIMESTAMP; return 0; }
06098 #endif
06099         return -1;
06100 
06101       case 10:
06102 #ifdef SCM_RIGHTS
06103         if (memcmp(str, "SCM_RIGHTS", 10) == 0) { *valp = SCM_RIGHTS; return 0; }
06104 #endif
06105         return -1;
06106 
06107       case 11:
06108 #ifdef SCM_BINTIME
06109         if (memcmp(str, "SCM_BINTIME", 11) == 0) { *valp = SCM_BINTIME; return 0; }
06110 #endif
06111 #ifdef SCM_TIMESTAMPNS
06112         if (memcmp(str, "TIMESTAMPNS", 11) == 0) { *valp = SCM_TIMESTAMPNS; return 0; }
06113 #endif
06114 #ifdef SCM_CREDENTIALS
06115         if (memcmp(str, "CREDENTIALS", 11) == 0) { *valp = SCM_CREDENTIALS; return 0; }
06116 #endif
06117         return -1;
06118 
06119       case 13:
06120 #ifdef SCM_TIMESTAMP
06121         if (memcmp(str, "SCM_TIMESTAMP", 13) == 0) { *valp = SCM_TIMESTAMP; return 0; }
06122 #endif
06123         return -1;
06124 
06125       case 15:
06126 #ifdef SCM_TIMESTAMPNS
06127         if (memcmp(str, "SCM_TIMESTAMPNS", 15) == 0) { *valp = SCM_TIMESTAMPNS; return 0; }
06128 #endif
06129 #ifdef SCM_CREDENTIALS
06130         if (memcmp(str, "SCM_CREDENTIALS", 15) == 0) { *valp = SCM_CREDENTIALS; return 0; }
06131 #endif
06132         return -1;
06133 
06134       default:
06135         return -1;
06136     }
06137 }
06138 
06139 
06140 
06141 ID
06142 rsock_intern_family(int val)
06143 {
06144     st_data_t name;
06145     if (st_lookup(rsock_intern_family_hash, (st_data_t)val, &name))
06146         return (ID)name;
06147     return 0;
06148 }
06149 
06150 ID
06151 rsock_intern_family_noprefix(int val)
06152 {
06153     st_data_t name;
06154     if (st_lookup(rsock_intern_family_noprefix_hash, (st_data_t)val, &name))
06155         return (ID)name;
06156     return 0;
06157 }
06158 
06159 ID
06160 rsock_intern_protocol_family(int val)
06161 {
06162     st_data_t name;
06163     if (st_lookup(rsock_intern_protocol_family_hash, (st_data_t)val, &name))
06164         return (ID)name;
06165     return 0;
06166 }
06167 
06168 ID
06169 rsock_intern_socktype(int val)
06170 {
06171     st_data_t name;
06172     if (st_lookup(rsock_intern_socktype_hash, (st_data_t)val, &name))
06173         return (ID)name;
06174     return 0;
06175 }
06176 
06177 ID
06178 rsock_intern_ipproto(int val)
06179 {
06180     st_data_t name;
06181     if (st_lookup(rsock_intern_ipproto_hash, (st_data_t)val, &name))
06182         return (ID)name;
06183     return 0;
06184 }
06185 
06186 ID
06187 rsock_intern_iplevel(int val)
06188 {
06189     st_data_t name;
06190     if (st_lookup(rsock_intern_iplevel_hash, (st_data_t)val, &name))
06191         return (ID)name;
06192     return 0;
06193 }
06194 
06195 ID
06196 rsock_intern_so_optname(int val)
06197 {
06198     st_data_t name;
06199     if (st_lookup(rsock_intern_so_optname_hash, (st_data_t)val, &name))
06200         return (ID)name;
06201     return 0;
06202 }
06203 
06204 ID
06205 rsock_intern_ip_optname(int val)
06206 {
06207     st_data_t name;
06208     if (st_lookup(rsock_intern_ip_optname_hash, (st_data_t)val, &name))
06209         return (ID)name;
06210     return 0;
06211 }
06212 
06213 ID
06214 rsock_intern_ipv6_optname(int val)
06215 {
06216     st_data_t name;
06217     if (st_lookup(rsock_intern_ipv6_optname_hash, (st_data_t)val, &name))
06218         return (ID)name;
06219     return 0;
06220 }
06221 
06222 ID
06223 rsock_intern_tcp_optname(int val)
06224 {
06225     st_data_t name;
06226     if (st_lookup(rsock_intern_tcp_optname_hash, (st_data_t)val, &name))
06227         return (ID)name;
06228     return 0;
06229 }
06230 
06231 ID
06232 rsock_intern_udp_optname(int val)
06233 {
06234     st_data_t name;
06235     if (st_lookup(rsock_intern_udp_optname_hash, (st_data_t)val, &name))
06236         return (ID)name;
06237     return 0;
06238 }
06239 
06240 ID
06241 rsock_intern_scm_optname(int val)
06242 {
06243     st_data_t name;
06244     if (st_lookup(rsock_intern_scm_optname_hash, (st_data_t)val, &name))
06245         return (ID)name;
06246     return 0;
06247 }
06248 
06249 ID
06250 rsock_intern_local_optname(int val)
06251 {
06252     st_data_t name;
06253     if (st_lookup(rsock_intern_local_optname_hash, (st_data_t)val, &name))
06254         return (ID)name;
06255     return 0;
06256 }
06257 
06258 
06259 

Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7