<sys/socket.h> is included prior to <netinet/in.h>, and it is not
possible for <netinet/in.h> to blindly include <sys/socket.h>.
Why not? POSIX seems to anticipate this:
Inclusion of the <netinet/in.h> header may also make visible all symbols
from <inttypes.h> and <sys/socket.h>.
i'm aware of that line, but that does not really meet my observations.
- freebsd do define sockaddr_storage in <netinet/in.h.h> and
<sys/socket.h>, with #define to avoid duplicate definitions.
- opensolaris and other *BSD do not include <sys/socket.h> from
<netinet/in.h>, nor define sockaddr_storage in <netinet/in.h>.
if the above POSIX line suggests inclusion of <sys/socket.h> from
<netinet/in.h>, why freebsd did not do that and defined sockaddr_storage
in two places? my guess is that it was a too big change to be
accepted (way too much interaction with existing code).
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/in.h.diff?r1=1.99;r2=1.100
itojun
_______________________________________________
Ietf mailing list
Ietf(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/ietf