Project

General

Profile

Actions

Feature #11195

closed

Add "no_proxy" parameter to Net::HTTP.new

Feature #11195: Add "no_proxy" parameter to Net::HTTP.new

Added by headius (Charles Nutter) about 11 years ago. Updated almost 9 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:69402]

Description

Net::HTTP.new currently accepts parameters for proxy host, proxy port, proxy username, and proxy password.

It does not accept an argument for non-proxied addresses, and as a result specifying a proxy host will use that proxy unconditionally.

Compare this with the default ENV behavior, which does honor the "no_proxy" env var. So the only way you can set up a proxy AND have it honor non-proxied addresses is to use ENV.

I propose that we add one more trailing argument for non-proxied hosts, since this is an unavoidable part of http proxying.

I would have made the change myself, but it involved a bit more work than just adding the param; the logic for honoring "no_proxy" only exists in the ENV logic, and when specified directly there's no affordance for non-proxied addresses in the rest of net/http.

This might be easier if we make uri/generic.rb's find_proxy accept an optional hash from which to look up these values. Then we just store them in Net::HTTP as a local version of ENV.

Updated by chucke (Tiago Cardoso) about 10 years ago Actions #2 [ruby-core:76159]

+1, I'm also having issues with this.

Updated by shyouhei (Shyouhei Urabe) almost 10 years ago Actions #3 [ruby-core:76810]

  • Status changed from Open to Feedback

We looked at this issue at yesterday's developer meeting. We agreed this feature is good, but sadly no active mentor was there for Net::HTTP.

Maybe could someone propose us a patch to implement this?

Updated by roeme (Roman Bigler) almost 10 years ago Actions #4 [ruby-core:77293]

+1, I'm sure this costs quite a few people in $BIGCORPs som time to work around

Shyouhei Urabe wrote:

We looked at this issue at yesterday's developer meeting. We agreed this feature is good, but sadly no active mentor was there for Net::HTTP.

Maybe could someone propose us a patch to implement this?

No promises, and an absolute noob when it comes to this, but I'll have a look.

Edit: Sorry for the noise, but I just discovered that the necessary code seems to be present in 2.2.x. Not sure if this could be closed then (backports).

Updated by shyouhei (Shyouhei Urabe) almost 10 years ago Actions #5 [ruby-core:77569]

We looked at this issue in developer meeting today.

This feature is not implemented yet. And attendees wondered if Net::HTTP is the right place to implement no_proxy because it is the lowest layer of HTTP processing in Ruby.

uri/generic has find_proxy already so refactoring this library sounds more reasonable.

Roman, would you mind if I ask you about a pull request (against ruby/ruby), following that way?

Updated by naruse (Yui NARUSE) almost 9 years ago Actions #6

  • Tracker changed from Bug to Feature
  • Backport deleted (2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN)

Updated by naruse (Yui NARUSE) almost 9 years ago Actions #7

  • Status changed from Feedback to Closed

Applied in changeset trunk|r60054.


Net::HTTP.new: Support no_proxy parameter [Feature #11195]

Actions

Also available in: PDF Atom