From ba5bfd029554f8f9c5215e84160d49fd02b8a397 Mon Sep 17 00:00:00 2001 From: Tom Thorogood Date: Sat, 21 Sep 2019 17:20:53 +0930 Subject: [PATCH] Use strings.ToLower in ServeMux.match (#1010) This has been a long standing TODO. golang.org/cl/137575 was included in go1.12 which is the oldest officially supported release. --- serve_mux.go | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/serve_mux.go b/serve_mux.go index ae304db5..69deb33e 100644 --- a/serve_mux.go +++ b/serve_mux.go @@ -36,33 +36,9 @@ func (mux *ServeMux) match(q string, t uint16) Handler { return nil } + q = strings.ToLower(q) + var handler Handler - - // TODO(tmthrgd): Once https://go-review.googlesource.com/c/go/+/137575 - // lands in a go release, replace the following with strings.ToLower. - var sb strings.Builder - for i := 0; i < len(q); i++ { - c := q[i] - if !(c >= 'A' && c <= 'Z') { - continue - } - - sb.Grow(len(q)) - sb.WriteString(q[:i]) - - for ; i < len(q); i++ { - c := q[i] - if c >= 'A' && c <= 'Z' { - c += 'a' - 'A' - } - - sb.WriteByte(c) - } - - q = sb.String() - break - } - for off, end := 0, false; !end; off, end = NextLabel(q, off) { if h, ok := mux.z[q[off:]]; ok { if t != TypeDS {