[tbb-commits] [tor-browser/tor-browser-31.4.0esr-4.5-1] fixup! Bug #3455.2. Allow RFC1929 authentication (username/password) to SOCKS servers.

mikeperry at torproject.org mikeperry at torproject.org
Fri Feb 13 05:16:13 UTC 2015


commit 981c39e35f07cfa6a4bf934ba463f78d4ab796ce
Author: Arthur Edelstein <arthuredelstein at 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





More information about the tbb-commits mailing list