diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-02-24 13:44:08 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-02-24 13:44:08 +0000 |
commit | aba5263254440c57ec11ccb398f77693129f0e88 (patch) | |
tree | 97ab64b18fd07ae06441ef790a241b28a1e26173 /lib/resolv.rb | |
parent | b2623d9bb894656cc88c7207fdee210876055aae (diff) | |
download | ruby-aba5263254440c57ec11ccb398f77693129f0e88.tar.gz |
* lib/resolv.rb: fix [ruby-core:28320] reported by Paul Clegg.
(Resolv::DNS::Requester#request): raise ResolvTimeout
consistently for timeout.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/resolv.rb')
-rw-r--r-- | lib/resolv.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/resolv.rb b/lib/resolv.rb index ffced98052..5a6032c604 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -628,8 +628,12 @@ class Resolv def request(sender, tout) timelimit = Time.now + tout sender.send - while (now = Time.now) < timelimit + while true + now = Time.now timeout = timelimit - now + if timeout <= 0 + raise ResolvTimeout + end select_result = IO.select(@socks, nil, nil, timeout) if !select_result raise ResolvTimeout |