Commit 99e7bb93 authored by Timo Teräs's avatar Timo Teräs

libfetch: honor https_proxy variable for https

fixes #8160
parent b0fcc56f
......@@ -764,25 +764,44 @@ ouch:
}
static struct url *
http_get_proxy(struct url * url, const char *flags)
http_make_proxy_url(const char *env1, const char *env2)
{
struct url *purl;
char *p;
p = getenv(env1);
if (!p)
p = getenv(env2);
if (!p || !*p)
return NULL;
purl = fetchParseURL(p);
if (!purl)
return NULL;
if (!*purl->scheme)
strcpy(purl->scheme, SCHEME_HTTP);
if (!purl->port)
purl->port = fetch_default_proxy_port(purl->scheme);
if (strcasecmp(purl->scheme, SCHEME_HTTP) == 0)
return purl;
fetchFreeURL(purl);
return NULL;
}
static struct url *
http_get_proxy(struct url * url, const char *flags)
{
if (flags != NULL && strchr(flags, 'd') != NULL)
return (NULL);
if (fetch_no_proxy_match(url->host))
return (NULL);
if (((p = getenv("HTTP_PROXY")) || (p = getenv("http_proxy"))) &&
*p && (purl = fetchParseURL(p))) {
if (!*purl->scheme)
strcpy(purl->scheme, SCHEME_HTTP);
if (!purl->port)
purl->port = fetch_default_proxy_port(purl->scheme);
if (strcasecmp(purl->scheme, SCHEME_HTTP) == 0)
return (purl);
fetchFreeURL(purl);
}
if (strcasecmp(url->scheme, SCHEME_HTTPS) == 0)
return http_make_proxy_url("HTTPS_PROXY", "https_proxy");
if (strcasecmp(url->scheme, SCHEME_HTTP) == 0)
return http_make_proxy_url("HTTP_PROXY", "http_proxy");
return (NULL);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment