From aba5263254440c57ec11ccb398f77693129f0e88 Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 24 Feb 2010 13:44:08 +0000 Subject: * 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 --- ChangeLog | 6 ++++++ lib/resolv.rb | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 0b9679afa3..86fa757b19 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Feb 24 22:39:15 2010 Tanaka Akira + + * lib/resolv.rb: fix [ruby-core:28320] reported by Paul Clegg. + (Resolv::DNS::Requester#request): raise ResolvTimeout + consistently for timeout. + Wed Feb 24 14:38:16 2010 Eric Hodel * lib/rubygems/indexer: Removed obsolete files. 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 -- cgit v1.2.3