Commit 324491d7 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

http2: fix bug where '*' as a valid :path value in Transport

In the most recent commit (git 3a1f9e, CL 27632) I introduced a bug
where I improperly started rejecting an outgoing :path of '*'.  That
CL was never vendored into std. Once I tried to vendor it and run the
tests, the tests failed due to this regression.

So, fix the bug and allow '*' (e.g. for OPTIONS requests). No test
updates because the tests are already in std, and now pass (again).

Change-Id: Ibb91a17145d381da0fd0ea193e8a1bd59f03c3fa
Reviewed-on: https://go-review.googlesource.com/29070Reviewed-by: 's avatarChris Broadfoot <cbro@golang.org>
parent cfe3c2a7
......@@ -352,11 +352,14 @@ func (s *sorter) SortStrings(ss []string) {
}
// validPseudoPath reports whether v is a valid :path pseudo-header
// value. It must be a non-empty string starting with '/', and not
// start with two slashes.
// value. It must be either:
//
// *) a non-empty string starting with '/', but not with with "//",
// *) the string '*', for OPTIONS requests.
//
// For now this is only used a quick check for deciding when to clean
// up Opaque URLs before sending requests from the Transport.
// See golang.org/issue/16847
func validPseudoPath(v string) bool {
return len(v) > 0 && v[0] == '/' && (len(v) == 1 || v[1] != '/')
return (len(v) > 0 && v[0] == '/' && (len(v) == 1 || v[1] != '/')) || v == "*"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment