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 | 15548a5a243d0ab989df17fcf881e2522ef69e3f (patch) | |
| tree | 01943c9617d735ca26219990272b1da97e2d6595 | |
| parent | 25188b7eaea8aba2ad6a349226834c918bd85680 (diff) | |
* 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/branches/ruby_1_8@26750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | lib/resolv.rb | 6 |
2 files changed, 11 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Wed Feb 24 22:39:15 2010 Tanaka Akira <akr@fsij.org> + + * lib/resolv.rb: fix [ruby-core:28320] reported by Paul Clegg. + (Resolv::DNS::Requester#request): raise ResolvTimeout consistently + for timeout. + Wed Feb 24 00:40:58 2010 Akinori MUSHA <knu@iDaemons.org> * parse.y: Revert r26609, r26160, r25658 and r24695. The loose diff --git a/lib/resolv.rb b/lib/resolv.rb index 4af1ff99b2..a0e056b5d3 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -621,8 +621,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 |
