summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
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