client: transport: fix tlsconfig Clone() on different Golang versions

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
This commit is contained in:
Akihiro Suda 2016-09-08 04:38:55 +00:00
parent 3fff6acaa1
commit d675c81577
3 changed files with 33 additions and 2 deletions

View File

@ -1,4 +1,4 @@
// +build !go1.7,!windows
// +build go1.8
package transport

View File

@ -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,
}
}

View File

@ -1,4 +1,4 @@
// +build go1.7
// +build go1.7,!go1.8
package transport