* 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
This commit is contained in:
akr 2005-09-30 16:48:46 +00:00
Родитель fc1bdda026
Коммит 372809129d
2 изменённых файлов: 22 добавлений и 5 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Sat Oct 1 01:46:51 2005 Tanaka Akira <akr@m17n.org>
* lib/open-uri.rb (OpenURI.open_loop): prohibit multiple proxy
options.
Thu Sep 29 10:26:18 2005 Tanaka Akira <akr@m17n.org>
* ext/dl/cptr.c (rb_dlptr_s_to_ptr): abolish sizeof(FILE).

Просмотреть файл

@ -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: