Project

General

Profile

Actions

Feature #11195

closed

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

Added by headius (Charles Nutter) over 9 years ago. Updated about 7 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) over 8 years ago

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

Updated by shyouhei (Shyouhei Urabe) over 8 years ago

  • 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) about 8 years ago

+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) about 8 years ago

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?

Actions #6

Updated by naruse (Yui NARUSE) about 7 years ago

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

Updated by naruse (Yui NARUSE) about 7 years ago

  • Status changed from Feedback to Closed

Applied in changeset trunk|r60054.


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

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0