summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hartmann <phartmann@rim.com>2013-02-20 17:17:38 +0100
committerPeter Hartmann <phartmann@blackberry.com>2013-05-07 16:42:42 +0200
commit3f7923e326a29ec24f0615fdb9cc8a8f8a762d70 (patch)
treeefcb58ae22b53be28bc02c281abe415885b67bf8
parent002ef1697057cf82ef36546e6037179ba7eaf6ab (diff)
downloadqt4-tools-3f7923e326a29ec24f0615fdb9cc8a8f8a762d70.tar.gz
[BB10-internal] QNetworkAccessManager: store QNetworkConfiguration instead of identifier
In case a network session is not required, we need access to the configuration object rather than to the QString. Also, only create a session if the configuration manager needs one. Change-Id: I05945525ce8247e343d0bebd7ec15e0e162ed826 Signed-off-by: Peter Hartmann <phartmann@rim.com>
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp14
-rw-r--r--src/network/access/qnetworkaccessmanager_p.h2
2 files changed, 10 insertions, 6 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index e0f905a405..a423af9adb 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -757,7 +757,11 @@ QNetworkReply *QNetworkAccessManager::deleteResource(const QNetworkRequest &requ
*/
void QNetworkAccessManager::setConfiguration(const QNetworkConfiguration &config)
{
- d_func()->createSession(config);
+ Q_D(QNetworkAccessManager);
+ d->networkConfiguration = config;
+ QNetworkConfigurationManager manager;
+ if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired)
+ d->createSession(config);
}
/*!
@@ -948,10 +952,10 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera
return new QDisabledNetworkReply(this, req, op);
}
- if (!d->networkSessionStrongRef && (d->initializeSession || !d->networkConfiguration.isEmpty())) {
+ if (!d->networkSessionStrongRef && (d->initializeSession || !d->networkConfiguration.identifier().isEmpty())) {
QNetworkConfigurationManager manager;
- if (!d->networkConfiguration.isEmpty()) {
- d->createSession(manager.configurationFromIdentifier(d->networkConfiguration));
+ if (!d->networkConfiguration.identifier().isEmpty()) {
+ d->createSession(manager.configurationFromIdentifier(d->networkConfiguration.identifier()));
} else {
if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired)
d->createSession(manager.defaultConfiguration());
@@ -1237,7 +1241,7 @@ void QNetworkAccessManagerPrivate::_q_networkSessionClosed()
Q_Q(QNetworkAccessManager);
QSharedPointer<QNetworkSession> networkSession(getNetworkSession());
if (networkSession) {
- networkConfiguration = networkSession->configuration().identifier();
+ networkConfiguration = networkSession->configuration();
//disconnect from old session
QObject::disconnect(networkSession.data(), SIGNAL(opened()), q, SIGNAL(networkSessionConnected()));
diff --git a/src/network/access/qnetworkaccessmanager_p.h b/src/network/access/qnetworkaccessmanager_p.h
index da02f0610b..86f5e03e70 100644
--- a/src/network/access/qnetworkaccessmanager_p.h
+++ b/src/network/access/qnetworkaccessmanager_p.h
@@ -140,7 +140,7 @@ public:
QSharedPointer<QNetworkSession> networkSessionStrongRef;
QWeakPointer<QNetworkSession> networkSessionWeakRef;
QNetworkSession::State lastSessionState;
- QString networkConfiguration;
+ QNetworkConfiguration networkConfiguration;
QNetworkAccessManager::NetworkAccessibility networkAccessible;
int activeReplyCount;
bool online;