mirror of
https://github.com/kubernetes/sample-controller.git
synced 2025-03-31 19:58:45 +08:00
Merge pull request #81546 from cblecker/1.13/go-1.11.13
Update golang/x/net dependency on release-1.13 Kubernetes-commit: 37d169313237cb4ceb2cc4bef300f2ae3053c1a2
This commit is contained in:
parent
1f880e428b
commit
f9f3619e62
488
Godeps/Godeps.json
generated
488
Godeps/Godeps.json
generated
File diff suppressed because it is too large
Load Diff
50
vendor/golang.org/x/net/http/httpguts/guts.go
generated
vendored
Normal file
50
vendor/golang.org/x/net/http/httpguts/guts.go
generated
vendored
Normal file
@ -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,
|
||||||
|
}
|
@ -2,12 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// Package httplex contains rules around lexical matters of various
|
package httpguts
|
||||||
// HTTP-related specifications.
|
|
||||||
//
|
|
||||||
// This package is shared by the standard library (which vendors it)
|
|
||||||
// and x/net/http2. It comes with no API stability promise.
|
|
||||||
package httplex
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net"
|
"net"
|
28
vendor/golang.org/x/net/http2/client_conn_pool.go
generated
vendored
28
vendor/golang.org/x/net/http2/client_conn_pool.go
generated
vendored
@ -52,9 +52,31 @@ const (
|
|||||||
noDialOnMiss = false
|
noDialOnMiss = false
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// shouldTraceGetConn reports whether getClientConn should call any
|
||||||
|
// ClientTrace.GetConn hook associated with the http.Request.
|
||||||
|
//
|
||||||
|
// This complexity is needed to avoid double calls of the GetConn hook
|
||||||
|
// during the back-and-forth between net/http and x/net/http2 (when the
|
||||||
|
// net/http.Transport is upgraded to also speak http2), as well as support
|
||||||
|
// the case where x/net/http2 is being used directly.
|
||||||
|
func (p *clientConnPool) shouldTraceGetConn(st clientConnIdleState) bool {
|
||||||
|
// If our Transport wasn't made via ConfigureTransport, always
|
||||||
|
// trace the GetConn hook if provided, because that means the
|
||||||
|
// http2 package is being used directly and it's the one
|
||||||
|
// dialing, as opposed to net/http.
|
||||||
|
if _, ok := p.t.ConnPool.(noDialClientConnPool); !ok {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// Otherwise, only use the GetConn hook if this connection has
|
||||||
|
// been used previously for other requests. For fresh
|
||||||
|
// connections, the net/http package does the dialing.
|
||||||
|
return !st.freshConn
|
||||||
|
}
|
||||||
|
|
||||||
func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) {
|
func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) {
|
||||||
if isConnectionCloseRequest(req) && dialOnMiss {
|
if isConnectionCloseRequest(req) && dialOnMiss {
|
||||||
// It gets its own connection.
|
// It gets its own connection.
|
||||||
|
traceGetConn(req, addr)
|
||||||
const singleUse = true
|
const singleUse = true
|
||||||
cc, err := p.t.dialClientConn(addr, singleUse)
|
cc, err := p.t.dialClientConn(addr, singleUse)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -64,7 +86,10 @@ func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMis
|
|||||||
}
|
}
|
||||||
p.mu.Lock()
|
p.mu.Lock()
|
||||||
for _, cc := range p.conns[addr] {
|
for _, cc := range p.conns[addr] {
|
||||||
if cc.CanTakeNewRequest() {
|
if st := cc.idleState(); st.canTakeNewRequest {
|
||||||
|
if p.shouldTraceGetConn(st) {
|
||||||
|
traceGetConn(req, addr)
|
||||||
|
}
|
||||||
p.mu.Unlock()
|
p.mu.Unlock()
|
||||||
return cc, nil
|
return cc, nil
|
||||||
}
|
}
|
||||||
@ -73,6 +98,7 @@ func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMis
|
|||||||
p.mu.Unlock()
|
p.mu.Unlock()
|
||||||
return nil, ErrNoCachedConn
|
return nil, ErrNoCachedConn
|
||||||
}
|
}
|
||||||
|
traceGetConn(req, addr)
|
||||||
call := p.getStartDialLocked(addr)
|
call := p.getStartDialLocked(addr)
|
||||||
p.mu.Unlock()
|
p.mu.Unlock()
|
||||||
<-call.done
|
<-call.done
|
||||||
|
8
vendor/golang.org/x/net/http2/configure_transport.go
generated
vendored
8
vendor/golang.org/x/net/http2/configure_transport.go
generated
vendored
@ -57,7 +57,7 @@ func configureTransport(t1 *http.Transport) (*Transport, error) {
|
|||||||
|
|
||||||
// registerHTTPSProtocol calls Transport.RegisterProtocol but
|
// registerHTTPSProtocol calls Transport.RegisterProtocol but
|
||||||
// converting panics into errors.
|
// converting panics into errors.
|
||||||
func registerHTTPSProtocol(t *http.Transport, rt http.RoundTripper) (err error) {
|
func registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
err = fmt.Errorf("%v", e)
|
err = fmt.Errorf("%v", e)
|
||||||
@ -69,10 +69,12 @@ func registerHTTPSProtocol(t *http.Transport, rt http.RoundTripper) (err error)
|
|||||||
|
|
||||||
// noDialH2RoundTripper is a RoundTripper which only tries to complete the request
|
// noDialH2RoundTripper is a RoundTripper which only tries to complete the request
|
||||||
// if there's already has a cached connection to the host.
|
// if there's already has a cached connection to the host.
|
||||||
type noDialH2RoundTripper struct{ t *Transport }
|
// (The field is exported so it can be accessed via reflect from net/http; tested
|
||||||
|
// by TestNoDialH2RoundTripperType)
|
||||||
|
type noDialH2RoundTripper struct{ *Transport }
|
||||||
|
|
||||||
func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
|
func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||||
res, err := rt.t.RoundTrip(req)
|
res, err := rt.Transport.RoundTrip(req)
|
||||||
if isNoCachedConnError(err) {
|
if isNoCachedConnError(err) {
|
||||||
return nil, http.ErrSkipAltProtocol
|
return nil, http.ErrSkipAltProtocol
|
||||||
}
|
}
|
||||||
|
10
vendor/golang.org/x/net/http2/flow.go
generated
vendored
10
vendor/golang.org/x/net/http2/flow.go
generated
vendored
@ -41,10 +41,10 @@ func (f *flow) take(n int32) {
|
|||||||
// add adds n bytes (positive or negative) to the flow control window.
|
// add adds n bytes (positive or negative) to the flow control window.
|
||||||
// It returns false if the sum would exceed 2^31-1.
|
// It returns false if the sum would exceed 2^31-1.
|
||||||
func (f *flow) add(n int32) bool {
|
func (f *flow) add(n int32) bool {
|
||||||
remain := (1<<31 - 1) - f.n
|
sum := f.n + n
|
||||||
if n > remain {
|
if (sum > n) == (f.n > 0) {
|
||||||
return false
|
f.n = sum
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
f.n += n
|
return false
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
67
vendor/golang.org/x/net/http2/frame.go
generated
vendored
67
vendor/golang.org/x/net/http2/frame.go
generated
vendored
@ -14,8 +14,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
"golang.org/x/net/http/httpguts"
|
||||||
"golang.org/x/net/http2/hpack"
|
"golang.org/x/net/http2/hpack"
|
||||||
"golang.org/x/net/lex/httplex"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const frameHeaderLen = 9
|
const frameHeaderLen = 9
|
||||||
@ -733,32 +733,67 @@ func (f *SettingsFrame) IsAck() bool {
|
|||||||
return f.FrameHeader.Flags.Has(FlagSettingsAck)
|
return f.FrameHeader.Flags.Has(FlagSettingsAck)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *SettingsFrame) Value(s SettingID) (v uint32, ok bool) {
|
func (f *SettingsFrame) Value(id SettingID) (v uint32, ok bool) {
|
||||||
f.checkValid()
|
f.checkValid()
|
||||||
buf := f.p
|
for i := 0; i < f.NumSettings(); i++ {
|
||||||
for len(buf) > 0 {
|
if s := f.Setting(i); s.ID == id {
|
||||||
settingID := SettingID(binary.BigEndian.Uint16(buf[:2]))
|
return s.Val, true
|
||||||
if settingID == s {
|
|
||||||
return binary.BigEndian.Uint32(buf[2:6]), true
|
|
||||||
}
|
}
|
||||||
buf = buf[6:]
|
|
||||||
}
|
}
|
||||||
return 0, false
|
return 0, false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setting returns the setting from the frame at the given 0-based index.
|
||||||
|
// The index must be >= 0 and less than f.NumSettings().
|
||||||
|
func (f *SettingsFrame) Setting(i int) Setting {
|
||||||
|
buf := f.p
|
||||||
|
return Setting{
|
||||||
|
ID: SettingID(binary.BigEndian.Uint16(buf[i*6 : i*6+2])),
|
||||||
|
Val: binary.BigEndian.Uint32(buf[i*6+2 : i*6+6]),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *SettingsFrame) NumSettings() int { return len(f.p) / 6 }
|
||||||
|
|
||||||
|
// HasDuplicates reports whether f contains any duplicate setting IDs.
|
||||||
|
func (f *SettingsFrame) HasDuplicates() bool {
|
||||||
|
num := f.NumSettings()
|
||||||
|
if num == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// If it's small enough (the common case), just do the n^2
|
||||||
|
// thing and avoid a map allocation.
|
||||||
|
if num < 10 {
|
||||||
|
for i := 0; i < num; i++ {
|
||||||
|
idi := f.Setting(i).ID
|
||||||
|
for j := i + 1; j < num; j++ {
|
||||||
|
idj := f.Setting(j).ID
|
||||||
|
if idi == idj {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
seen := map[SettingID]bool{}
|
||||||
|
for i := 0; i < num; i++ {
|
||||||
|
id := f.Setting(i).ID
|
||||||
|
if seen[id] {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
seen[id] = true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// ForeachSetting runs fn for each setting.
|
// ForeachSetting runs fn for each setting.
|
||||||
// It stops and returns the first error.
|
// It stops and returns the first error.
|
||||||
func (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error {
|
func (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error {
|
||||||
f.checkValid()
|
f.checkValid()
|
||||||
buf := f.p
|
for i := 0; i < f.NumSettings(); i++ {
|
||||||
for len(buf) > 0 {
|
if err := fn(f.Setting(i)); err != nil {
|
||||||
if err := fn(Setting{
|
|
||||||
SettingID(binary.BigEndian.Uint16(buf[:2])),
|
|
||||||
binary.BigEndian.Uint32(buf[2:6]),
|
|
||||||
}); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
buf = buf[6:]
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -1462,7 +1497,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) {
|
|||||||
if VerboseLogs && fr.logReads {
|
if VerboseLogs && fr.logReads {
|
||||||
fr.debugReadLoggerf("http2: decoded hpack field %+v", hf)
|
fr.debugReadLoggerf("http2: decoded hpack field %+v", hf)
|
||||||
}
|
}
|
||||||
if !httplex.ValidHeaderFieldValue(hf.Value) {
|
if !httpguts.ValidHeaderFieldValue(hf.Value) {
|
||||||
invalid = headerFieldValueError(hf.Value)
|
invalid = headerFieldValueError(hf.Value)
|
||||||
}
|
}
|
||||||
isPseudo := strings.HasPrefix(hf.Name, ":")
|
isPseudo := strings.HasPrefix(hf.Name, ":")
|
||||||
|
26
vendor/golang.org/x/net/http2/go111.go
generated
vendored
Normal file
26
vendor/golang.org/x/net/http2/go111.go
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
// +build go1.11
|
||||||
|
|
||||||
|
package http2
|
||||||
|
|
||||||
|
import "net/textproto"
|
||||||
|
|
||||||
|
func traceHasWroteHeaderField(trace *clientTrace) bool {
|
||||||
|
return trace != nil && trace.WroteHeaderField != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func traceWroteHeaderField(trace *clientTrace, k, v string) {
|
||||||
|
if trace != nil && trace.WroteHeaderField != nil {
|
||||||
|
trace.WroteHeaderField(k, []string{v})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func traceGot1xxResponseFunc(trace *clientTrace) func(int, textproto.MIMEHeader) error {
|
||||||
|
if trace != nil {
|
||||||
|
return trace.Got1xxResponse
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
15
vendor/golang.org/x/net/http2/go17.go
generated
vendored
15
vendor/golang.org/x/net/http2/go17.go
generated
vendored
@ -18,6 +18,8 @@ type contextContext interface {
|
|||||||
context.Context
|
context.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var errCanceled = context.Canceled
|
||||||
|
|
||||||
func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx contextContext, cancel func()) {
|
func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx contextContext, cancel func()) {
|
||||||
ctx, cancel = context.WithCancel(context.Background())
|
ctx, cancel = context.WithCancel(context.Background())
|
||||||
ctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr())
|
ctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr())
|
||||||
@ -48,6 +50,14 @@ func (t *Transport) idleConnTimeout() time.Duration {
|
|||||||
|
|
||||||
func setResponseUncompressed(res *http.Response) { res.Uncompressed = true }
|
func setResponseUncompressed(res *http.Response) { res.Uncompressed = true }
|
||||||
|
|
||||||
|
func traceGetConn(req *http.Request, hostPort string) {
|
||||||
|
trace := httptrace.ContextClientTrace(req.Context())
|
||||||
|
if trace == nil || trace.GetConn == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
trace.GetConn(hostPort)
|
||||||
|
}
|
||||||
|
|
||||||
func traceGotConn(req *http.Request, cc *ClientConn) {
|
func traceGotConn(req *http.Request, cc *ClientConn) {
|
||||||
trace := httptrace.ContextClientTrace(req.Context())
|
trace := httptrace.ContextClientTrace(req.Context())
|
||||||
if trace == nil || trace.GotConn == nil {
|
if trace == nil || trace.GotConn == nil {
|
||||||
@ -104,3 +114,8 @@ func requestTrace(req *http.Request) *clientTrace {
|
|||||||
func (cc *ClientConn) Ping(ctx context.Context) error {
|
func (cc *ClientConn) Ping(ctx context.Context) error {
|
||||||
return cc.ping(ctx)
|
return cc.ping(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Shutdown gracefully closes the client connection, waiting for running streams to complete.
|
||||||
|
func (cc *ClientConn) Shutdown(ctx context.Context) error {
|
||||||
|
return cc.shutdown(ctx)
|
||||||
|
}
|
||||||
|
2
vendor/golang.org/x/net/http2/hpack/encode.go
generated
vendored
2
vendor/golang.org/x/net/http2/hpack/encode.go
generated
vendored
@ -206,7 +206,7 @@ func appendVarInt(dst []byte, n byte, i uint64) []byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// appendHpackString appends s, as encoded in "String Literal"
|
// appendHpackString appends s, as encoded in "String Literal"
|
||||||
// representation, to dst and returns the the extended buffer.
|
// representation, to dst and returns the extended buffer.
|
||||||
//
|
//
|
||||||
// s will be encoded in Huffman codes only when it produces strictly
|
// s will be encoded in Huffman codes only when it produces strictly
|
||||||
// shorter byte string.
|
// shorter byte string.
|
||||||
|
6
vendor/golang.org/x/net/http2/hpack/hpack.go
generated
vendored
6
vendor/golang.org/x/net/http2/hpack/hpack.go
generated
vendored
@ -389,6 +389,12 @@ func (d *Decoder) callEmit(hf HeaderField) error {
|
|||||||
|
|
||||||
// (same invariants and behavior as parseHeaderFieldRepr)
|
// (same invariants and behavior as parseHeaderFieldRepr)
|
||||||
func (d *Decoder) parseDynamicTableSizeUpdate() error {
|
func (d *Decoder) parseDynamicTableSizeUpdate() error {
|
||||||
|
// RFC 7541, sec 4.2: This dynamic table size update MUST occur at the
|
||||||
|
// beginning of the first header block following the change to the dynamic table size.
|
||||||
|
if d.dynTab.size > 0 {
|
||||||
|
return DecodingError{errors.New("dynamic table size update MUST occur at the beginning of a header block")}
|
||||||
|
}
|
||||||
|
|
||||||
buf := d.buf
|
buf := d.buf
|
||||||
size, buf, err := readVarInt(5, buf)
|
size, buf, err := readVarInt(5, buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
20
vendor/golang.org/x/net/http2/hpack/huffman.go
generated
vendored
20
vendor/golang.org/x/net/http2/hpack/huffman.go
generated
vendored
@ -47,6 +47,7 @@ var ErrInvalidHuffman = errors.New("hpack: invalid Huffman-encoded data")
|
|||||||
// If maxLen is greater than 0, attempts to write more to buf than
|
// If maxLen is greater than 0, attempts to write more to buf than
|
||||||
// maxLen bytes will return ErrStringLength.
|
// maxLen bytes will return ErrStringLength.
|
||||||
func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {
|
func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {
|
||||||
|
rootHuffmanNode := getRootHuffmanNode()
|
||||||
n := rootHuffmanNode
|
n := rootHuffmanNode
|
||||||
// cur is the bit buffer that has not been fed into n.
|
// cur is the bit buffer that has not been fed into n.
|
||||||
// cbits is the number of low order bits in cur that are valid.
|
// cbits is the number of low order bits in cur that are valid.
|
||||||
@ -106,7 +107,7 @@ func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {
|
|||||||
|
|
||||||
type node struct {
|
type node struct {
|
||||||
// children is non-nil for internal nodes
|
// children is non-nil for internal nodes
|
||||||
children []*node
|
children *[256]*node
|
||||||
|
|
||||||
// The following are only valid if children is nil:
|
// The following are only valid if children is nil:
|
||||||
codeLen uint8 // number of bits that led to the output of sym
|
codeLen uint8 // number of bits that led to the output of sym
|
||||||
@ -114,22 +115,31 @@ type node struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newInternalNode() *node {
|
func newInternalNode() *node {
|
||||||
return &node{children: make([]*node, 256)}
|
return &node{children: new([256]*node)}
|
||||||
}
|
}
|
||||||
|
|
||||||
var rootHuffmanNode = newInternalNode()
|
var (
|
||||||
|
buildRootOnce sync.Once
|
||||||
|
lazyRootHuffmanNode *node
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func getRootHuffmanNode() *node {
|
||||||
|
buildRootOnce.Do(buildRootHuffmanNode)
|
||||||
|
return lazyRootHuffmanNode
|
||||||
|
}
|
||||||
|
|
||||||
|
func buildRootHuffmanNode() {
|
||||||
if len(huffmanCodes) != 256 {
|
if len(huffmanCodes) != 256 {
|
||||||
panic("unexpected size")
|
panic("unexpected size")
|
||||||
}
|
}
|
||||||
|
lazyRootHuffmanNode = newInternalNode()
|
||||||
for i, code := range huffmanCodes {
|
for i, code := range huffmanCodes {
|
||||||
addDecoderNode(byte(i), code, huffmanCodeLen[i])
|
addDecoderNode(byte(i), code, huffmanCodeLen[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func addDecoderNode(sym byte, code uint32, codeLen uint8) {
|
func addDecoderNode(sym byte, code uint32, codeLen uint8) {
|
||||||
cur := rootHuffmanNode
|
cur := lazyRootHuffmanNode
|
||||||
for codeLen > 8 {
|
for codeLen > 8 {
|
||||||
codeLen -= 8
|
codeLen -= 8
|
||||||
i := uint8(code >> codeLen)
|
i := uint8(code >> codeLen)
|
||||||
|
8
vendor/golang.org/x/net/http2/http2.go
generated
vendored
8
vendor/golang.org/x/net/http2/http2.go
generated
vendored
@ -29,7 +29,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"golang.org/x/net/lex/httplex"
|
"golang.org/x/net/http/httpguts"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -179,7 +179,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// validWireHeaderFieldName reports whether v is a valid header field
|
// validWireHeaderFieldName reports whether v is a valid header field
|
||||||
// name (key). See httplex.ValidHeaderName for the base rules.
|
// name (key). See httpguts.ValidHeaderName for the base rules.
|
||||||
//
|
//
|
||||||
// Further, http2 says:
|
// Further, http2 says:
|
||||||
// "Just as in HTTP/1.x, header field names are strings of ASCII
|
// "Just as in HTTP/1.x, header field names are strings of ASCII
|
||||||
@ -191,7 +191,7 @@ func validWireHeaderFieldName(v string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
for _, r := range v {
|
for _, r := range v {
|
||||||
if !httplex.IsTokenRune(r) {
|
if !httpguts.IsTokenRune(r) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if 'A' <= r && r <= 'Z' {
|
if 'A' <= r && r <= 'Z' {
|
||||||
@ -312,7 +312,7 @@ func mustUint31(v int32) uint32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// bodyAllowedForStatus reports whether a given response status code
|
// bodyAllowedForStatus reports whether a given response status code
|
||||||
// permits a body. See RFC 2616, section 4.4.
|
// permits a body. See RFC 7230, section 3.3.
|
||||||
func bodyAllowedForStatus(status int) bool {
|
func bodyAllowedForStatus(status int) bool {
|
||||||
switch {
|
switch {
|
||||||
case status >= 100 && status <= 199:
|
case status >= 100 && status <= 199:
|
||||||
|
17
vendor/golang.org/x/net/http2/not_go111.go
generated
vendored
Normal file
17
vendor/golang.org/x/net/http2/not_go111.go
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
// +build !go1.11
|
||||||
|
|
||||||
|
package http2
|
||||||
|
|
||||||
|
import "net/textproto"
|
||||||
|
|
||||||
|
func traceHasWroteHeaderField(trace *clientTrace) bool { return false }
|
||||||
|
|
||||||
|
func traceWroteHeaderField(trace *clientTrace, k, v string) {}
|
||||||
|
|
||||||
|
func traceGot1xxResponseFunc(trace *clientTrace) func(int, textproto.MIMEHeader) error {
|
||||||
|
return nil
|
||||||
|
}
|
8
vendor/golang.org/x/net/http2/not_go17.go
generated
vendored
8
vendor/golang.org/x/net/http2/not_go17.go
generated
vendored
@ -8,6 +8,7 @@ package http2
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
|
"errors"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
@ -18,6 +19,8 @@ type contextContext interface {
|
|||||||
Err() error
|
Err() error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var errCanceled = errors.New("canceled")
|
||||||
|
|
||||||
type fakeContext struct{}
|
type fakeContext struct{}
|
||||||
|
|
||||||
func (fakeContext) Done() <-chan struct{} { return nil }
|
func (fakeContext) Done() <-chan struct{} { return nil }
|
||||||
@ -34,6 +37,7 @@ func setResponseUncompressed(res *http.Response) {
|
|||||||
type clientTrace struct{}
|
type clientTrace struct{}
|
||||||
|
|
||||||
func requestTrace(*http.Request) *clientTrace { return nil }
|
func requestTrace(*http.Request) *clientTrace { return nil }
|
||||||
|
func traceGetConn(*http.Request, string) {}
|
||||||
func traceGotConn(*http.Request, *ClientConn) {}
|
func traceGotConn(*http.Request, *ClientConn) {}
|
||||||
func traceFirstResponseByte(*clientTrace) {}
|
func traceFirstResponseByte(*clientTrace) {}
|
||||||
func traceWroteHeaders(*clientTrace) {}
|
func traceWroteHeaders(*clientTrace) {}
|
||||||
@ -84,4 +88,8 @@ func (cc *ClientConn) Ping(ctx contextContext) error {
|
|||||||
return cc.ping(ctx)
|
return cc.ping(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConn) Shutdown(ctx contextContext) error {
|
||||||
|
return cc.shutdown(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
func (t *Transport) idleConnTimeout() time.Duration { return 0 }
|
func (t *Transport) idleConnTimeout() time.Duration { return 0 }
|
||||||
|
131
vendor/golang.org/x/net/http2/server.go
generated
vendored
131
vendor/golang.org/x/net/http2/server.go
generated
vendored
@ -46,14 +46,16 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"golang.org/x/net/http/httpguts"
|
||||||
"golang.org/x/net/http2/hpack"
|
"golang.org/x/net/http2/hpack"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
prefaceTimeout = 10 * time.Second
|
prefaceTimeout = 10 * time.Second
|
||||||
firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway
|
firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway
|
||||||
handlerChunkWriteSize = 4 << 10
|
handlerChunkWriteSize = 4 << 10
|
||||||
defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to?
|
defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to?
|
||||||
|
maxQueuedControlFrames = 10000
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -161,6 +163,15 @@ func (s *Server) maxConcurrentStreams() uint32 {
|
|||||||
return defaultMaxStreams
|
return defaultMaxStreams
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// maxQueuedControlFrames is the maximum number of control frames like
|
||||||
|
// SETTINGS, PING and RST_STREAM that will be queued for writing before
|
||||||
|
// the connection is closed to prevent memory exhaustion attacks.
|
||||||
|
func (s *Server) maxQueuedControlFrames() int {
|
||||||
|
// TODO: if anybody asks, add a Server field, and remember to define the
|
||||||
|
// behavior of negative values.
|
||||||
|
return maxQueuedControlFrames
|
||||||
|
}
|
||||||
|
|
||||||
type serverInternalState struct {
|
type serverInternalState struct {
|
||||||
mu sync.Mutex
|
mu sync.Mutex
|
||||||
activeConns map[*serverConn]struct{}
|
activeConns map[*serverConn]struct{}
|
||||||
@ -406,7 +417,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) {
|
|||||||
// addresses during development.
|
// addresses during development.
|
||||||
//
|
//
|
||||||
// TODO: optionally enforce? Or enforce at the time we receive
|
// TODO: optionally enforce? Or enforce at the time we receive
|
||||||
// a new request, and verify the the ServerName matches the :authority?
|
// a new request, and verify the ServerName matches the :authority?
|
||||||
// But that precludes proxy situations, perhaps.
|
// But that precludes proxy situations, perhaps.
|
||||||
//
|
//
|
||||||
// So for now, do nothing here again.
|
// So for now, do nothing here again.
|
||||||
@ -469,6 +480,7 @@ type serverConn struct {
|
|||||||
sawFirstSettings bool // got the initial SETTINGS frame after the preface
|
sawFirstSettings bool // got the initial SETTINGS frame after the preface
|
||||||
needToSendSettingsAck bool
|
needToSendSettingsAck bool
|
||||||
unackedSettings int // how many SETTINGS have we sent without ACKs?
|
unackedSettings int // how many SETTINGS have we sent without ACKs?
|
||||||
|
queuedControlFrames int // control frames in the writeSched queue
|
||||||
clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit)
|
clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit)
|
||||||
advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client
|
advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client
|
||||||
curClientStreams uint32 // number of open streams initiated by the client
|
curClientStreams uint32 // number of open streams initiated by the client
|
||||||
@ -856,6 +868,14 @@ func (sc *serverConn) serve() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the peer is causing us to generate a lot of control frames,
|
||||||
|
// but not reading them from us, assume they are trying to make us
|
||||||
|
// run out of memory.
|
||||||
|
if sc.queuedControlFrames > sc.srv.maxQueuedControlFrames() {
|
||||||
|
sc.vlogf("http2: too many control frames in send queue, closing connection")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Start the shutdown timer after sending a GOAWAY. When sending GOAWAY
|
// Start the shutdown timer after sending a GOAWAY. When sending GOAWAY
|
||||||
// with no error code (graceful shutdown), don't start the timer until
|
// with no error code (graceful shutdown), don't start the timer until
|
||||||
// all open streams have been completed.
|
// all open streams have been completed.
|
||||||
@ -1055,6 +1075,14 @@ func (sc *serverConn) writeFrame(wr FrameWriteRequest) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !ignoreWrite {
|
if !ignoreWrite {
|
||||||
|
if wr.isControl() {
|
||||||
|
sc.queuedControlFrames++
|
||||||
|
// For extra safety, detect wraparounds, which should not happen,
|
||||||
|
// and pull the plug.
|
||||||
|
if sc.queuedControlFrames < 0 {
|
||||||
|
sc.conn.Close()
|
||||||
|
}
|
||||||
|
}
|
||||||
sc.writeSched.Push(wr)
|
sc.writeSched.Push(wr)
|
||||||
}
|
}
|
||||||
sc.scheduleFrameWrite()
|
sc.scheduleFrameWrite()
|
||||||
@ -1172,10 +1200,8 @@ func (sc *serverConn) wroteFrame(res frameWriteResult) {
|
|||||||
// If a frame is already being written, nothing happens. This will be called again
|
// If a frame is already being written, nothing happens. This will be called again
|
||||||
// when the frame is done being written.
|
// when the frame is done being written.
|
||||||
//
|
//
|
||||||
// If a frame isn't being written we need to send one, the best frame
|
// If a frame isn't being written and we need to send one, the best frame
|
||||||
// to send is selected, preferring first things that aren't
|
// to send is selected by writeSched.
|
||||||
// stream-specific (e.g. ACKing settings), and then finding the
|
|
||||||
// highest priority stream.
|
|
||||||
//
|
//
|
||||||
// If a frame isn't being written and there's nothing else to send, we
|
// If a frame isn't being written and there's nothing else to send, we
|
||||||
// flush the write buffer.
|
// flush the write buffer.
|
||||||
@ -1203,6 +1229,9 @@ func (sc *serverConn) scheduleFrameWrite() {
|
|||||||
}
|
}
|
||||||
if !sc.inGoAway || sc.goAwayCode == ErrCodeNo {
|
if !sc.inGoAway || sc.goAwayCode == ErrCodeNo {
|
||||||
if wr, ok := sc.writeSched.Pop(); ok {
|
if wr, ok := sc.writeSched.Pop(); ok {
|
||||||
|
if wr.isControl() {
|
||||||
|
sc.queuedControlFrames--
|
||||||
|
}
|
||||||
sc.startFrameWrite(wr)
|
sc.startFrameWrite(wr)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -1486,9 +1515,17 @@ func (sc *serverConn) processSettings(f *SettingsFrame) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
if f.NumSettings() > 100 || f.HasDuplicates() {
|
||||||
|
// This isn't actually in the spec, but hang up on
|
||||||
|
// suspiciously large settings frames or those with
|
||||||
|
// duplicate entries.
|
||||||
|
return ConnectionError(ErrCodeProtocol)
|
||||||
|
}
|
||||||
if err := f.ForeachSetting(sc.processSetting); err != nil {
|
if err := f.ForeachSetting(sc.processSetting); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// TODO: judging by RFC 7540, Section 6.5.3 each SETTINGS frame should be
|
||||||
|
// acknowledged individually, even if multiple are received before the ACK.
|
||||||
sc.needToSendSettingsAck = true
|
sc.needToSendSettingsAck = true
|
||||||
sc.scheduleFrameWrite()
|
sc.scheduleFrameWrite()
|
||||||
return nil
|
return nil
|
||||||
@ -1574,6 +1611,12 @@ func (sc *serverConn) processData(f *DataFrame) error {
|
|||||||
// type PROTOCOL_ERROR."
|
// type PROTOCOL_ERROR."
|
||||||
return ConnectionError(ErrCodeProtocol)
|
return ConnectionError(ErrCodeProtocol)
|
||||||
}
|
}
|
||||||
|
// RFC 7540, sec 6.1: If a DATA frame is received whose stream is not in
|
||||||
|
// "open" or "half-closed (local)" state, the recipient MUST respond with a
|
||||||
|
// stream error (Section 5.4.2) of type STREAM_CLOSED.
|
||||||
|
if state == stateClosed {
|
||||||
|
return streamError(id, ErrCodeStreamClosed)
|
||||||
|
}
|
||||||
if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {
|
if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {
|
||||||
// This includes sending a RST_STREAM if the stream is
|
// This includes sending a RST_STREAM if the stream is
|
||||||
// in stateHalfClosedLocal (which currently means that
|
// in stateHalfClosedLocal (which currently means that
|
||||||
@ -1607,7 +1650,10 @@ func (sc *serverConn) processData(f *DataFrame) error {
|
|||||||
// Sender sending more than they'd declared?
|
// Sender sending more than they'd declared?
|
||||||
if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes {
|
if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes {
|
||||||
st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes))
|
st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes))
|
||||||
return streamError(id, ErrCodeStreamClosed)
|
// RFC 7540, sec 8.1.2.6: A request or response is also malformed if the
|
||||||
|
// value of a content-length header field does not equal the sum of the
|
||||||
|
// DATA frame payload lengths that form the body.
|
||||||
|
return streamError(id, ErrCodeProtocol)
|
||||||
}
|
}
|
||||||
if f.Length > 0 {
|
if f.Length > 0 {
|
||||||
// Check whether the client has flow control quota.
|
// Check whether the client has flow control quota.
|
||||||
@ -1717,6 +1763,13 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error {
|
|||||||
// processing this frame.
|
// processing this frame.
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
// RFC 7540, sec 5.1: If an endpoint receives additional frames, other than
|
||||||
|
// WINDOW_UPDATE, PRIORITY, or RST_STREAM, for a stream that is in
|
||||||
|
// this state, it MUST respond with a stream error (Section 5.4.2) of
|
||||||
|
// type STREAM_CLOSED.
|
||||||
|
if st.state == stateHalfClosedRemote {
|
||||||
|
return streamError(id, ErrCodeStreamClosed)
|
||||||
|
}
|
||||||
return st.processTrailerHeaders(f)
|
return st.processTrailerHeaders(f)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1817,7 +1870,7 @@ func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error {
|
|||||||
if st.trailer != nil {
|
if st.trailer != nil {
|
||||||
for _, hf := range f.RegularFields() {
|
for _, hf := range f.RegularFields() {
|
||||||
key := sc.canonicalHeader(hf.Name)
|
key := sc.canonicalHeader(hf.Name)
|
||||||
if !ValidTrailerHeader(key) {
|
if !httpguts.ValidTrailerHeader(key) {
|
||||||
// TODO: send more details to the peer somehow. But http2 has
|
// TODO: send more details to the peer somehow. But http2 has
|
||||||
// no way to send debug data at a stream level. Discuss with
|
// no way to send debug data at a stream level. Discuss with
|
||||||
// HTTP folk.
|
// HTTP folk.
|
||||||
@ -2284,8 +2337,8 @@ func (rws *responseWriterState) hasTrailers() bool { return len(rws.trailers) !=
|
|||||||
// written in the trailers at the end of the response.
|
// written in the trailers at the end of the response.
|
||||||
func (rws *responseWriterState) declareTrailer(k string) {
|
func (rws *responseWriterState) declareTrailer(k string) {
|
||||||
k = http.CanonicalHeaderKey(k)
|
k = http.CanonicalHeaderKey(k)
|
||||||
if !ValidTrailerHeader(k) {
|
if !httpguts.ValidTrailerHeader(k) {
|
||||||
// Forbidden by RFC 2616 14.40.
|
// Forbidden by RFC 7230, section 4.1.2.
|
||||||
rws.conn.logf("ignoring invalid trailer %q", k)
|
rws.conn.logf("ignoring invalid trailer %q", k)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -2335,6 +2388,19 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {
|
|||||||
foreachHeaderElement(v, rws.declareTrailer)
|
foreachHeaderElement(v, rws.declareTrailer)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// "Connection" headers aren't allowed in HTTP/2 (RFC 7540, 8.1.2.2),
|
||||||
|
// but respect "Connection" == "close" to mean sending a GOAWAY and tearing
|
||||||
|
// down the TCP connection when idle, like we do for HTTP/1.
|
||||||
|
// TODO: remove more Connection-specific header fields here, in addition
|
||||||
|
// to "Connection".
|
||||||
|
if _, ok := rws.snapHeader["Connection"]; ok {
|
||||||
|
v := rws.snapHeader.Get("Connection")
|
||||||
|
delete(rws.snapHeader, "Connection")
|
||||||
|
if v == "close" {
|
||||||
|
rws.conn.startGracefulShutdown()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
endStream := (rws.handlerDone && !rws.hasTrailers() && len(p) == 0) || isHeadResp
|
endStream := (rws.handlerDone && !rws.hasTrailers() && len(p) == 0) || isHeadResp
|
||||||
err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{
|
err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{
|
||||||
streamID: rws.stream.id,
|
streamID: rws.stream.id,
|
||||||
@ -2406,7 +2472,7 @@ const TrailerPrefix = "Trailer:"
|
|||||||
// after the header has already been flushed. Because the Go
|
// after the header has already been flushed. Because the Go
|
||||||
// ResponseWriter interface has no way to set Trailers (only the
|
// ResponseWriter interface has no way to set Trailers (only the
|
||||||
// Header), and because we didn't want to expand the ResponseWriter
|
// Header), and because we didn't want to expand the ResponseWriter
|
||||||
// interface, and because nobody used trailers, and because RFC 2616
|
// interface, and because nobody used trailers, and because RFC 7230
|
||||||
// says you SHOULD (but not must) predeclare any trailers in the
|
// says you SHOULD (but not must) predeclare any trailers in the
|
||||||
// header, the official ResponseWriter rules said trailers in Go must
|
// header, the official ResponseWriter rules said trailers in Go must
|
||||||
// be predeclared, and then we reuse the same ResponseWriter.Header()
|
// be predeclared, and then we reuse the same ResponseWriter.Header()
|
||||||
@ -2790,7 +2856,7 @@ func (sc *serverConn) startPush(msg *startPushRequest) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// foreachHeaderElement splits v according to the "#rule" construction
|
// foreachHeaderElement splits v according to the "#rule" construction
|
||||||
// in RFC 2616 section 2.1 and calls fn for each non-empty element.
|
// in RFC 7230 section 7 and calls fn for each non-empty element.
|
||||||
func foreachHeaderElement(v string, fn func(string)) {
|
func foreachHeaderElement(v string, fn func(string)) {
|
||||||
v = textproto.TrimString(v)
|
v = textproto.TrimString(v)
|
||||||
if v == "" {
|
if v == "" {
|
||||||
@ -2838,41 +2904,6 @@ func new400Handler(err error) http.HandlerFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidTrailerHeader reports whether name is a valid header field name to appear
|
|
||||||
// in trailers.
|
|
||||||
// See: http://tools.ietf.org/html/rfc7230#section-4.1.2
|
|
||||||
func ValidTrailerHeader(name string) bool {
|
|
||||||
name = http.CanonicalHeaderKey(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,
|
|
||||||
}
|
|
||||||
|
|
||||||
// h1ServerKeepAlivesDisabled reports whether hs has its keep-alives
|
// h1ServerKeepAlivesDisabled reports whether hs has its keep-alives
|
||||||
// disabled. See comments on h1ServerShutdownChan above for why
|
// disabled. See comments on h1ServerShutdownChan above for why
|
||||||
// the code is written this way.
|
// the code is written this way.
|
||||||
|
228
vendor/golang.org/x/net/http2/transport.go
generated
vendored
228
vendor/golang.org/x/net/http2/transport.go
generated
vendored
@ -21,15 +21,16 @@ import (
|
|||||||
mathrand "math/rand"
|
mathrand "math/rand"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/textproto"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"golang.org/x/net/http/httpguts"
|
||||||
"golang.org/x/net/http2/hpack"
|
"golang.org/x/net/http2/hpack"
|
||||||
"golang.org/x/net/idna"
|
"golang.org/x/net/idna"
|
||||||
"golang.org/x/net/lex/httplex"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -159,6 +160,7 @@ type ClientConn struct {
|
|||||||
cond *sync.Cond // hold mu; broadcast on flow/closed changes
|
cond *sync.Cond // hold mu; broadcast on flow/closed changes
|
||||||
flow flow // our conn-level flow control quota (cs.flow is per stream)
|
flow flow // our conn-level flow control quota (cs.flow is per stream)
|
||||||
inflow flow // peer's conn-level flow control
|
inflow flow // peer's conn-level flow control
|
||||||
|
closing bool
|
||||||
closed bool
|
closed bool
|
||||||
wantSettingsAck bool // we sent a SETTINGS frame and haven't heard back
|
wantSettingsAck bool // we sent a SETTINGS frame and haven't heard back
|
||||||
goAway *GoAwayFrame // if non-nil, the GoAwayFrame we received
|
goAway *GoAwayFrame // if non-nil, the GoAwayFrame we received
|
||||||
@ -211,9 +213,10 @@ type clientStream struct {
|
|||||||
done chan struct{} // closed when stream remove from cc.streams map; close calls guarded by cc.mu
|
done chan struct{} // closed when stream remove from cc.streams map; close calls guarded by cc.mu
|
||||||
|
|
||||||
// owned by clientConnReadLoop:
|
// owned by clientConnReadLoop:
|
||||||
firstByte bool // got the first response byte
|
firstByte bool // got the first response byte
|
||||||
pastHeaders bool // got first MetaHeadersFrame (actual headers)
|
pastHeaders bool // got first MetaHeadersFrame (actual headers)
|
||||||
pastTrailers bool // got optional second MetaHeadersFrame (trailers)
|
pastTrailers bool // got optional second MetaHeadersFrame (trailers)
|
||||||
|
num1xx uint8 // number of 1xx responses seen
|
||||||
|
|
||||||
trailer http.Header // accumulated trailers
|
trailer http.Header // accumulated trailers
|
||||||
resTrailer *http.Header // client's Response.Trailer
|
resTrailer *http.Header // client's Response.Trailer
|
||||||
@ -237,6 +240,17 @@ func awaitRequestCancel(req *http.Request, done <-chan struct{}) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var got1xxFuncForTests func(int, textproto.MIMEHeader) error
|
||||||
|
|
||||||
|
// get1xxTraceFunc returns the value of request's httptrace.ClientTrace.Got1xxResponse func,
|
||||||
|
// if any. It returns nil if not set or if the Go version is too old.
|
||||||
|
func (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error {
|
||||||
|
if fn := got1xxFuncForTests; fn != nil {
|
||||||
|
return fn
|
||||||
|
}
|
||||||
|
return traceGot1xxResponseFunc(cs.trace)
|
||||||
|
}
|
||||||
|
|
||||||
// awaitRequestCancel waits for the user to cancel a request, its context to
|
// awaitRequestCancel waits for the user to cancel a request, its context to
|
||||||
// expire, or for the request to be done (any way it might be removed from the
|
// expire, or for the request to be done (any way it might be removed from the
|
||||||
// cc.streams map: peer reset, successful completion, TCP connection breakage,
|
// cc.streams map: peer reset, successful completion, TCP connection breakage,
|
||||||
@ -423,27 +437,36 @@ func shouldRetryRequest(req *http.Request, err error, afterBodyWrite bool) (*htt
|
|||||||
if !canRetryError(err) {
|
if !canRetryError(err) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if !afterBodyWrite {
|
|
||||||
return req, nil
|
|
||||||
}
|
|
||||||
// If the Body is nil (or http.NoBody), it's safe to reuse
|
// If the Body is nil (or http.NoBody), it's safe to reuse
|
||||||
// this request and its Body.
|
// this request and its Body.
|
||||||
if req.Body == nil || reqBodyIsNoBody(req.Body) {
|
if req.Body == nil || reqBodyIsNoBody(req.Body) {
|
||||||
return req, nil
|
return req, nil
|
||||||
}
|
}
|
||||||
// Otherwise we depend on the Request having its GetBody
|
|
||||||
// func defined.
|
// If the request body can be reset back to its original
|
||||||
|
// state via the optional req.GetBody, do that.
|
||||||
getBody := reqGetBody(req) // Go 1.8: getBody = req.GetBody
|
getBody := reqGetBody(req) // Go 1.8: getBody = req.GetBody
|
||||||
if getBody == nil {
|
if getBody != nil {
|
||||||
return nil, fmt.Errorf("http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error", err)
|
// TODO: consider a req.Body.Close here? or audit that all caller paths do?
|
||||||
|
body, err := getBody()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
newReq := *req
|
||||||
|
newReq.Body = body
|
||||||
|
return &newReq, nil
|
||||||
}
|
}
|
||||||
body, err := getBody()
|
|
||||||
if err != nil {
|
// The Request.Body can't reset back to the beginning, but we
|
||||||
return nil, err
|
// don't seem to have started to read from it yet, so reuse
|
||||||
|
// the request directly. The "afterBodyWrite" means the
|
||||||
|
// bodyWrite process has started, which becomes true before
|
||||||
|
// the first Read.
|
||||||
|
if !afterBodyWrite {
|
||||||
|
return req, nil
|
||||||
}
|
}
|
||||||
newReq := *req
|
|
||||||
newReq.Body = body
|
return nil, fmt.Errorf("http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error", err)
|
||||||
return &newReq, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func canRetryError(err error) bool {
|
func canRetryError(err error) bool {
|
||||||
@ -567,6 +590,10 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
|
|||||||
// henc in response to SETTINGS frames?
|
// henc in response to SETTINGS frames?
|
||||||
cc.henc = hpack.NewEncoder(&cc.hbuf)
|
cc.henc = hpack.NewEncoder(&cc.hbuf)
|
||||||
|
|
||||||
|
if t.AllowHTTP {
|
||||||
|
cc.nextStreamID = 3
|
||||||
|
}
|
||||||
|
|
||||||
if cs, ok := c.(connectionStater); ok {
|
if cs, ok := c.(connectionStater); ok {
|
||||||
state := cs.ConnectionState()
|
state := cs.ConnectionState()
|
||||||
cc.tlsState = &state
|
cc.tlsState = &state
|
||||||
@ -626,12 +653,32 @@ func (cc *ClientConn) CanTakeNewRequest() bool {
|
|||||||
return cc.canTakeNewRequestLocked()
|
return cc.canTakeNewRequestLocked()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cc *ClientConn) canTakeNewRequestLocked() bool {
|
// clientConnIdleState describes the suitability of a client
|
||||||
|
// connection to initiate a new RoundTrip request.
|
||||||
|
type clientConnIdleState struct {
|
||||||
|
canTakeNewRequest bool
|
||||||
|
freshConn bool // whether it's unused by any previous request
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConn) idleState() clientConnIdleState {
|
||||||
|
cc.mu.Lock()
|
||||||
|
defer cc.mu.Unlock()
|
||||||
|
return cc.idleStateLocked()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) {
|
||||||
if cc.singleUse && cc.nextStreamID > 1 {
|
if cc.singleUse && cc.nextStreamID > 1 {
|
||||||
return false
|
return
|
||||||
}
|
}
|
||||||
return cc.goAway == nil && !cc.closed &&
|
st.canTakeNewRequest = cc.goAway == nil && !cc.closed && !cc.closing &&
|
||||||
int64(cc.nextStreamID)+int64(cc.pendingRequests) < math.MaxInt32
|
int64(cc.nextStreamID)+int64(cc.pendingRequests) < math.MaxInt32
|
||||||
|
st.freshConn = cc.nextStreamID == 1 && st.canTakeNewRequest
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConn) canTakeNewRequestLocked() bool {
|
||||||
|
st := cc.idleStateLocked()
|
||||||
|
return st.canTakeNewRequest
|
||||||
}
|
}
|
||||||
|
|
||||||
// onIdleTimeout is called from a time.AfterFunc goroutine. It will
|
// onIdleTimeout is called from a time.AfterFunc goroutine. It will
|
||||||
@ -661,6 +708,88 @@ func (cc *ClientConn) closeIfIdle() {
|
|||||||
cc.tconn.Close()
|
cc.tconn.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var shutdownEnterWaitStateHook = func() {}
|
||||||
|
|
||||||
|
// Shutdown gracefully close the client connection, waiting for running streams to complete.
|
||||||
|
// Public implementation is in go17.go and not_go17.go
|
||||||
|
func (cc *ClientConn) shutdown(ctx contextContext) error {
|
||||||
|
if err := cc.sendGoAway(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// Wait for all in-flight streams to complete or connection to close
|
||||||
|
done := make(chan error, 1)
|
||||||
|
cancelled := false // guarded by cc.mu
|
||||||
|
go func() {
|
||||||
|
cc.mu.Lock()
|
||||||
|
defer cc.mu.Unlock()
|
||||||
|
for {
|
||||||
|
if len(cc.streams) == 0 || cc.closed {
|
||||||
|
cc.closed = true
|
||||||
|
done <- cc.tconn.Close()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if cancelled {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
cc.cond.Wait()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
shutdownEnterWaitStateHook()
|
||||||
|
select {
|
||||||
|
case err := <-done:
|
||||||
|
return err
|
||||||
|
case <-ctx.Done():
|
||||||
|
cc.mu.Lock()
|
||||||
|
// Free the goroutine above
|
||||||
|
cancelled = true
|
||||||
|
cc.cond.Broadcast()
|
||||||
|
cc.mu.Unlock()
|
||||||
|
return ctx.Err()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConn) sendGoAway() error {
|
||||||
|
cc.mu.Lock()
|
||||||
|
defer cc.mu.Unlock()
|
||||||
|
cc.wmu.Lock()
|
||||||
|
defer cc.wmu.Unlock()
|
||||||
|
if cc.closing {
|
||||||
|
// GOAWAY sent already
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// Send a graceful shutdown frame to server
|
||||||
|
maxStreamID := cc.nextStreamID
|
||||||
|
if err := cc.fr.WriteGoAway(maxStreamID, ErrCodeNo, nil); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := cc.bw.Flush(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// Prevent new requests
|
||||||
|
cc.closing = true
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close closes the client connection immediately.
|
||||||
|
//
|
||||||
|
// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
|
||||||
|
func (cc *ClientConn) Close() error {
|
||||||
|
cc.mu.Lock()
|
||||||
|
defer cc.cond.Broadcast()
|
||||||
|
defer cc.mu.Unlock()
|
||||||
|
err := errors.New("http2: client connection force closed via ClientConn.Close")
|
||||||
|
for id, cs := range cc.streams {
|
||||||
|
select {
|
||||||
|
case cs.resc <- resAndError{err: err}:
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
cs.bufPipe.CloseWithError(err)
|
||||||
|
delete(cc.streams, id)
|
||||||
|
}
|
||||||
|
cc.closed = true
|
||||||
|
return cc.tconn.Close()
|
||||||
|
}
|
||||||
|
|
||||||
const maxAllocFrameSize = 512 << 10
|
const maxAllocFrameSize = 512 << 10
|
||||||
|
|
||||||
// frameBuffer returns a scratch buffer suitable for writing DATA frames.
|
// frameBuffer returns a scratch buffer suitable for writing DATA frames.
|
||||||
@ -743,7 +872,7 @@ func checkConnHeaders(req *http.Request) error {
|
|||||||
if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") {
|
if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") {
|
||||||
return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv)
|
return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv)
|
||||||
}
|
}
|
||||||
if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "close" && vv[0] != "keep-alive") {
|
if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !strings.EqualFold(vv[0], "close") && !strings.EqualFold(vv[0], "keep-alive")) {
|
||||||
return fmt.Errorf("http2: invalid Connection request header: %q", vv)
|
return fmt.Errorf("http2: invalid Connection request header: %q", vv)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -931,6 +1060,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
cc.forgetStreamID(cs.ID)
|
||||||
return nil, cs.getStartedWrite(), err
|
return nil, cs.getStartedWrite(), err
|
||||||
}
|
}
|
||||||
bodyWritten = true
|
bodyWritten = true
|
||||||
@ -951,6 +1081,9 @@ func (cc *ClientConn) awaitOpenSlotForRequest(req *http.Request) error {
|
|||||||
for {
|
for {
|
||||||
cc.lastActive = time.Now()
|
cc.lastActive = time.Now()
|
||||||
if cc.closed || !cc.canTakeNewRequestLocked() {
|
if cc.closed || !cc.canTakeNewRequestLocked() {
|
||||||
|
if waitingForConn != nil {
|
||||||
|
close(waitingForConn)
|
||||||
|
}
|
||||||
return errClientConnUnusable
|
return errClientConnUnusable
|
||||||
}
|
}
|
||||||
if int64(len(cc.streams))+1 <= int64(cc.maxConcurrentStreams) {
|
if int64(len(cc.streams))+1 <= int64(cc.maxConcurrentStreams) {
|
||||||
@ -1049,6 +1182,7 @@ func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (
|
|||||||
sawEOF = true
|
sawEOF = true
|
||||||
err = nil
|
err = nil
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
|
cc.writeStreamReset(cs.ID, ErrCodeCancel, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1174,7 +1308,7 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail
|
|||||||
if host == "" {
|
if host == "" {
|
||||||
host = req.URL.Host
|
host = req.URL.Host
|
||||||
}
|
}
|
||||||
host, err := httplex.PunycodeHostPort(host)
|
host, err := httpguts.PunycodeHostPort(host)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1199,11 +1333,11 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail
|
|||||||
// potentially pollute our hpack state. (We want to be able to
|
// potentially pollute our hpack state. (We want to be able to
|
||||||
// continue to reuse the hpack encoder for future requests)
|
// continue to reuse the hpack encoder for future requests)
|
||||||
for k, vv := range req.Header {
|
for k, vv := range req.Header {
|
||||||
if !httplex.ValidHeaderFieldName(k) {
|
if !httpguts.ValidHeaderFieldName(k) {
|
||||||
return nil, fmt.Errorf("invalid HTTP header name %q", k)
|
return nil, fmt.Errorf("invalid HTTP header name %q", k)
|
||||||
}
|
}
|
||||||
for _, v := range vv {
|
for _, v := range vv {
|
||||||
if !httplex.ValidHeaderFieldValue(v) {
|
if !httpguts.ValidHeaderFieldValue(v) {
|
||||||
return nil, fmt.Errorf("invalid HTTP header value %q for header %q", v, k)
|
return nil, fmt.Errorf("invalid HTTP header value %q for header %q", v, k)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1284,9 +1418,16 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail
|
|||||||
return nil, errRequestHeaderListSize
|
return nil, errRequestHeaderListSize
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trace := requestTrace(req)
|
||||||
|
traceHeaders := traceHasWroteHeaderField(trace)
|
||||||
|
|
||||||
// Header list size is ok. Write the headers.
|
// Header list size is ok. Write the headers.
|
||||||
enumerateHeaders(func(name, value string) {
|
enumerateHeaders(func(name, value string) {
|
||||||
cc.writeHeader(strings.ToLower(name), value)
|
name = strings.ToLower(name)
|
||||||
|
cc.writeHeader(name, value)
|
||||||
|
if traceHeaders {
|
||||||
|
traceWroteHeaderField(trace, name, value)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
return cc.hbuf.Bytes(), nil
|
return cc.hbuf.Bytes(), nil
|
||||||
@ -1608,8 +1749,7 @@ func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error {
|
|||||||
// is the detail.
|
// is the detail.
|
||||||
//
|
//
|
||||||
// As a special case, handleResponse may return (nil, nil) to skip the
|
// As a special case, handleResponse may return (nil, nil) to skip the
|
||||||
// frame (currently only used for 100 expect continue). This special
|
// frame (currently only used for 1xx responses).
|
||||||
// case is going away after Issue 13851 is fixed.
|
|
||||||
func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) {
|
func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) {
|
||||||
if f.Truncated {
|
if f.Truncated {
|
||||||
return nil, errResponseHeaderListSize
|
return nil, errResponseHeaderListSize
|
||||||
@ -1624,15 +1764,6 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
|||||||
return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
|
return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
|
||||||
}
|
}
|
||||||
|
|
||||||
if statusCode == 100 {
|
|
||||||
traceGot100Continue(cs.trace)
|
|
||||||
if cs.on100 != nil {
|
|
||||||
cs.on100() // forces any write delay timer to fire
|
|
||||||
}
|
|
||||||
cs.pastHeaders = false // do it all again
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
header := make(http.Header)
|
header := make(http.Header)
|
||||||
res := &http.Response{
|
res := &http.Response{
|
||||||
Proto: "HTTP/2.0",
|
Proto: "HTTP/2.0",
|
||||||
@ -1657,6 +1788,27 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if statusCode >= 100 && statusCode <= 199 {
|
||||||
|
cs.num1xx++
|
||||||
|
const max1xxResponses = 5 // arbitrary bound on number of informational responses, same as net/http
|
||||||
|
if cs.num1xx > max1xxResponses {
|
||||||
|
return nil, errors.New("http2: too many 1xx informational responses")
|
||||||
|
}
|
||||||
|
if fn := cs.get1xxTraceFunc(); fn != nil {
|
||||||
|
if err := fn(statusCode, textproto.MIMEHeader(header)); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if statusCode == 100 {
|
||||||
|
traceGot100Continue(cs.trace)
|
||||||
|
if cs.on100 != nil {
|
||||||
|
cs.on100() // forces any write delay timer to fire
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cs.pastHeaders = false // do it all again
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
streamEnded := f.StreamEnded()
|
streamEnded := f.StreamEnded()
|
||||||
isHead := cs.req.Method == "HEAD"
|
isHead := cs.req.Method == "HEAD"
|
||||||
if !streamEnded || isHead {
|
if !streamEnded || isHead {
|
||||||
@ -2244,7 +2396,7 @@ func (t *Transport) getBodyWriterState(cs *clientStream, body io.Reader) (s body
|
|||||||
}
|
}
|
||||||
s.delay = t.expectContinueTimeout()
|
s.delay = t.expectContinueTimeout()
|
||||||
if s.delay == 0 ||
|
if s.delay == 0 ||
|
||||||
!httplex.HeaderValuesContainsToken(
|
!httpguts.HeaderValuesContainsToken(
|
||||||
cs.req.Header["Expect"],
|
cs.req.Header["Expect"],
|
||||||
"100-continue") {
|
"100-continue") {
|
||||||
return
|
return
|
||||||
@ -2299,5 +2451,5 @@ func (s bodyWriterState) scheduleBodyWrite() {
|
|||||||
// isConnectionCloseRequest reports whether req should use its own
|
// isConnectionCloseRequest reports whether req should use its own
|
||||||
// connection for a single request and then close the connection.
|
// connection for a single request and then close the connection.
|
||||||
func isConnectionCloseRequest(req *http.Request) bool {
|
func isConnectionCloseRequest(req *http.Request) bool {
|
||||||
return req.Close || httplex.HeaderValuesContainsToken(req.Header["Connection"], "close")
|
return req.Close || httpguts.HeaderValuesContainsToken(req.Header["Connection"], "close")
|
||||||
}
|
}
|
||||||
|
4
vendor/golang.org/x/net/http2/write.go
generated
vendored
4
vendor/golang.org/x/net/http2/write.go
generated
vendored
@ -11,8 +11,8 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
|
||||||
|
"golang.org/x/net/http/httpguts"
|
||||||
"golang.org/x/net/http2/hpack"
|
"golang.org/x/net/http2/hpack"
|
||||||
"golang.org/x/net/lex/httplex"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// writeFramer is implemented by any type that is used to write frames.
|
// writeFramer is implemented by any type that is used to write frames.
|
||||||
@ -350,7 +350,7 @@ func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) {
|
|||||||
}
|
}
|
||||||
isTE := k == "transfer-encoding"
|
isTE := k == "transfer-encoding"
|
||||||
for _, v := range vv {
|
for _, v := range vv {
|
||||||
if !httplex.ValidHeaderFieldValue(v) {
|
if !httpguts.ValidHeaderFieldValue(v) {
|
||||||
// TODO: return an error? golang.org/issue/14048
|
// TODO: return an error? golang.org/issue/14048
|
||||||
// For now just omit it.
|
// For now just omit it.
|
||||||
continue
|
continue
|
||||||
|
8
vendor/golang.org/x/net/http2/writesched.go
generated
vendored
8
vendor/golang.org/x/net/http2/writesched.go
generated
vendored
@ -32,7 +32,7 @@ type WriteScheduler interface {
|
|||||||
|
|
||||||
// Pop dequeues the next frame to write. Returns false if no frames can
|
// Pop dequeues the next frame to write. Returns false if no frames can
|
||||||
// be written. Frames with a given wr.StreamID() are Pop'd in the same
|
// be written. Frames with a given wr.StreamID() are Pop'd in the same
|
||||||
// order they are Push'd.
|
// order they are Push'd. No frames should be discarded except by CloseStream.
|
||||||
Pop() (wr FrameWriteRequest, ok bool)
|
Pop() (wr FrameWriteRequest, ok bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,6 +76,12 @@ func (wr FrameWriteRequest) StreamID() uint32 {
|
|||||||
return wr.stream.id
|
return wr.stream.id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isControl reports whether wr is a control frame for MaxQueuedControlFrames
|
||||||
|
// purposes. That includes non-stream frames and RST_STREAM frames.
|
||||||
|
func (wr FrameWriteRequest) isControl() bool {
|
||||||
|
return wr.stream == nil
|
||||||
|
}
|
||||||
|
|
||||||
// DataSize returns the number of flow control bytes that must be consumed
|
// DataSize returns the number of flow control bytes that must be consumed
|
||||||
// to write this entire frame. This is 0 for non-DATA frames.
|
// to write this entire frame. This is 0 for non-DATA frames.
|
||||||
func (wr FrameWriteRequest) DataSize() int {
|
func (wr FrameWriteRequest) DataSize() int {
|
||||||
|
17
vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go
generated
vendored
17
vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go
generated
vendored
@ -31,14 +31,19 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import strings "strings"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
math "math"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go
generated
vendored
@ -36,16 +36,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
24
vendor/k8s.io/api/apps/v1/generated.pb.go
generated
vendored
24
vendor/k8s.io/api/apps/v1/generated.pb.go
generated
vendored
@ -55,19 +55,25 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
math "math"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
26
vendor/k8s.io/api/apps/v1beta1/generated.pb.go
generated
vendored
26
vendor/k8s.io/api/apps/v1beta1/generated.pb.go
generated
vendored
@ -48,21 +48,27 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
math "math"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
26
vendor/k8s.io/api/apps/v1beta2/generated.pb.go
generated
vendored
26
vendor/k8s.io/api/apps/v1beta2/generated.pb.go
generated
vendored
@ -58,21 +58,27 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta2
|
package v1beta2
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
math "math"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
17
vendor/k8s.io/api/auditregistration/v1alpha1/generated.pb.go
generated
vendored
17
vendor/k8s.io/api/auditregistration/v1alpha1/generated.pb.go
generated
vendored
@ -35,14 +35,19 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import strings "strings"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
math "math"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
21
vendor/k8s.io/api/authentication/v1/generated.pb.go
generated
vendored
21
vendor/k8s.io/api/authentication/v1/generated.pb.go
generated
vendored
@ -36,18 +36,23 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
math "math"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/authentication/v1beta1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/authentication/v1beta1/generated.pb.go
generated
vendored
@ -32,16 +32,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/authorization/v1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/authorization/v1/generated.pb.go
generated
vendored
@ -41,16 +41,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/authorization/v1beta1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/authorization/v1beta1/generated.pb.go
generated
vendored
@ -41,16 +41,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
24
vendor/k8s.io/api/autoscaling/v1/generated.pb.go
generated
vendored
24
vendor/k8s.io/api/autoscaling/v1/generated.pb.go
generated
vendored
@ -46,19 +46,25 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
math "math"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
24
vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go
generated
vendored
24
vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go
generated
vendored
@ -43,19 +43,25 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v2beta1
|
package v2beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
math "math"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
24
vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go
generated
vendored
24
vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go
generated
vendored
@ -46,19 +46,25 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v2beta2
|
package v2beta2
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
math "math"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
22
vendor/k8s.io/api/batch/v1/generated.pb.go
generated
vendored
22
vendor/k8s.io/api/batch/v1/generated.pb.go
generated
vendored
@ -32,17 +32,23 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
22
vendor/k8s.io/api/batch/v1beta1/generated.pb.go
generated
vendored
22
vendor/k8s.io/api/batch/v1beta1/generated.pb.go
generated
vendored
@ -33,17 +33,23 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
22
vendor/k8s.io/api/batch/v2alpha1/generated.pb.go
generated
vendored
22
vendor/k8s.io/api/batch/v2alpha1/generated.pb.go
generated
vendored
@ -33,17 +33,23 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v2alpha1
|
package v2alpha1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/certificates/v1beta1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/certificates/v1beta1/generated.pb.go
generated
vendored
@ -33,16 +33,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/coordination/v1beta1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/coordination/v1beta1/generated.pb.go
generated
vendored
@ -30,16 +30,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
29
vendor/k8s.io/api/core/v1/generated.pb.go
generated
vendored
29
vendor/k8s.io/api/core/v1/generated.pb.go
generated
vendored
@ -223,22 +223,29 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
import k8s_io_apimachinery_pkg_runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types"
|
math "math"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
|
||||||
|
k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types"
|
||||||
|
|
||||||
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/events/v1beta1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/events/v1beta1/generated.pb.go
generated
vendored
@ -30,16 +30,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
26
vendor/k8s.io/api/extensions/v1beta1/generated.pb.go
generated
vendored
26
vendor/k8s.io/api/extensions/v1beta1/generated.pb.go
generated
vendored
@ -82,21 +82,27 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
math "math"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
23
vendor/k8s.io/api/networking/v1/generated.pb.go
generated
vendored
23
vendor/k8s.io/api/networking/v1/generated.pb.go
generated
vendored
@ -35,20 +35,25 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
math "math"
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
26
vendor/k8s.io/api/policy/v1beta1/generated.pb.go
generated
vendored
26
vendor/k8s.io/api/policy/v1beta1/generated.pb.go
generated
vendored
@ -44,21 +44,27 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
math "math"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/rbac/v1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/rbac/v1/generated.pb.go
generated
vendored
@ -39,16 +39,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go
generated
vendored
@ -39,16 +39,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/rbac/v1beta1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/rbac/v1beta1/generated.pb.go
generated
vendored
@ -39,16 +39,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
17
vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go
generated
vendored
17
vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go
generated
vendored
@ -29,14 +29,19 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import strings "strings"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
math "math"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
17
vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go
generated
vendored
17
vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go
generated
vendored
@ -29,14 +29,19 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import strings "strings"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
math "math"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/settings/v1alpha1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/settings/v1alpha1/generated.pb.go
generated
vendored
@ -30,16 +30,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
21
vendor/k8s.io/api/storage/v1/generated.pb.go
generated
vendored
21
vendor/k8s.io/api/storage/v1/generated.pb.go
generated
vendored
@ -35,18 +35,23 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
math "math"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
19
vendor/k8s.io/api/storage/v1alpha1/generated.pb.go
generated
vendored
19
vendor/k8s.io/api/storage/v1alpha1/generated.pb.go
generated
vendored
@ -33,16 +33,21 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
21
vendor/k8s.io/api/storage/v1beta1/generated.pb.go
generated
vendored
21
vendor/k8s.io/api/storage/v1beta1/generated.pb.go
generated
vendored
@ -35,18 +35,23 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
math "math"
|
||||||
|
|
||||||
import strings "strings"
|
k8s_io_api_core_v1 "k8s.io/api/core/v1"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
10
vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go
generated
vendored
10
vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go
generated
vendored
@ -28,9 +28,13 @@ It has these top-level messages:
|
|||||||
*/
|
*/
|
||||||
package resource
|
package resource
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
|
math "math"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
26
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go
generated
vendored
26
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go
generated
vendored
@ -66,21 +66,27 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import k8s_io_apimachinery_pkg_runtime "k8s.io/apimachinery/pkg/runtime"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
import time "time"
|
math "math"
|
||||||
import k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types"
|
|
||||||
|
|
||||||
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
k8s_io_apimachinery_pkg_runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
|
||||||
import strings "strings"
|
time "time"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types"
|
||||||
|
|
||||||
|
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
17
vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go
generated
vendored
17
vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go
generated
vendored
@ -30,14 +30,19 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import strings "strings"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
math "math"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
17
vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go
generated
vendored
17
vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go
generated
vendored
@ -30,14 +30,19 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import strings "strings"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
math "math"
|
||||||
|
|
||||||
|
strings "strings"
|
||||||
|
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
10
vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.pb.go
generated
vendored
10
vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.pb.go
generated
vendored
@ -27,9 +27,13 @@ It has these top-level messages:
|
|||||||
*/
|
*/
|
||||||
package schema
|
package schema
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
|
math "math"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
12
vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go
generated
vendored
12
vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go
generated
vendored
@ -28,11 +28,15 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
package intstr
|
package intstr
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
|
||||||
|
|
||||||
import io "io"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
|
||||||
|
math "math"
|
||||||
|
|
||||||
|
io "io"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
|
Loading…
x
Reference in New Issue
Block a user