summaryrefslogtreecommitdiff
path: root/lib/open-uri.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-01 15:31:59 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-01 15:31:59 +0000
commit90069dec12e5d4bd933acaac59f46ccd8057c50f (patch)
treeeca20592192649fd62f4e2cb7ff6fe215705a32f /lib/open-uri.rb
parente18482f852c3403167a5503c65be663621d34a4f (diff)
* lib/open-uri.rb (URI::Generic#find_proxy): return nil on loopback
address. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/open-uri.rb')
-rw-r--r--lib/open-uri.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/open-uri.rb b/lib/open-uri.rb
index e601c5cf5c..c6bfd7a509 100644
--- a/lib/open-uri.rb
+++ b/lib/open-uri.rb
@@ -488,6 +488,15 @@ module URI
proxy_uri = ENV[name] || ENV[name.upcase]
end
+ if proxy_uri && self.host
+ require 'socket'
+ begin
+ addr = IPSocket.getaddress(self.host)
+ proxy_uri = nil if /\A127\.|\A::1\z/ =~ addr
+ rescue SocketError
+ end
+ end
+
if proxy_uri
proxy_uri = URI.parse(proxy_uri)
unless URI::HTTP === proxy_uri