diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-04 16:06:40 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-04 16:06:40 (GMT) |
commit | 4cfd1f19fdcd1e61aa50feed5eb8228afff94e66 (patch) | |
tree | 159a2f90ff7bb016fd166f1b18826aed2a460ac5 /src/network | |
parent | 953ff11a1b424dd288b6504c5a6f918acaebaa60 (diff) | |
parent | 1a7a1172d048108c30a9890ce9477686711ad756 (diff) | |
download | Qt-4cfd1f19fdcd1e61aa50feed5eb8228afff94e66.zip Qt-4cfd1f19fdcd1e61aa50feed5eb8228afff94e66.tar.gz Qt-4cfd1f19fdcd1e61aa50feed5eb8228afff94e66.tar.bz2 |
Merge branch 4.7 into qt-master-from-4.7
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/access/qhttpnetworkconnection.cpp | 7 | ||||
-rw-r--r-- | src/network/kernel/qauthenticator.cpp | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index 1ef58d8..1ce162c 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -374,6 +374,13 @@ bool QHttpNetworkConnectionPrivate::handleAuthenticateChallenge(QAbstractSocket // - If withCredentials has been set to false (e.g. by QtWebKit for a cross-origin XMLHttpRequest) then // we need to bail out if authentication is required. if (priv->phase == QAuthenticatorPrivate::Done || !reply->request().withCredentials()) { + // Reset authenticator so the next request on that channel does not get messed up + auth = 0; + if (isProxy) + channels[i].proxyAuthenticator = QAuthenticator(); + else + channels[i].authenticator = QAuthenticator(); + // authentication is cancelled, send the current contents to the user. emit channels[i].reply->headerChanged(); emit channels[i].reply->readyRead(); diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp index 220f7da..73f6b94 100644 --- a/src/network/kernel/qauthenticator.cpp +++ b/src/network/kernel/qauthenticator.cpp @@ -164,9 +164,13 @@ QAuthenticator &QAuthenticator::operator=(const QAuthenticator &other) { if (d == other.d) return *this; - detach(); - d->user = other.d->user; - d->password = other.d->password; + + if (d && !d->ref.deref()) + delete d; + + d = other.d; + if (d) + d->ref.ref(); return *this; } |