Skip to content

Commit 2162738

Browse files
jbapull[bot]
authored andcommitted
net/http: fix ServeMux pattern registration
When the httpmuxgo121 GODEBUG setting was active, we were registering patterns in the old and the new way. Fix to register only in the old way. Change-Id: Ibc1fd41e7f4d162ee5bc34575df409e1db5657cd Reviewed-on: https://go-review.googlesource.com/c/go/+/533095 Run-TryBot: Jonathan Amsterdam <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Olena Synenka <[email protected]> Reviewed-by: Damien Neil <[email protected]>
1 parent e84c007 commit 2162738

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/net/http/server.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2686,8 +2686,9 @@ func (mux *ServeMux) ServeHTTP(w ResponseWriter, r *Request) {
26862686
func (mux *ServeMux) Handle(pattern string, handler Handler) {
26872687
if use121 {
26882688
mux.mux121.handle(pattern, handler)
2689+
} else {
2690+
mux.register(pattern, handler)
26892691
}
2690-
mux.register(pattern, handler)
26912692
}
26922693

26932694
// HandleFunc registers the handler function for the given pattern.
@@ -2696,26 +2697,29 @@ func (mux *ServeMux) Handle(pattern string, handler Handler) {
26962697
func (mux *ServeMux) HandleFunc(pattern string, handler func(ResponseWriter, *Request)) {
26972698
if use121 {
26982699
mux.mux121.handleFunc(pattern, handler)
2700+
} else {
2701+
mux.register(pattern, HandlerFunc(handler))
26992702
}
2700-
mux.register(pattern, HandlerFunc(handler))
27012703
}
27022704

27032705
// Handle registers the handler for the given pattern in [DefaultServeMux].
27042706
// The documentation for [ServeMux] explains how patterns are matched.
27052707
func Handle(pattern string, handler Handler) {
27062708
if use121 {
27072709
DefaultServeMux.mux121.handle(pattern, handler)
2710+
} else {
2711+
DefaultServeMux.register(pattern, handler)
27082712
}
2709-
DefaultServeMux.register(pattern, handler)
27102713
}
27112714

27122715
// HandleFunc registers the handler function for the given pattern in [DefaultServeMux].
27132716
// The documentation for [ServeMux] explains how patterns are matched.
27142717
func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) {
27152718
if use121 {
27162719
DefaultServeMux.mux121.handleFunc(pattern, handler)
2720+
} else {
2721+
DefaultServeMux.register(pattern, HandlerFunc(handler))
27172722
}
2718-
DefaultServeMux.register(pattern, HandlerFunc(handler))
27192723
}
27202724

27212725
func (mux *ServeMux) register(pattern string, handler Handler) {

0 commit comments

Comments
 (0)