diff --git a/transport/tlsconfig_clone.go b/transport/tlsconfig_clone.go index 033d5dc0f2..034bc01d33 100644 --- a/transport/tlsconfig_clone.go +++ b/transport/tlsconfig_clone.go @@ -1,4 +1,4 @@ -// +build !go1.7,!windows +// +build go1.8 package transport diff --git a/transport/tlsconfig_clone_go16.go b/transport/tlsconfig_clone_go16.go new file mode 100644 index 0000000000..12f13e4694 --- /dev/null +++ b/transport/tlsconfig_clone_go16.go @@ -0,0 +1,31 @@ +// +build go1.6,!go1.7 + +package transport + +import "crypto/tls" + +// TLSConfigClone returns a clone of tls.Config. This function is provided for +// compatibility for go1.6 that doesn't include this method in stdlib. +func TLSConfigClone(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, + } +} diff --git a/transport/tlsconfig_clone_go17.go b/transport/tlsconfig_clone_go17.go index a28c9141b2..50bf389e43 100644 --- a/transport/tlsconfig_clone_go17.go +++ b/transport/tlsconfig_clone_go17.go @@ -1,4 +1,4 @@ -// +build go1.7 +// +build go1.7,!go1.8 package transport