commit 981c39e35f07cfa6a4bf934ba463f78d4ab796ce Author: Arthur Edelstein arthuredelstein@gmail.com Date: Wed Feb 11 19:11:16 2015 -0800
fixup! Bug #3455.2. Allow RFC1929 authentication (username/password) to SOCKS servers.
This fixes proxy username/password problem reported in #9442. --- netwerk/base/src/nsProxyInfo.h | 2 ++ netwerk/protocol/http/nsHttpConnectionInfo.cpp | 5 +++++ netwerk/protocol/http/nsHttpConnectionInfo.h | 2 ++ 3 files changed, 9 insertions(+)
diff --git a/netwerk/base/src/nsProxyInfo.h b/netwerk/base/src/nsProxyInfo.h index 5432d95..6559db5 100644 --- a/netwerk/base/src/nsProxyInfo.h +++ b/netwerk/base/src/nsProxyInfo.h @@ -35,6 +35,8 @@ public: int32_t Port() { return mPort; } const char *Type() { return mType; } uint32_t Flags() { return mFlags; } + const nsCString &Username() { return mUsername; } + const nsCString &Password() { return mPassword; }
bool IsDirect(); bool IsHTTP(); diff --git a/netwerk/protocol/http/nsHttpConnectionInfo.cpp b/netwerk/protocol/http/nsHttpConnectionInfo.cpp index 1c1c517..2ef09b6 100644 --- a/netwerk/protocol/http/nsHttpConnectionInfo.cpp +++ b/netwerk/protocol/http/nsHttpConnectionInfo.cpp @@ -107,6 +107,11 @@ nsHttpConnectionInfo::SetOriginServer(const nsACString &host, int32_t port) mHashKey.Append(':'); mHashKey.AppendInt(ProxyPort()); mHashKey.Append(')'); + mHashKey.Append('['); + mHashKey.Append(ProxyUsername()); + mHashKey.Append(':'); + mHashKey.Append(ProxyPassword()); + mHashKey.Append(']'); } }
diff --git a/netwerk/protocol/http/nsHttpConnectionInfo.h b/netwerk/protocol/http/nsHttpConnectionInfo.h index 4f7034d..c2b345a 100644 --- a/netwerk/protocol/http/nsHttpConnectionInfo.h +++ b/netwerk/protocol/http/nsHttpConnectionInfo.h @@ -48,6 +48,8 @@ public: const char *ProxyHost() const { return mProxyInfo ? mProxyInfo->Host().get() : nullptr; } int32_t ProxyPort() const { return mProxyInfo ? mProxyInfo->Port() : -1; } const char *ProxyType() const { return mProxyInfo ? mProxyInfo->Type() : nullptr; } + const char *ProxyUsername() const { return mProxyInfo ? mProxyInfo->Username().get() : nullptr; } + const char *ProxyPassword() const { return mProxyInfo ? mProxyInfo->Password().get() : nullptr; }
// Compare this connection info to another... // Two connections are 'equal' if they end up talking the same
tbb-commits@lists.torproject.org