Bug #987
closedSocket.getaddrinfo("www.ruby-lang.org", 80) returns only UDP information
Description
=begin
まつもと ゆきひろです
In message "Re: [ruby-dev:37674] [Bug:trunk] Socket.getaddrinfo("www.ruby-lang.org", 80) returns only UDP information"
on Fri, 2 Jan 2009 00:44:13 +0900, Tanaka Akira akr@fsij.org writes:
|1.9 と 1.8 で Socket.getaddrinfo("www.ruby-lang.org", 80) の返り値が違います。
|以下のように、1.9 では 1要素の配列が返り、1.8 では 2要素の配列が返ります。
|www.ruby-lang.org:80 の情報を要求して TCP が出てこないのはよ
|ろしくないんじゃないでしょうか。
|
|調べてみると、r20387 の
|
|Fri Nov 28 18:31:21 2008 Yukihiro Matsumoto matz@ruby-lang.org
|
| * ext/socket/socket.c (sock_s_getaddrinfo): refactored to remove
| code duplication regarding getaddrinfo.
|
|という変更が原因なようなのですが、挙動が変わってしまっている
|ので、リファクタリングとしては失敗ではないでしょうか。
おっしゃる通りだと思います。が、先程私の手元で確認したところ
Ruby 1.8と1.9で同じ結果になりました
[["AF_INET", 80, "carbon.ruby-lang.org", "221.186.184.68", 2, 1, 6],
["AF_INET", 80, "carbon.ruby-lang.org", "221.186.184.68", 2, 2, 17],
["AF_INET", 80, "carbon.ruby-lang.org", "221.186.184.68", 2, 3, 0]]
実行したのは
ruby 1.9.1 (2009-01-06 patchlevel-5000 trunk 21348) [i686-linux]
ですが、これは
- 環境によって異なる
- 誰かが直してくださった
のいずれかでしょうか。最近socket.cに手を入れていただいている
のは田中さんなのでみずから直してくださったのでしょうか。私と
田中さんでは今回は同じi686-linuxですから、環境依存の可能性は
低いのですが、ライブラリその他のバージョンの違いなどもあるか
もしれません。
まつもと ゆきひろ /:|)
=end
Updated by matz (Yukihiro Matsumoto) about 16 years ago
- Status changed from Open to Closed
=begin
fixed in r21278.
=end