OSDN Git Service

new repo
[bytom/vapor.git] / vendor / google.golang.org / grpc / credentials / credentials_util_pre_go17.go
1 // +build !go1.7
2
3 /*
4  *
5  * Copyright 2016 gRPC authors.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 package credentials
22
23 import (
24         "crypto/tls"
25 )
26
27 // cloneTLSConfig returns a shallow clone of the exported
28 // fields of cfg, ignoring the unexported sync.Once, which
29 // contains a mutex and must not be copied.
30 //
31 // If cfg is nil, a new zero tls.Config is returned.
32 func cloneTLSConfig(cfg *tls.Config) *tls.Config {
33         if cfg == nil {
34                 return &tls.Config{}
35         }
36         return &tls.Config{
37                 Rand:                     cfg.Rand,
38                 Time:                     cfg.Time,
39                 Certificates:             cfg.Certificates,
40                 NameToCertificate:        cfg.NameToCertificate,
41                 GetCertificate:           cfg.GetCertificate,
42                 RootCAs:                  cfg.RootCAs,
43                 NextProtos:               cfg.NextProtos,
44                 ServerName:               cfg.ServerName,
45                 ClientAuth:               cfg.ClientAuth,
46                 ClientCAs:                cfg.ClientCAs,
47                 InsecureSkipVerify:       cfg.InsecureSkipVerify,
48                 CipherSuites:             cfg.CipherSuites,
49                 PreferServerCipherSuites: cfg.PreferServerCipherSuites,
50                 SessionTicketsDisabled:   cfg.SessionTicketsDisabled,
51                 SessionTicketKey:         cfg.SessionTicketKey,
52                 ClientSessionCache:       cfg.ClientSessionCache,
53                 MinVersion:               cfg.MinVersion,
54                 MaxVersion:               cfg.MaxVersion,
55                 CurvePreferences:         cfg.CurvePreferences,
56         }
57 }