小松です。

ruby-1.3.3-990507で、IPv6のサンプルのdualstack-httpd.rbが、
    res = Socket.getaddrinfo(nil, port, nil, Socket::SOCK_STREAM, ...)
の所で"ai_socktype not supported."で失敗します。
ext/socket/socket.cのsock_s_getaddrinfo()でFIX2INT()が必要だと
思います。

diff -r -u ruby-1.3.3-990507.orig/ext/socket/socket.c ruby-1.3.3-990507/ext/socket/socket.c
--- ruby-1.3.3-990507.orig/ext/socket/socket.c	Fri May  7 17:24:36 1999
+++ ruby-1.3.3-990507/ext/socket/socket.c	Sun May  9 13:04:01 1999
@@ -1672,13 +1672,13 @@
 	hints.ai_family = PF_UNSPEC;
     }
     if (!NIL_P(socktype) && rb_obj_is_kind_of(socktype, rb_cInteger)) {
-	hints.ai_socktype = socktype;
+	hints.ai_socktype = FIX2INT(socktype);
     }
     if (!NIL_P(protocol) && rb_obj_is_kind_of(protocol, rb_cInteger)) {
-	hints.ai_protocol = protocol;
+	hints.ai_protocol = FIX2INT(protocol);
     }
     if (!NIL_P(flags) && rb_obj_is_kind_of(flags, rb_cInteger)) {
-	hints.ai_flags = flags;
+	hints.ai_flags = FIX2INT(flags);
     }
     error = getaddrinfo(hptr, pptr, &hints, &res);
     if (error) {

--
小松克行 (株)サリオンシステムズリサーチ ソフトウェア開発部
Katsuyuki Komatsu <komatsu / sarion.co.jp>