]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: replace map lookup with switch for scheme port
author1911860538 <alxps1911@gmail.com>
Thu, 17 Apr 2025 14:51:18 +0000 (14:51 +0000)
committerJorropo <jorropo.pgm@gmail.com>
Tue, 22 Apr 2025 20:10:32 +0000 (13:10 -0700)
Improve scheme port lookup by replacing map with switch, reducing overhead and improving performance.

Change-Id: I45c790da15e237d5f32c50d342b3713b98fd2ffa
GitHub-Last-Rev: 4c02e4cabf181b365fbf2b722e3051625a289527
GitHub-Pull-Request: golang/go#73422
Reviewed-on: https://go-review.googlesource.com/c/go/+/666356
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
src/net/http/transport.go

index 59a125cbc78a54aadfecb6358691659dbd8096d9..07b3a9e1e72ba60122d83d48558d91fb464b47b7 100644 (file)
@@ -2931,11 +2931,17 @@ func (pc *persistConn) closeLocked(err error) {
        pc.mutateHeaderFunc = nil
 }
 
-var portMap = map[string]string{
-       "http":    "80",
-       "https":   "443",
-       "socks5":  "1080",
-       "socks5h": "1080",
+func schemePort(scheme string) string {
+       switch scheme {
+       case "http":
+               return "80"
+       case "https":
+               return "443"
+       case "socks5", "socks5h":
+               return "1080"
+       default:
+               return ""
+       }
 }
 
 func idnaASCIIFromURL(url *url.URL) string {
@@ -2950,7 +2956,7 @@ func idnaASCIIFromURL(url *url.URL) string {
 func canonicalAddr(url *url.URL) string {
        port := url.Port()
        if port == "" {
-               port = portMap[url.Scheme]
+               port = schemePort(url.Scheme)
        }
        return net.JoinHostPort(idnaASCIIFromURL(url), port)
 }