On Fri, 2006-05-26 at 14:44 -0500, Albert Chin wrote:
Why not just use IPPROTO_IP and IPPROTO_IPV6? SOL_IP is Linux-specific. HP-UX, Solaris, AIX, IRIX, and Tru64 UNIX don't have it. However, all have IPPROTO_IP and possibly IPPROTO_IPV6.
As I see those are at least partially broken. setsockopt() is defined to use a 'level' argument, and there's a protocol independent level, which is called SOL_SOCKET, this macro is defined on those platforms as well. I don't think it is consistent to use SOL_SOCKET for socket level operations, and IPPROTO_* for non-socket operations. Not to mention that IPPROTO_IPV6 as a name suggests the IPv6 is a subprotocol of IP itself, which is IPv4. This is certainly not true. Linux supports the IPX protocol through the same socket interface, in this case I would use SOL_IPX So as I see those are the platforms that lack proper naming for the setsockopt level argument. :) -- Bazsi