author | Patrick McManus <mcmanus@ducksong.com> |
Wed, 05 Sep 2012 08:34:43 -0400 | |
changeset 104288 | 49cdfadd5aefc3f82bbad1a5a4c5d11ecab89d38 |
parent 104287 | 233275bcbdf69d450ebb36a286b1d9c9a19d4bfc |
child 104289 | d28039477b6d9b86074e45ac02c8ca62be7f8165 |
push id | 23417 |
push user | ryanvm@gmail.com |
push date | Thu, 06 Sep 2012 02:27:31 +0000 |
treeherder | mozilla-central@501f4e46a88c [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | duell |
bugs | 701562 |
milestone | 18.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/netwerk/protocol/http/nsHttpConnectionInfo.cpp +++ b/netwerk/protocol/http/nsHttpConnectionInfo.cpp @@ -41,17 +41,25 @@ nsHttpConnectionInfo::SetOriginServer(co if (mUsingHttpProxy) mHashKey.SetCharAt('P', 0); if (mUsingSSL) mHashKey.SetCharAt('S', 1); // NOTE: for transparent proxies (e.g., SOCKS) we need to encode the proxy // info in the hash key (this ensures that we will continue to speak the // right protocol even if our proxy preferences change). - if (!mUsingHttpProxy && ProxyHost()) { + // + // NOTE: for SSL tunnels add the proxy information to the cache key. + // We cannot use the proxy as the host parameter (as we do for non SSL) + // because this is a single host tunnel, but we need to include the proxy + // information so that a change in proxy config will mean this connection + // is not reused + + if ((!mUsingHttpProxy && ProxyHost()) || + (mUsingHttpProxy && mUsingConnect)) { mHashKey.AppendLiteral(" ("); mHashKey.Append(ProxyType()); mHashKey.Append(':'); mHashKey.Append(ProxyHost()); mHashKey.Append(':'); mHashKey.AppendInt(ProxyPort()); mHashKey.Append(')'); }