diff options
| author | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2014-11-10 11:42:02 +0100 |
|---|---|---|
| committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2014-11-10 11:45:49 +0100 |
| commit | 0d02a06517f29c5b51fb2d3ac64a5e6d9daed5a9 (patch) | |
| tree | 3426504f004cbd2fffaceec24678bb16e9abfe37 /src/network/access/qnetworkaccessmanager.cpp | |
| parent | d7a5dc0cfdae2fb22b7061301575f04f2bcc3f1c (diff) | |
| parent | ba73bde66efa588a74eaaa946e80e9de2b9e2d59 (diff) | |
Merge remote-tracking branch 'origin/5.4' into 5.4.0
Change-Id: I85e3dfa62f217b76447276dd7cce6b9eac3a144e
Diffstat (limited to 'src/network/access/qnetworkaccessmanager.cpp')
| -rw-r--r-- | src/network/access/qnetworkaccessmanager.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index f00b58a8ce7..52d56fb0716 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1135,7 +1135,12 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera if (!d->networkSessionStrongRef && (d->initializeSession || !d->networkConfiguration.identifier().isEmpty())) { QNetworkConfigurationManager manager; if (!d->networkConfiguration.identifier().isEmpty()) { - d->createSession(d->networkConfiguration); + if ((d->networkConfiguration.state() & QNetworkConfiguration::Defined) + && d->networkConfiguration != manager.defaultConfiguration()) + d->createSession(manager.defaultConfiguration()); + else + d->createSession(d->networkConfiguration); + } else { if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired) d->createSession(manager.defaultConfiguration()); @@ -1590,6 +1595,11 @@ void QNetworkAccessManagerPrivate::_q_onlineStateChanged(bool isOnline) if (customNetworkConfiguration) { online = (networkConfiguration.state() & QNetworkConfiguration::Active); } else { + if (isOnline && online != isOnline) { + networkSessionStrongRef.clear(); + networkSessionWeakRef.clear(); + } + online = isOnline; } } |
