>|+ #ifndef INET6
>|+ # define sockaddr_storage	sockaddr
>|+ # define ss_family		sa_family
>|+ # define ss_len			sa_len
>|+ #endif
>このss_familyとss_lenの#defineは、extconf.rbの、
>    $CFLAGS = "-Dss_family=__ss_family -Dss_len=__ss_len"
>と衝突しますよね。
>extconf.rbかsocket.cかどちらかに定義を統一した方がいいと思います。

	もともとは、addrconf.hに

struct sockaddr_storage {
	u_int8_t __ss_len;
	u_int8_t __ss_family;
	u_int8_t __ss_body[126];
};

	という定義をいれてあったので、これなら衝突しないんですが。
	もちろん、sys/socket.hで既に定義されているかどうかのチェックは
	必要です。

itojun