From 8bf64dbed0b9edffe4ad498fd36e82fd2fc7e3d8 Mon Sep 17 00:00:00 2001 From: Kenjiro Nakayama Date: Sun, 15 Nov 2015 16:56:11 +0900 Subject: [PATCH] docker info suppports case-insensitive proxy env settings Signed-off-by: Kenjiro Nakayama Upstream-commit: 84781a5df753f5ba127538e8542fcb7c94bb56fa Component: engine --- components/engine/daemon/info.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/components/engine/daemon/info.go b/components/engine/daemon/info.go index 56a4579063..921a236acd 100644 --- a/components/engine/daemon/info.go +++ b/components/engine/daemon/info.go @@ -3,6 +3,7 @@ package daemon import ( "os" "runtime" + "strings" "time" "github.com/Sirupsen/logrus" @@ -91,9 +92,9 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) { ServerVersion: dockerversion.Version, ClusterStore: daemon.config().ClusterStore, ClusterAdvertise: daemon.config().ClusterAdvertise, - HTTPProxy: os.Getenv("http_proxy"), - HTTPSProxy: os.Getenv("https_proxy"), - NoProxy: os.Getenv("no_proxy"), + HTTPProxy: getProxyEnv("http_proxy"), + HTTPSProxy: getProxyEnv("https_proxy"), + NoProxy: getProxyEnv("no_proxy"), } // TODO Windows. Refactor this more once sysinfo is refactored into @@ -129,3 +130,13 @@ func (daemon *Daemon) showPluginsInfo() types.PluginsInfo { return pluginsInfo } + +// The uppercase and the lowercase are available for the proxy settings. +// See the Go specification for details on these variables. https://golang.org/pkg/net/http/ +func getProxyEnv(key string) string { + proxyValue := os.Getenv(strings.ToUpper(key)) + if proxyValue == "" { + return os.Getenv(strings.ToLower(key)) + } + return proxyValue +}