OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / github.com / gorilla / websocket / client_clone_legacy.go
diff --git a/vendor/github.com/gorilla/websocket/client_clone_legacy.go b/vendor/github.com/gorilla/websocket/client_clone_legacy.go
new file mode 100644 (file)
index 0000000..babb007
--- /dev/null
@@ -0,0 +1,38 @@
+// 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,
+       }
+}