Re: Unknown OS X 10.2 Socket constants
From:
Sam Roberts <sroberts@...>
Date:
2005-02-26 03:08:30 UTC
List:
ruby-core #4491
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
>