From: matz@... (Yukihiro Matsumoto) Date: 2002-03-25T23:35:17+09:00 Subject: [ruby-dev:16589] Re: [ruby-cvs] ruby/ext/socket: * ext/socket/socket.c (bsock_do_not_rev_lookup_set): should not be In message "[ruby-dev:16586] Re: [ruby-cvs] ruby/ext/socket: * ext/socket/socket.c (bsock_do_not_rev_lookup_set): should not be" on 02/03/25, WATANABE Hirofumi writes: | |わたなべです。 | |matz writes: | |: * ext/socket/socket.c (tcp_s_gethostbyname): refactored. |: |: * ext/socket/socket.c (sock_s_gethostbyname): ditto. | |どうもこの変更で |% ruby -v -rsocket -e 'TCPSocket.new("localhost", 80)' |ruby 1.7.2 (2002-03-25) [i386-linux] |-e:1:in `initialize': getaddrinfo: Servname not supported for ai_socktype (SocketError) | from -e:1:in `new' | from -e:1 |となってしまいます。 |ext/socket/get*.cを使えばokなので、今使ってるglibc 2.2.2の |getaddrinfo()の出来が悪いのかもしれません。 socket.cのsock_addrinfo()で hints.ai_socktype = SOCK_STREAM; を指定してやればよさそうです。