From 17d9093bf214f3461815410c298006bac8427c0e Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 21 Jul 2011 13:25:55 -0400 Subject: [PATCH] undo CL 4808044 / 1bd754e69ce7 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ServeMux depends on having a URL in order to mux. It might be that the right fix is to have CONNECT handlers just not look at URL. ««« original CL description http: do not parse req.URL for CONNECT CONNECT's argument is not a URL. R=golang-dev, bradfitz, rsc CC=golang-dev https://golang.org/cl/4808044 »»» TBR=bradfitz CC=golang-dev https://golang.org/cl/4798046 --- src/pkg/http/readrequest_test.go | 22 ---------------------- src/pkg/http/request.go | 11 +++-------- 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/src/pkg/http/readrequest_test.go b/src/pkg/http/readrequest_test.go index adac86a47f..79f8de70d3 100644 --- a/src/pkg/http/readrequest_test.go +++ b/src/pkg/http/readrequest_test.go @@ -152,28 +152,6 @@ var reqTests = []reqTest{ noBody, "parse : empty url", }, - - // CONNECT method. - { - "CONNECT proxy.example.com:443 HTTP/1.0\r\n" + - "Host: proxy.example.com\r\n\r\n", - - &Request{ - Method: "CONNECT", - RawURL: "proxy.example.com:443", - URL: nil, - Proto: "HTTP/1.0", - ProtoMajor: 1, - ProtoMinor: 0, - Close: false, - ContentLength: 0, - Host: "proxy.example.com", - Form: Values{}, - }, - - noBody, - noError, - }, } func TestReadRequest(t *testing.T) { diff --git a/src/pkg/http/request.go b/src/pkg/http/request.go index cfde345f10..2917cc1e6e 100644 --- a/src/pkg/http/request.go +++ b/src/pkg/http/request.go @@ -548,11 +548,8 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) { return nil, &badStringError{"malformed HTTP version", req.Proto} } - isConnect := strings.ToUpper(req.Method) == "CONNECT" - if !isConnect { - if req.URL, err = ParseRequestURL(req.RawURL); err != nil { - return nil, err - } + if req.URL, err = ParseRequestURL(req.RawURL); err != nil { + return nil, err } // Subsequent lines: Key: value. @@ -569,9 +566,7 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) { // GET http://www.google.com/index.html HTTP/1.1 // Host: doesntmatter // the same. In the second case, any Host line is ignored. - if !isConnect { - req.Host = req.URL.Host - } + req.Host = req.URL.Host if req.Host == "" { req.Host = req.Header.Get("Host") } -- 2.50.0