diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-30 16:48:46 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-30 16:48:46 +0000 |
commit | 372809129df72ab92534bb5e944cbcef34eeda9b (patch) | |
tree | f1523087b8939469d1a6230e4a0d5e5345678d30 /lib/open-uri.rb | |
parent | fc1bdda026f296ca3955a2338a72971821eb034a (diff) | |
download | ruby-372809129df72ab92534bb5e944cbcef34eeda9b.tar.gz |
* lib/open-uri.rb (OpenURI.open_loop): prohibit multiple proxy
options.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/open-uri.rb')
-rw-r--r-- | lib/open-uri.rb | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/open-uri.rb b/lib/open-uri.rb index daa5a87b54..b57156bbc9 100644 --- a/lib/open-uri.rb +++ b/lib/open-uri.rb @@ -147,15 +147,27 @@ module OpenURI end def OpenURI.open_loop(uri, options) # :nodoc: - if options.include? :proxy_http_basic_authentication - opt_proxy, proxy_user, proxy_pass = options[:proxy_http_basic_authentication] + proxy_opts = [] + proxy_opts << :proxy_http_basic_authentication if options.include? :proxy_http_basic_authentication + proxy_opts << :proxy if options.include? :proxy + proxy_opts.compact! + if 1 < proxy_opts.length + raise ArgumentError, "multiple proxy options specified" + end + case proxy_opts.first + when :proxy_http_basic_authentication + opt_proxy, proxy_user, proxy_pass = options.fetch(:proxy_http_basic_authentication) proxy_user = proxy_user.to_str proxy_pass = proxy_pass.to_str if opt_proxy == true raise ArgumentError.new("Invalid authenticated proxy option: #{options[:proxy_http_basic_authentication].inspect}") end - else - opt_proxy = options.fetch(:proxy, true) + when :proxy + opt_proxy = options.fetch(:proxy) + proxy_user = nil + proxy_pass = nil + when nil + opt_proxy = true proxy_user = nil proxy_pass = nil end @@ -511,7 +523,7 @@ module OpenURI # If nil is given for the proxy URI, this option is just ignored. # # If :proxy and :proxy_http_basic_authentication is specified, - # :proxy_http_basic_authentication is preferred. + # ArgumentError is raised. # # [:http_basic_authentication] # Synopsis: |