Issue #9385 has been updated by Tomoyuki Chikanaga. Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED Hi, I've confirmed that this issue is not reproducible 1.9.3p433 with the following testcase. This test depend on external web site because http_proxy environment variable should not affect for 127.0.0.0/8. diff --git a/test/open-uri/test_open-uri.rb b/test/open-uri/test_open-uri.rb index 21dd969..2a10bfd 100644 --- a/test/open-uri/test_open-uri.rb +++ b/test/open-uri/test_open-uri.rb @@ -234,6 +234,14 @@ class TestOpenURI < Test::Unit::TestCase ensure proxy.shutdown end + bug9385 = '[ruby-core:59650]' + with_env("http_proxy"=>proxy_url) { + open("http://www.ruby-lang.org/", :proxy=>nil) {|f| + assert_equal("200", f.status[0], bug9385) + } + assert_equal("", log, bug9385); log.clear + } } end ---------------------------------------- Bug #9385: open-uri always uses proxy set as env var even if proxy flag is set to nil https://bugs.ruby-lang.org/issues/9385#change-44415 * Author: Christophe Philemotte * Status: Closed * Priority: Normal * Assignee: Akira Tanaka * Category: lib * Target version: current: 2.2.0 * ruby -v: 2.0.0p247 * Backport: 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED ---------------------------------------- According to doc http://ruby-doc.org/stdlib-2.1.0/libdoc/open-uri/rdoc/OpenURI.html we can disable the proxy by doing open("http://www.ruby-lang.org/en/raa.html", :proxy => nil) and "environment variables for proxy are ignored and connection will be made to a server directly". But it is not. The environment variable is still considered and used (cf attached script and logs). After digging the code, I think it's because Net::HTTP.new is called without passing p_addr to nil. If I'm not wrong, the attached patch is a possible solution to fix it. ---Files-------------------------------- run.sh (109 Bytes) logs.txt (1.3 KB) 0001-open-uri-Ignore-ENV-for-proxy-when-proxy-flag-nil.patch (745 Bytes) -- http://bugs.ruby-lang.org/