Bug 1797896 - Proxy environment variables can be uppercase on linux now r=valentin

Differential Revision: https://phabricator.services.mozilla.com/D161108
This commit is contained in:
marz 2022-11-03 09:48:27 +00:00
Родитель deda0123cf
Коммит 7e53e8854b
1 изменённых файлов: 14 добавлений и 0 удалений

Просмотреть файл

@ -15,6 +15,7 @@
#include "nsNetUtil.h"
#include "nsISupportsPrimitives.h"
#include "nsIGSettingsService.h"
#include "nsReadableUtils.h"
using namespace mozilla;
@ -150,8 +151,17 @@ static nsresult GetProxyFromEnvironment(const nsACString& aScheme,
envVar.Append(aScheme);
envVar.AppendLiteral("_proxy");
const char* proxyVal = PR_GetEnv(envVar.get());
if (!proxyVal) {
// try uppercase name too
ToUpperCase(envVar);
proxyVal = PR_GetEnv(envVar.get());
}
if (!proxyVal) {
proxyVal = PR_GetEnv("all_proxy");
if (!proxyVal) {
// try uppercase name too
proxyVal = PR_GetEnv("ALL_PROXY");
}
if (!proxyVal) {
// Return failure so that the caller can detect the failure and
// fall back to other proxy detection (e.g., WPAD)
@ -160,6 +170,10 @@ static nsresult GetProxyFromEnvironment(const nsACString& aScheme,
}
const char* noProxyVal = PR_GetEnv("no_proxy");
if (!noProxyVal) {
// try uppercase name too
noProxyVal = PR_GetEnv("NO_PROXY");
}
if (noProxyVal && IsInNoProxyList(aHost, aPort, noProxyVal)) {
SetProxyResultDirect(aResult);
return NS_OK;