diff options
Diffstat (limited to 'vendor/golang.org/x/net/http/httpguts/guts.go')
| -rw-r--r-- | vendor/golang.org/x/net/http/httpguts/guts.go | 50 | 
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/golang.org/x/net/http/httpguts/guts.go b/vendor/golang.org/x/net/http/httpguts/guts.go new file mode 100644 index 0000000..e6cd0ce --- /dev/null +++ b/vendor/golang.org/x/net/http/httpguts/guts.go @@ -0,0 +1,50 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package httpguts provides functions implementing various details +// of the HTTP specification. +// +// This package is shared by the standard library (which vendors it) +// and x/net/http2. It comes with no API stability promise. +package httpguts + +import ( +	"net/textproto" +	"strings" +) + +// ValidTrailerHeader reports whether name is a valid header field name to appear +// in trailers. +// See RFC 7230, Section 4.1.2 +func ValidTrailerHeader(name string) bool { +	name = textproto.CanonicalMIMEHeaderKey(name) +	if strings.HasPrefix(name, "If-") || badTrailer[name] { +		return false +	} +	return true +} + +var badTrailer = map[string]bool{ +	"Authorization":       true, +	"Cache-Control":       true, +	"Connection":          true, +	"Content-Encoding":    true, +	"Content-Length":      true, +	"Content-Range":       true, +	"Content-Type":        true, +	"Expect":              true, +	"Host":                true, +	"Keep-Alive":          true, +	"Max-Forwards":        true, +	"Pragma":              true, +	"Proxy-Authenticate":  true, +	"Proxy-Authorization": true, +	"Proxy-Connection":    true, +	"Range":               true, +	"Realm":               true, +	"Te":                  true, +	"Trailer":             true, +	"Transfer-Encoding":   true, +	"Www-Authenticate":    true, +}  | 
