aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-19 15:13:42 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-19 15:13:42 +0000
commit3a12ecfde1731ff3e8db6c88c538f0a28ee4019a (patch)
tree338afdc1ae8da9407ef1616d5d6ec1d8f919fa28
parent95b2c15523b32eae94576b578a9ef80a073f28c5 (diff)
downloadruby-3a12ecfde1731ff3e8db6c88c538f0a28ee4019a.tar.gz
Net::HTTP#start now pass :ENV to p_addr by default [Bug #13351]
To avoid this, pass nil explicitly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--NEWS4
-rw-r--r--lib/net/http.rb3
-rw-r--r--test/net/http/test_http.rb17
3 files changed, 23 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 13f68a37ec..c6dd5cfb19 100644
--- a/NEWS
+++ b/NEWS
@@ -86,6 +86,10 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Compatibility issues (excluding feature bug fixes)
+* Net::HTTP
+ * Net::HTTP#start now pass :ENV to p_addr by default. [Bug #13351]
+ To avoid this, pass nil explicitly.
+
* Random.raw_seed renamed to become Random.urandom. It is now
applicable to non-seeding purposes due to [Bug #9569].
diff --git a/lib/net/http.rb b/lib/net/http.rb
index c648f0acc4..d632020458 100644
--- a/lib/net/http.rb
+++ b/lib/net/http.rb
@@ -560,7 +560,7 @@ module Net #:nodoc:
# :call-seq:
# HTTP.start(address, port, p_addr, p_port, p_user, p_pass, &block)
- # HTTP.start(address, port=nil, p_addr=nil, p_port=nil, p_user=nil, p_pass=nil, opt, &block)
+ # HTTP.start(address, port=nil, p_addr=:ENV, p_port=nil, p_user=nil, p_pass=nil, opt, &block)
#
# Creates a new Net::HTTP object, then additionally opens the TCP
# connection and HTTP session.
@@ -591,6 +591,7 @@ module Net #:nodoc:
def HTTP.start(address, *arg, &block) # :yield: +http+
arg.pop if opt = Hash.try_convert(arg[-1])
port, p_addr, p_port, p_user, p_pass = *arg
+ p_addr = :ENV if arg.size < 2
port = https_default_port if !port && opt && opt[:use_ssl]
http = new(address, port, p_addr, p_port, p_user, p_pass)
diff --git a/test/net/http/test_http.rb b/test/net/http/test_http.rb
index 7db5909f96..13d1803aa9 100644
--- a/test/net/http/test_http.rb
+++ b/test/net/http/test_http.rb
@@ -233,6 +233,23 @@ end
module TestNetHTTP_version_1_1_methods
+ def test_s_start
+ h = Net::HTTP.start(config('host'), config('port'))
+ assert_equal config('host'), h.address
+ assert_equal config('port'), h.port
+ assert_equal true, h.instance_variable_get(:@proxy_from_env)
+
+ h = Net::HTTP.start(config('host'), config('port'), :ENV)
+ assert_equal config('host'), h.address
+ assert_equal config('port'), h.port
+ assert_equal true, h.instance_variable_get(:@proxy_from_env)
+
+ h = Net::HTTP.start(config('host'), config('port'), nil)
+ assert_equal config('host'), h.address
+ assert_equal config('port'), h.port
+ assert_equal false, h.instance_variable_get(:@proxy_from_env)
+ end
+
def test_s_get
assert_equal $test_net_http_data,
Net::HTTP.get(config('host'), '/', config('port'))