diff options
author | Daniel Stenberg <daniel@haxx.se> | 2000-11-20 07:35:21 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2000-11-20 07:35:21 +0000 |
commit | 91c879461ef308ba24404c3e7e84870f83844001 (patch) | |
tree | d0165a2b9f8c6ac40bdc00fcd4eca9cb67cf7c06 /lib | |
parent | bda9fde4d84f595482b8f45b2f5db3d9a18d4689 (diff) |
Alexander Kourakos's lowercase environment variable fix
Diffstat (limited to 'lib')
-rw-r--r-- | lib/url.c | 63 |
1 files changed, 40 insertions, 23 deletions
@@ -849,20 +849,29 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) /* If proxy was not specified, we check for default proxy environment variables, to enable i.e Lynx compliance: - HTTP_PROXY http://some.server.dom:port/ - HTTPS_PROXY http://some.server.dom:port/ - FTP_PROXY http://some.server.dom:port/ - GOPHER_PROXY http://some.server.dom:port/ - NO_PROXY host.domain.dom (a comma-separated list of hosts which should - not be proxied, or an asterisk to override all proxy variables) - ALL_PROXY seems to exist for the CERN www lib. Probably the first to - check for. - + http_proxy=http://some.server.dom:port/ + https_proxy=http://some.server.dom:port/ + ftp_proxy=http://some.server.dom:port/ + gopher_proxy=http://some.server.dom:port/ + no_proxy=domain1.dom,host.domain2.dom + (a comma-separated list of hosts which should + not be proxied, or an asterisk to override + all proxy variables) + all_proxy=http://some.server.dom:port/ + (seems to exist for the CERN www lib. Probably + the first to check for.) + + For compatibility, the all-uppercase versions of these variables are + checked if the lowercase versions don't exist. */ - char *no_proxy=GetEnv("NO_PROXY"); + char *no_proxy=NULL; char *proxy=NULL; char proxy_env[128]; + no_proxy=GetEnv("no_proxy"); + if(!no_proxy) + no_proxy=GetEnv("NO_PROXY"); + if(!no_proxy || !strequal("*", no_proxy)) { /* NO_PROXY wasn't specified or it wasn't just an asterisk */ char *nope; @@ -885,23 +894,31 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) char *envp = proxy_env; char *prox; - /* Now, build <PROTOCOL>_PROXY and check for such a one to use */ - while(*protop) { - *envp++ = toupper(*protop++); - } - /* append _PROXY */ - strcpy(envp, "_PROXY"); -#if 0 - infof(data, "DEBUG: checks the environment variable %s\n", proxy_env); -#endif + /* Now, build <protocol>_proxy and check for such a one to use */ + while(*protop) + *envp++ = tolower(*protop++); + + /* append _proxy */ + strcpy(envp, "_proxy"); + /* read the protocol proxy: */ prox=GetEnv(proxy_env); + if(!prox) { + /* There was no lowercase variable, try the uppercase version: */ + for(envp = proxy_env; *envp; envp++) + *envp = toupper(*envp); + prox=GetEnv(proxy_env); + } + if(prox && *prox) { /* don't count "" strings */ proxy = prox; /* use this */ - } - else - proxy = GetEnv("ALL_PROXY"); /* default proxy to use */ + } + else { + proxy = GetEnv("all_proxy"); /* default proxy to use */ + if(!proxy) + proxy=GetEnv("ALL_PROXY"); + } if(proxy && *proxy) { /* we have a proxy here to set */ @@ -909,7 +926,7 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) data->bits.proxystringalloc=1; /* this needs to be freed later */ data->bits.httpproxy=1; } - } /* if (!nope) - it wasn't specfied non-proxy */ + } /* if (!nope) - it wasn't specified non-proxy */ } /* NO_PROXY wasn't specified or '*' */ if(no_proxy) free(no_proxy); |