]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/golang.org/x/net/http2/headermap.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / golang.org / x / net / http2 / headermap.go
index c2805f6ac4d53394e6bae0a0dfb0b0f5b03c224f..c3ff3fa1c78c0870021a4fe343511fc8ce2e09da 100644 (file)
@@ -7,15 +7,21 @@ package http2
 import (
        "net/http"
        "strings"
+       "sync"
 )
 
 var (
-       commonLowerHeader = map[string]string{} // Go-Canonical-Case -> lower-case
-       commonCanonHeader = map[string]string{} // lower-case -> Go-Canonical-Case
+       commonBuildOnce   sync.Once
+       commonLowerHeader map[string]string // Go-Canonical-Case -> lower-case
+       commonCanonHeader map[string]string // lower-case -> Go-Canonical-Case
 )
 
-func init() {
-       for _, v := range []string{
+func buildCommonHeaderMapsOnce() {
+       commonBuildOnce.Do(buildCommonHeaderMaps)
+}
+
+func buildCommonHeaderMaps() {
+       common := []string{
                "accept",
                "accept-charset",
                "accept-encoding",
@@ -63,7 +69,10 @@ func init() {
                "vary",
                "via",
                "www-authenticate",
-       } {
+       }
+       commonLowerHeader = make(map[string]string, len(common))
+       commonCanonHeader = make(map[string]string, len(common))
+       for _, v := range common {
                chk := http.CanonicalHeaderKey(v)
                commonLowerHeader[chk] = v
                commonCanonHeader[v] = chk
@@ -71,6 +80,7 @@ func init() {
 }
 
 func lowerHeader(v string) string {
+       buildCommonHeaderMapsOnce()
        if s, ok := commonLowerHeader[v]; ok {
                return s
        }