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