This commit is contained in:
Dominik Picheta 2015-12-29 16:28:01 +00:00
commit 2674cacd16

View file

@ -298,20 +298,26 @@ proc parseCmdLine*(): Options =
proc getProxy*(options: Options): Proxy = proc getProxy*(options: Options): Proxy =
## Returns ``nil`` if no proxy is specified. ## Returns ``nil`` if no proxy is specified.
var url = initUri() var url = ""
if ($options.config.httpProxy).len > 0: if ($options.config.httpProxy).len > 0:
url = options.config.httpProxy url = $options.config.httpProxy
else: else:
try: try:
if existsEnv("http_proxy"): if existsEnv("http_proxy"):
parseUri(getEnv("http_proxy"), url) url = getEnv("http_proxy")
elif existsEnv("https_proxy"): elif existsEnv("https_proxy"):
parseUri(getEnv("https_proxy"), url) url = getEnv("https_proxy")
except ValueError: except ValueError:
echo("WARNING: Unable to parse proxy from environment: ", echo("WARNING: Unable to parse proxy from environment: ",
getCurrentExceptionMsg()) getCurrentExceptionMsg())
if ($url).len > 0: if url.len > 0:
return newProxy($url, url.username & ":" & url.password) var parsed = parseUri(url)
if parsed.scheme.len == 0 or parsed.hostname.len == 0:
parsed = parseUri("http://" & url)
let auth =
if parsed.username.len > 0: parsed.username & ":" & parsed.password
else: ""
return newProxy($parsed, auth)
else: else:
return nil return nil