Permalink
Cannot retrieve contributors at this time
// Copyright 2013 The Gorilla WebSocket 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 websocket | |
import "crypto/tls" | |
// cloneTLSConfig clones all public fields except the fields | |
// SessionTicketsDisabled and SessionTicketKey. This avoids copying the | |
// sync.Mutex in the sync.Once and makes it safe to call cloneTLSConfig on a | |
// config in active use. | |
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, | |
ClientSessionCache: cfg.ClientSessionCache, | |
MinVersion: cfg.MinVersion, | |
MaxVersion: cfg.MaxVersion, | |
CurvePreferences: cfg.CurvePreferences, | |
} | |
} |