From: Russ Cox Date: Mon, 13 Feb 2012 04:19:50 +0000 (-0500) Subject: net/http: fix http_proxy parsing X-Git-Tag: weekly.2012-02-14~97 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=fb2caa3244184d73d0185dce2c8b594ff6e60c06;p=gostls13.git net/http: fix http_proxy parsing Fixes #2919. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5645089 --- diff --git a/src/pkg/net/http/transport.go b/src/pkg/net/http/transport.go index 693215edd4..510e55b058 100644 --- a/src/pkg/net/http/transport.go +++ b/src/pkg/net/http/transport.go @@ -85,16 +85,16 @@ func ProxyFromEnvironment(req *Request) (*url.URL, error) { if !useProxy(canonicalAddr(req.URL)) { return nil, nil } - proxyURL, err := url.ParseRequest(proxy) + proxyURL, err := url.Parse(proxy) if err != nil { - return nil, errors.New("invalid proxy address") - } - if proxyURL.Host == "" { - proxyURL, err = url.ParseRequest("http://" + proxy) - if err != nil { - return nil, errors.New("invalid proxy address") + if u, err := url.Parse("http://" + proxy); err == nil { + proxyURL = u + err = nil } } + if err != nil { + return nil, fmt.Errorf("invalid proxy address %q: %v", proxy, err) + } return proxyURL, nil }