From 7fb6a090230983f341882bc043f2efcb80e3eff9 Mon Sep 17 00:00:00 2001 From: gotoyuzo Date: Thu, 30 Jun 2005 05:58:42 +0000 Subject: * lib/net/http.rb (Net::HTTP#connect, Net::HTTP#request): should not send proxy username and password to origin servers. [ruby-dev:25673] * lib/net/http.rb (Net::HTTP::ProxyDelta#edit_path): should not send HTTPS scheme URL to origine servers. [ruby-dev:25689] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/net/http.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/net/http.rb b/lib/net/http.rb index 5f40a47602..aa5d5de136 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -521,6 +521,12 @@ module Net # :nodoc: if proxy? @socket.writeline sprintf('CONNECT %s:%s HTTP/%s', @address, @port, HTTPVersion) + @socket.writeline "Host: #{@address}:#{@port}" + if proxy_user + credential = ["#{proxy_user}:#{proxy_pass}"].pack('m') + credential.delete!("\r\n") + @socket.writeline "Proxy-Authorization: Basic #{credential}" + end @socket.writeline '' HTTPResponse.read_new(@socket).value end @@ -660,11 +666,7 @@ module Net # :nodoc: end def edit_path(path) - if use_ssl? - "https://#{addr_port()}#{path}" - else - "http://#{addr_port()}#{path}" - end + use_ssl? ? path : "http://#{addr_port()}#{path}" end end @@ -983,7 +985,9 @@ module Net # :nodoc: } end if proxy_user() - req.proxy_basic_auth proxy_user(), proxy_pass() + unless use_ssl? + req.proxy_basic_auth proxy_user(), proxy_pass() + end end req.set_body_internal body -- cgit v1.2.3