cubefs

Форк
0
50 строк · 1.3 Кб
1
/*
2
 *
3
 * Copyright 2020 gRPC authors.
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 */
18

19
package credentials
20

21
import "crypto/tls"
22

23
const alpnProtoStrH2 = "h2"
24

25
// AppendH2ToNextProtos appends h2 to next protos.
26
func AppendH2ToNextProtos(ps []string) []string {
27
	for _, p := range ps {
28
		if p == alpnProtoStrH2 {
29
			return ps
30
		}
31
	}
32
	ret := make([]string, 0, len(ps)+1)
33
	ret = append(ret, ps...)
34
	return append(ret, alpnProtoStrH2)
35
}
36

37
// CloneTLSConfig returns a shallow clone of the exported
38
// fields of cfg, ignoring the unexported sync.Once, which
39
// contains a mutex and must not be copied.
40
//
41
// If cfg is nil, a new zero tls.Config is returned.
42
//
43
// TODO: inline this function if possible.
44
func CloneTLSConfig(cfg *tls.Config) *tls.Config {
45
	if cfg == nil {
46
		return &tls.Config{}
47
	}
48

49
	return cfg.Clone()
50
}
51

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.