Merge pull request #1360 from nogoegst/request-host-fix

Use http.Request.Host only for authority header and not for dialing
This commit is contained in:
Marten Seemann
2018-06-01 18:28:11 +08:00
committed by GitHub
2 changed files with 6 additions and 9 deletions

View File

@@ -70,9 +70,6 @@ func requestFromHeaders(headers []hpack.HeaderField) (*http.Request, error) {
} }
func hostnameFromRequest(req *http.Request) string { func hostnameFromRequest(req *http.Request) string {
if len(req.Host) > 0 {
return req.Host
}
if req.URL != nil { if req.URL != nil {
return req.URL.Host return req.URL.Host
} }

View File

@@ -101,16 +101,16 @@ var _ = Describe("Request", func() {
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
}) })
It("uses req.Host if available", func() { It("uses req.URL.Host", func() {
req := &http.Request{URL: url}
Expect(hostnameFromRequest(req)).To(Equal("quic.clemente.io:1337"))
})
It("uses req.URL.Host even if req.Host is available", func() {
req := &http.Request{ req := &http.Request{
Host: "www.example.org", Host: "www.example.org",
URL: url, URL: url,
} }
Expect(hostnameFromRequest(req)).To(Equal("www.example.org"))
})
It("uses req.URL.Host if req.Host is not set", func() {
req := &http.Request{URL: url}
Expect(hostnameFromRequest(req)).To(Equal("quic.clemente.io:1337")) Expect(hostnameFromRequest(req)).To(Equal("quic.clemente.io:1337"))
}) })