|
|
|
@ -0,0 +1,34 @@ |
|
|
|
// +build go1.6
|
|
|
|
|
|
|
|
package graceful |
|
|
|
|
|
|
|
import "crypto/tls" |
|
|
|
|
|
|
|
// cloneTLSConfig was taken from the Go standard library's net/http package. We
|
|
|
|
// need it because tls.Config objects now contain a sync.Once.
|
|
|
|
func cloneTLSConfig(cfg *tls.Config) *tls.Config { |
|
|
|
if cfg == nil { |
|
|
|
return &tls.Config{} |
|
|
|
} |
|
|
|
return &tls.Config{ |
|
|
|
Rand: cfg.Rand, |
|
|
|
Time: cfg.Time, |
|
|
|
Certificates: cfg.Certificates, |
|
|
|
NameToCertificate: cfg.NameToCertificate, |
|
|
|
GetCertificate: cfg.GetCertificate, |
|
|
|
RootCAs: cfg.RootCAs, |
|
|
|
NextProtos: cfg.NextProtos, |
|
|
|
ServerName: cfg.ServerName, |
|
|
|
ClientAuth: cfg.ClientAuth, |
|
|
|
ClientCAs: cfg.ClientCAs, |
|
|
|
InsecureSkipVerify: cfg.InsecureSkipVerify, |
|
|
|
CipherSuites: cfg.CipherSuites, |
|
|
|
PreferServerCipherSuites: cfg.PreferServerCipherSuites, |
|
|
|
SessionTicketsDisabled: cfg.SessionTicketsDisabled, |
|
|
|
SessionTicketKey: cfg.SessionTicketKey, |
|
|
|
ClientSessionCache: cfg.ClientSessionCache, |
|
|
|
MinVersion: cfg.MinVersion, |
|
|
|
MaxVersion: cfg.MaxVersion, |
|
|
|
CurvePreferences: cfg.CurvePreferences, |
|
|
|
} |
|
|
|
} |