aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/google.golang.org/grpc/internal/envconfig/envconfig.go')
-rw-r--r--vendor/google.golang.org/grpc/internal/envconfig/envconfig.go69
1 files changed, 69 insertions, 0 deletions
diff --git a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go
new file mode 100644
index 000000000..a3e02b661
--- /dev/null
+++ b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go
@@ -0,0 +1,69 @@
+/*
+ *
+ * Copyright 2018 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// Package envconfig contains grpc settings configured by environment variables.
+package envconfig
+
+import (
+ "os"
+ "strings"
+)
+
+const (
+ prefix = "GRPC_GO_"
+ retryStr = prefix + "RETRY"
+ requireHandshakeStr = prefix + "REQUIRE_HANDSHAKE"
+)
+
+// RequireHandshakeSetting describes the settings for handshaking.
+type RequireHandshakeSetting int
+
+const (
+ // RequireHandshakeHybrid (default, deprecated) indicates to wait for
+ // handshake before considering a connection ready, but wait before
+ // considering successful.
+ RequireHandshakeHybrid RequireHandshakeSetting = iota
+ // RequireHandshakeOn (default after the 1.17 release) indicates to wait
+ // for handshake before considering a connection ready/successful.
+ RequireHandshakeOn
+ // RequireHandshakeOff indicates to not wait for handshake before
+ // considering a connection ready/successful.
+ RequireHandshakeOff
+)
+
+var (
+ // Retry is set if retry is explicitly enabled via "GRPC_GO_RETRY=on".
+ Retry = strings.EqualFold(os.Getenv(retryStr), "on")
+ // RequireHandshake is set based upon the GRPC_GO_REQUIRE_HANDSHAKE
+ // environment variable.
+ //
+ // Will be removed after the 1.18 release.
+ RequireHandshake RequireHandshakeSetting
+)
+
+func init() {
+ switch strings.ToLower(os.Getenv(requireHandshakeStr)) {
+ case "on":
+ RequireHandshake = RequireHandshakeOn
+ case "off":
+ RequireHandshake = RequireHandshakeOff
+ case "hybrid":
+ // Will be removed after the 1.17 release.
+ RequireHandshake = RequireHandshakeHybrid
+ }
+}