Commit 003dbc4c authored by Dmitri Shuralyov's avatar Dmitri Shuralyov

net/http: roll back "clean the path of the stripped URL by StripPrefix"

Roll back CL 161738. That fix changed StripPrefix behavior in the
general case, not just in the situation where where stripping the
prefix from path resulted in the empty string, causing issue #31622.

That kind of change to StripPrefix behavior is not backwards compatible,
and there can be a smaller, more targeted fix for the original issue.

Fixes #31622
Updates #30165

Change-Id: Ie2fcfe6787a32e44f71d564d8f9c9d580fc6f704
Reviewed-on: https://go-review.googlesource.com/c/go/+/180498
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 27eaffc0
......@@ -2900,15 +2900,6 @@ func TestStripPrefix(t *testing.T) {
t.Errorf("test 2: got status %v, want %v", g, e)
}
res.Body.Close()
res, err = c.Get(ts.URL + "/foo")
if err != nil {
t.Fatal(err)
}
if g, e := res.Header.Get("X-Path"), "/"; g != e {
t.Errorf("test 3: got %s, want %s", g, e)
}
res.Body.Close()
}
// https://golang.org/issue/18952.
......
......@@ -2042,7 +2042,7 @@ func StripPrefix(prefix string, h Handler) Handler {
*r2 = *r
r2.URL = new(url.URL)
*r2.URL = *r.URL
r2.URL.Path = cleanPath(p)
r2.URL.Path = p
h.ServeHTTP(w, r2)
} else {
NotFound(w, r)
......
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