From: Sam Roberts Date: 2005-02-26T12:08:30+09:00 Subject: Re: Unknown OS X 10.2 Socket constants Ping. Maybe all the AF_ and PF_ are too many? Please accept at least the socket options, SO_. Thanks, Sam Quoting sroberts@uniserve.com, on Thu, Feb 10, 2005 at 10:49:37AM +0900: > Quoteing sroberts@uniserve.com, on Wed, Feb 09, 2005 at 11:45:50PM +0900: > > Quoteing matz@ruby-lang.org, on Tue, Feb 08, 2005 at 01:21:18PM +0900: > > > |I need SO_REUSEPORT, but there seems to be a bunch of unsupported socket > > > |options on OS X. Shall I post a patch for the whole lot? > > > > > > Yes, preferably to the ruby-core list. > > Thanks for putting in SO_REUSEPORT. > > > Here are all the OS X 10.2 consts from sys/socket.h that it looks like > > ruby doesn't know about. > > In new and improved patch format, with the AF_ and PF_s put close > together. > > Cheers, > Sam > > > Index: socket.c > =================================================================== > RCS file: /src/ruby/ext/socket/socket.c,v > retrieving revision 1.108.2.21 > diff -u -r1.108.2.21 socket.c > --- socket.c 8 Feb 2005 23:12:30 -0000 1.108.2.21 > +++ socket.c 10 Feb 2005 01:47:20 -0000 > @@ -2604,6 +2604,195 @@ > #ifdef INET6 > sock_define_const("PF_INET6", PF_INET6); > #endif > +#ifdef AF_LOCAL > + sock_define_const("AF_LOCAL", AF_LOCAL); > +#endif > +#ifdef PF_LOCAL > + sock_define_const("PF_LOCAL", PF_LOCAL); > +#endif > +#ifdef AF_IMPLINK > + sock_define_const("AF_IMPLINK", AF_IMPLINK); > +#endif > +#ifdef PF_IMPLINK > + sock_define_const("PF_IMPLINK", PF_IMPLINK); > +#endif > +#ifdef AF_PUP > + sock_define_const("AF_PUP", AF_PUP); > +#endif > +#ifdef PF_PUP > + sock_define_const("PF_PUP", PF_PUP); > +#endif > +#ifdef AF_CHAOS > + sock_define_const("AF_CHAOS", AF_CHAOS); > +#endif > +#ifdef PF_CHAOS > + sock_define_const("PF_CHAOS", PF_CHAOS); > +#endif > +#ifdef AF_NS > + sock_define_const("AF_NS", AF_NS); > +#endif > +#ifdef PF_NS > + sock_define_const("PF_NS", PF_NS); > +#endif > +#ifdef AF_ISO > + sock_define_const("AF_ISO", AF_ISO); > +#endif > +#ifdef PF_ISO > + sock_define_const("PF_ISO", PF_ISO); > +#endif > +#ifdef AF_OSI > + sock_define_const("AF_OSI", AF_OSI); > +#endif > +#ifdef PF_OSI > + sock_define_const("PF_OSI", PF_OSI); > +#endif > +#ifdef AF_ECMA > + sock_define_const("AF_ECMA", AF_ECMA); > +#endif > +#ifdef PF_ECMA > + sock_define_const("PF_ECMA", PF_ECMA); > +#endif > +#ifdef AF_DATAKIT > + sock_define_const("AF_DATAKIT", AF_DATAKIT); > +#endif > +#ifdef PF_DATAKIT > + sock_define_const("PF_DATAKIT", PF_DATAKIT); > +#endif > +#ifdef AF_CCITT > + sock_define_const("AF_CCITT", AF_CCITT); > +#endif > +#ifdef PF_CCITT > + sock_define_const("PF_CCITT", PF_CCITT); > +#endif > +#ifdef AF_SNA > + sock_define_const("AF_SNA", AF_SNA); > +#endif > +#ifdef PF_SNA > + sock_define_const("PF_SNA", PF_SNA); > +#endif > +#ifdef AF_DEC > + sock_define_const("AF_DEC", AF_DEC); > +#endif > +#ifdef PF_DEC > + sock_define_const("PF_DEC", PF_DEC); > +#endif > +#ifdef AF_DLI > + sock_define_const("AF_DLI", AF_DLI); > +#endif > +#ifdef PF_DLI > + sock_define_const("PF_DLI", PF_DLI); > +#endif > +#ifdef AF_LAT > + sock_define_const("AF_LAT", AF_LAT); > +#endif > +#ifdef PF_LAT > + sock_define_const("PF_LAT", PF_LAT); > +#endif > +#ifdef AF_HYLINK > + sock_define_const("AF_HYLINK", AF_HYLINK); > +#endif > +#ifdef PF_HYLINK > + sock_define_const("PF_HYLINK", PF_HYLINK); > +#endif > +#ifdef AF_ROUTE > + sock_define_const("AF_ROUTE", AF_ROUTE); > +#endif > +#ifdef PF_ROUTE > + sock_define_const("PF_ROUTE", PF_ROUTE); > +#endif > +#ifdef AF_LINK > + sock_define_const("AF_LINK", AF_LINK); > +#endif > +#ifdef PF_LINK > + sock_define_const("PF_LINK", PF_LINK); > +#endif > +#ifdef AF_COIP > + sock_define_const("AF_COIP", AF_COIP); > +#endif > +#ifdef PF_COIP > + sock_define_const("PF_COIP", PF_COIP); > +#endif > +#ifdef AF_CNT > + sock_define_const("AF_CNT", AF_CNT); > +#endif > +#ifdef PF_CNT > + sock_define_const("PF_CNT", PF_CNT); > +#endif > +#ifdef AF_SIP > + sock_define_const("AF_SIP", AF_SIP); > +#endif > +#ifdef PF_SIP > + sock_define_const("PF_SIP", PF_SIP); > +#endif > +#ifdef AF_NDRV > + sock_define_const("AF_NDRV", AF_NDRV); > +#endif > +#ifdef PF_NDRV > + sock_define_const("PF_NDRV", PF_NDRV); > +#endif > +#ifdef AF_ISDN > + sock_define_const("AF_ISDN", AF_ISDN); > +#endif > +#ifdef PF_ISDN > + sock_define_const("PF_ISDN", PF_ISDN); > +#endif > +#ifdef AF_NATM > + sock_define_const("AF_NATM", AF_NATM); > +#endif > +#ifdef PF_NATM > + sock_define_const("PF_NATM", PF_NATM); > +#endif > +#ifdef AF_SYSTEM > + sock_define_const("AF_SYSTEM", AF_SYSTEM); > +#endif > +#ifdef PF_SYSTEM > + sock_define_const("PF_SYSTEM", PF_SYSTEM); > +#endif > +#ifdef AF_NETBIOS > + sock_define_const("AF_NETBIOS", AF_NETBIOS); > +#endif > +#ifdef PF_NETBIOS > + sock_define_const("PF_NETBIOS", PF_NETBIOS); > +#endif > +#ifdef AF_PPP > + sock_define_const("AF_PPP", AF_PPP); > +#endif > +#ifdef PF_PPP > + sock_define_const("PF_PPP", PF_PPP); > +#endif > +#ifdef AF_ATM > + sock_define_const("AF_ATM", AF_ATM); > +#endif > +#ifdef PF_ATM > + sock_define_const("PF_ATM", PF_ATM); > +#endif > +#ifdef AF_NETGRAPH > + sock_define_const("AF_NETGRAPH", AF_NETGRAPH); > +#endif > +#ifdef PF_NETGRAPH > + sock_define_const("PF_NETGRAPH", PF_NETGRAPH); > +#endif > +#ifdef AF_MAX > + sock_define_const("AF_MAX", AF_MAX); > +#endif > +#ifdef PF_MAX > + sock_define_const("PF_MAX", PF_MAX); > +#endif > +#ifdef AF_E164 > + sock_define_const("AF_E164", AF_E164); > +#endif > +#ifdef PF_XTP > + sock_define_const("PF_XTP", PF_XTP); > +#endif > +#ifdef PF_RTIP > + sock_define_const("PF_RTIP", PF_RTIP); > +#endif > +#ifdef PF_PIP > + sock_define_const("PF_PIP", PF_PIP); > +#endif > +#ifdef PF_KEY > + sock_define_const("PF_KEY", PF_KEY); > +#endif > > sock_define_const("MSG_OOB", MSG_OOB); > #ifdef MSG_PEEK > @@ -2612,6 +2801,42 @@ > #ifdef MSG_DONTROUTE > sock_define_const("MSG_DONTROUTE", MSG_DONTROUTE); > #endif > +#ifdef MSG_EOR > + sock_define_const("MSG_EOR", MSG_EOR); > +#endif > +#ifdef MSG_TRUNC > + sock_define_const("MSG_TRUNC", MSG_TRUNC); > +#endif > +#ifdef MSG_CTRUNC > + sock_define_const("MSG_CTRUNC", MSG_CTRUNC); > +#endif > +#ifdef MSG_WAITALL > + sock_define_const("MSG_WAITALL", MSG_WAITALL); > +#endif > +#ifdef MSG_DONTWAIT > + sock_define_const("MSG_DONTWAIT", MSG_DONTWAIT); > +#endif > +#ifdef MSG_EOF > + sock_define_const("MSG_EOF", MSG_EOF); > +#endif > +#ifdef MSG_FLUSH > + sock_define_const("MSG_FLUSH", MSG_FLUSH); > +#endif > +#ifdef MSG_HOLD > + sock_define_const("MSG_HOLD", MSG_HOLD); > +#endif > +#ifdef MSG_SEND > + sock_define_const("MSG_SEND", MSG_SEND); > +#endif > +#ifdef MSG_HAVEMORE > + sock_define_const("MSG_HAVEMORE", MSG_HAVEMORE); > +#endif > +#ifdef MSG_RCVMORE > + sock_define_const("MSG_RCVMORE", MSG_RCVMORE); > +#endif > +#ifdef MSG_COMPAT > + sock_define_const("MSG_COMPAT", MSG_COMPAT); > +#endif > > sock_define_const("SOL_SOCKET", SOL_SOCKET); > #ifdef SOL_IP > @@ -2849,6 +3074,33 @@ > #endif > #ifdef SO_SNDTIMEO > sock_define_const("SO_SNDTIMEO", SO_SNDTIMEO); > +#endif > +#ifdef SO_ACCEPTCONN > + sock_define_const("SO_ACCEPTCONN", SO_ACCEPTCONN); > +#endif > +#ifdef SO_USELOOPBACK > + sock_define_const("SO_USELOOPBACK", SO_USELOOPBACK); > +#endif > +#ifdef SO_ACCEPTFILTER > + sock_define_const("SO_ACCEPTFILTER", SO_ACCEPTFILTER); > +#endif > +#ifdef SO_DONTTRUNC > + sock_define_const("SO_DONTTRUNC", SO_DONTTRUNC); > +#endif > +#ifdef SO_WANTMORE > + sock_define_const("SO_WANTMORE", SO_WANTMORE); > +#endif > +#ifdef SO_WANTOOBFLAG > + sock_define_const("SO_WANTOOBFLAG", SO_WANTOOBFLAG); > +#endif > +#ifdef SO_NREAD > + sock_define_const("SO_NREAD", SO_NREAD); > +#endif > +#ifdef SO_NKE > + sock_define_const("SO_NKE", SO_NKE); > +#endif > +#ifdef SO_NOSIGPIPE > + sock_define_const("SO_NOSIGPIPE", SO_NOSIGPIPE); > #endif > > #ifdef SO_SECURITY_AUTHENTICATION >