summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-01-27 07:35:20 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-01-27 07:35:20 +0000
commit50e48bc3aedc8ebd202de6737e5b161fe40d454d (patch)
tree9a9bfd8c4b04b1d0757654b3d934f46ad016d7e4 /lib
parenteec0044de952cd2b78b0797e139a08079277c4df (diff)
merge revision(s) 49175: [Backport #10712]
* lib/resolv.rb: consider ENETUNREACH as ResolvTimeout [ruby-core:67411] [Bug #10712] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@49422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/resolv.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/resolv.rb b/lib/resolv.rb
index 73b9861078..788806b470 100644
--- a/lib/resolv.rb
+++ b/lib/resolv.rb
@@ -662,7 +662,12 @@ class Resolv
def request(sender, tout)
start = Time.now
timelimit = start + tout
- sender.send
+ begin
+ sender.send
+ rescue Errno::EHOSTUNREACH, # multi-homed IPv6 may generate this
+ Erron::ENETUNREACH
+ raise ResolvTimeout
+ end
while true
before_select = Time.now
timeout = timelimit - before_select