Ruby
2.0.0p247(2013-06-27revision41674)
|
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