From: Katsuyuki Komatsu Date: 1999-05-09T14:00:48+09:00 Subject: [ruby-dev:6744] Socket.getaddrinfo 小松です。 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