From f0ada99e6aa6bf1475bcbeb4b78322099c907d2b Mon Sep 17 00:00:00 2001 From: Michal Novotny Date: Mon, 6 Apr 2020 16:37:53 +0000 Subject: [PATCH] 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 --- .../system/unixproxy/nsUnixSystemProxySettings.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp index 452b2c8b3b0a..a3f3795184f7 100644 --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp @@ -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;