Skip to content

Commit

Permalink
Net::HTTP#start now pass :ENV to p_addr by default [Bug #13351]
Browse files Browse the repository at this point in the history
To avoid this, pass nil explicitly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
nurse committed May 19, 2017
1 parent 0183613 commit 67723c1
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 1 deletion.
4 changes: 4 additions & 0 deletions NEWS
Expand Up @@ -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].

Expand Down
3 changes: 2 additions & 1 deletion lib/net/http.rb
Expand Up @@ -560,7 +560,7 @@ def HTTP.socket_type #:nodoc: obsolete

# :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.
Expand Down Expand Up @@ -591,6 +591,7 @@ def HTTP.socket_type #:nodoc: obsolete
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)

Expand Down
17 changes: 17 additions & 0 deletions test/net/http/test_http.rb
Expand Up @@ -233,6 +233,23 @@ def host.to_str; raise SocketError, "open failure"; 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'))
Expand Down

0 comments on commit 67723c1

Please sign in to comment.