mirror of
https://github.com/golang/net.git
synced 2026-03-31 10:27:08 +09:00
http2: fix all vet warnings
Updates golang/go#16228 Updates golang/go#11041 Change-Id: I2b50c2f4bfaae2d9ad59bc78e1c7c3e807f08075 Reviewed-on: https://go-review.googlesource.com/28344 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
36
http2/go17_not18.go
Normal file
36
http2/go17_not18.go
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2016 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.7,!go1.8
|
||||
|
||||
package http2
|
||||
|
||||
import "crypto/tls"
|
||||
|
||||
// temporary copy of Go 1.7's private tls.Config.clone:
|
||||
func cloneTLSConfig(c *tls.Config) *tls.Config {
|
||||
return &tls.Config{
|
||||
Rand: c.Rand,
|
||||
Time: c.Time,
|
||||
Certificates: c.Certificates,
|
||||
NameToCertificate: c.NameToCertificate,
|
||||
GetCertificate: c.GetCertificate,
|
||||
RootCAs: c.RootCAs,
|
||||
NextProtos: c.NextProtos,
|
||||
ServerName: c.ServerName,
|
||||
ClientAuth: c.ClientAuth,
|
||||
ClientCAs: c.ClientCAs,
|
||||
InsecureSkipVerify: c.InsecureSkipVerify,
|
||||
CipherSuites: c.CipherSuites,
|
||||
PreferServerCipherSuites: c.PreferServerCipherSuites,
|
||||
SessionTicketsDisabled: c.SessionTicketsDisabled,
|
||||
SessionTicketKey: c.SessionTicketKey,
|
||||
ClientSessionCache: c.ClientSessionCache,
|
||||
MinVersion: c.MinVersion,
|
||||
MaxVersion: c.MaxVersion,
|
||||
CurvePreferences: c.CurvePreferences,
|
||||
DynamicRecordSizingDisabled: c.DynamicRecordSizingDisabled,
|
||||
Renegotiation: c.Renegotiation,
|
||||
}
|
||||
}
|
||||
11
http2/go18.go
Normal file
11
http2/go18.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// Copyright 2015 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.8
|
||||
|
||||
package http2
|
||||
|
||||
import "crypto/tls"
|
||||
|
||||
func cloneTLSConfig(c *tls.Config) *tls.Config { return c.Clone() }
|
||||
@@ -7,6 +7,7 @@
|
||||
package http2
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"net"
|
||||
"net/http"
|
||||
)
|
||||
@@ -49,3 +50,28 @@ func contextWithCancel(ctx contextContext) (_ contextContext, cancel func()) {
|
||||
func requestWithContext(req *http.Request, ctx contextContext) *http.Request {
|
||||
return req
|
||||
}
|
||||
|
||||
// temporary copy of Go 1.6's private tls.Config.clone:
|
||||
func cloneTLSConfig(c *tls.Config) *tls.Config {
|
||||
return &tls.Config{
|
||||
Rand: c.Rand,
|
||||
Time: c.Time,
|
||||
Certificates: c.Certificates,
|
||||
NameToCertificate: c.NameToCertificate,
|
||||
GetCertificate: c.GetCertificate,
|
||||
RootCAs: c.RootCAs,
|
||||
NextProtos: c.NextProtos,
|
||||
ServerName: c.ServerName,
|
||||
ClientAuth: c.ClientAuth,
|
||||
ClientCAs: c.ClientCAs,
|
||||
InsecureSkipVerify: c.InsecureSkipVerify,
|
||||
CipherSuites: c.CipherSuites,
|
||||
PreferServerCipherSuites: c.PreferServerCipherSuites,
|
||||
SessionTicketsDisabled: c.SessionTicketsDisabled,
|
||||
SessionTicketKey: c.SessionTicketKey,
|
||||
ClientSessionCache: c.ClientSessionCache,
|
||||
MinVersion: c.MinVersion,
|
||||
MaxVersion: c.MaxVersion,
|
||||
CurvePreferences: c.CurvePreferences,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2931,51 +2931,43 @@ func (c *issue53Conn) SetWriteDeadline(t time.Time) error { return nil }
|
||||
// golang.org/issue/12895
|
||||
func TestConfigureServer(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
in http.Server
|
||||
wantErr string
|
||||
name string
|
||||
tlsConfig *tls.Config
|
||||
wantErr string
|
||||
}{
|
||||
{
|
||||
name: "empty server",
|
||||
in: http.Server{},
|
||||
},
|
||||
{
|
||||
name: "just the required cipher suite",
|
||||
in: http.Server{
|
||||
TLSConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256},
|
||||
},
|
||||
tlsConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "missing required cipher suite",
|
||||
in: http.Server{
|
||||
TLSConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384},
|
||||
},
|
||||
tlsConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384},
|
||||
},
|
||||
wantErr: "is missing HTTP/2-required TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
||||
},
|
||||
{
|
||||
name: "required after bad",
|
||||
in: http.Server{
|
||||
TLSConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_RSA_WITH_RC4_128_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256},
|
||||
},
|
||||
tlsConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_RSA_WITH_RC4_128_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256},
|
||||
},
|
||||
wantErr: "contains an HTTP/2-approved cipher suite (0xc02f), but it comes after",
|
||||
},
|
||||
{
|
||||
name: "bad after required",
|
||||
in: http.Server{
|
||||
TLSConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_RC4_128_SHA},
|
||||
},
|
||||
tlsConfig: &tls.Config{
|
||||
CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_RC4_128_SHA},
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
err := ConfigureServer(&tt.in, nil)
|
||||
srv := &http.Server{TLSConfig: tt.tlsConfig}
|
||||
err := ConfigureServer(srv, nil)
|
||||
if (err != nil) != (tt.wantErr != "") {
|
||||
if tt.wantErr != "" {
|
||||
t.Errorf("%s: success, but want error", tt.name)
|
||||
@@ -2986,7 +2978,7 @@ func TestConfigureServer(t *testing.T) {
|
||||
if err != nil && tt.wantErr != "" && !strings.Contains(err.Error(), tt.wantErr) {
|
||||
t.Errorf("%s: err = %v; want substring %q", tt.name, err, tt.wantErr)
|
||||
}
|
||||
if err == nil && !tt.in.TLSConfig.PreferServerCipherSuites {
|
||||
if err == nil && !srv.TLSConfig.PreferServerCipherSuites {
|
||||
t.Errorf("%s: PreferServerCipherSuite is false; want true", tt.name)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,7 +356,7 @@ func (t *Transport) dialClientConn(addr string, singleUse bool) (*ClientConn, er
|
||||
func (t *Transport) newTLSConfig(host string) *tls.Config {
|
||||
cfg := new(tls.Config)
|
||||
if t.TLSClientConfig != nil {
|
||||
*cfg = *t.TLSClientConfig
|
||||
*cfg = *cloneTLSConfig(t.TLSClientConfig)
|
||||
}
|
||||
if !strSliceContains(cfg.NextProtos, NextProtoTLS) {
|
||||
cfg.NextProtos = append([]string{NextProtoTLS}, cfg.NextProtos...)
|
||||
|
||||
@@ -510,7 +510,7 @@ func TestConfigureTransport(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got := fmt.Sprintf("%#v", *t1); !strings.Contains(got, `"h2"`) {
|
||||
if got := fmt.Sprintf("%#v", t1); !strings.Contains(got, `"h2"`) {
|
||||
// Laziness, to avoid buildtags.
|
||||
t.Errorf("stringification of HTTP/1 transport didn't contain \"h2\": %v", got)
|
||||
}
|
||||
@@ -2105,7 +2105,7 @@ func testTransportUsesGoAwayDebugError(t *testing.T, failMidBody bool) {
|
||||
DebugData: goAwayDebugData,
|
||||
}
|
||||
if !reflect.DeepEqual(err, want) {
|
||||
t.Errorf("RoundTrip error = %T: %#v, want %T (%#T)", err, err, want, want)
|
||||
t.Errorf("RoundTrip error = %T: %#v, want %T (%#v)", err, err, want, want)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user