From: Teruki Shigitani Date: 2002-12-26T15:06:51+09:00 Subject: [ruby-dev:19200] replace-resolv.rb 使用で内部ループ 鴫谷と申します。 環境は WindowsXP SP1 + cygwin 1.13.2 + Ruby 1.8.0 preview1 です。 resolv.rb には、 http://www15.cds.ne.jp/~shigi/tdiary/?date=20021226 の処置を施しています。 この状態で、 require 'resolv-replace.rb' とした後に p Resolv.getaddress('www.ruby-lang.org') とすると、内部でループしてしまうようです。 素の resolv.rb + replace-resolv.rb での動作を確認できないですが、 多分同じ現象が発生すると信じて、こんな感じのパッチが必要と思います。 ただ、UDP に対してはこれでいいと思うのですが、TCP に対しても 何かしなければいけないかどうか不明です。 --- resolv-replace.rb.orig 2002-12-26 14:51:10.000000000 +0900 +++ resolv-replace.rb 2002-12-26 14:51:57.000000000 +0900 @@ -39,3 +39,24 @@ original_resolv_send(mesg, flags, *rest) end end + +class Resolv + class DNS + class Requester + class UnconnectedUDP + class Sender + def send + @sock.original_resolv_send(@msg, 0, @host, @port) + end + end + end + class ConnectedUDP + class Sender + def send + @sock.original_resolv_send(@msg, 0) + end + end + end + end + end +end