Bug 1627635 - Websocket connects to DIRECT instead of Proxy-HTTP/HTTPS with SystemProxySettings on Linux r=valentin

Fix nsUnixSystemProxySettings::GetProxyForURI() so it assigns the result to aResult instead of appending to it.

Differential Revision: https://phabricator.services.mozilla.com/D69807

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Michal Novotny 2020-04-06 16:37:53 +00:00
Родитель 40fdcf8307
Коммит f0ada99e6a
1 изменённых файлов: 8 добавлений и 4 удалений

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

@ -136,7 +136,7 @@ static bool IsInNoProxyList(const nsACString& aHost, int32_t aPort,
static void SetProxyResult(const char* aType, const nsACString& aHost,
int32_t aPort, nsACString& aResult) {
aResult.AppendASCII(aType);
aResult.AssignASCII(aType);
aResult.Append(' ');
aResult.Append(aHost);
if (aPort > 0) {
@ -145,6 +145,10 @@ static void SetProxyResult(const char* aType, const nsACString& aHost,
}
}
static void SetProxyResultDirect(nsACString& aResult) {
aResult.AssignLiteral("DIRECT");
}
static nsresult GetProxyFromEnvironment(const nsACString& aScheme,
const nsACString& aHost, int32_t aPort,
nsACString& aResult) {
@ -163,7 +167,7 @@ static nsresult GetProxyFromEnvironment(const nsACString& aScheme,
const char* noProxyVal = PR_GetEnv("no_proxy");
if (noProxyVal && IsInNoProxyList(aHost, aPort, noProxyVal)) {
aResult.AppendLiteral("DIRECT");
SetProxyResultDirect(aResult);
return NS_OK;
}
@ -340,7 +344,7 @@ nsresult nsUnixSystemProxySettings::GetProxyFromGSettings(
nsCString s;
if (NS_SUCCEEDED(str->GetData(s)) && !s.IsEmpty()) {
if (HostIgnoredByProxy(s, aHost)) {
aResult.AppendLiteral("DIRECT");
SetProxyResultDirect(aResult);
return NS_OK;
}
}
@ -371,7 +375,7 @@ nsresult nsUnixSystemProxySettings::GetProxyFromGSettings(
}
if (NS_FAILED(rv)) {
aResult.AppendLiteral("DIRECT");
SetProxyResultDirect(aResult);
}
return NS_OK;