summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Hartmann <phartmann@blackberry.com>2013-04-01 18:31:27 +0200
committerPeter Hartmann <phartmann@blackberry.com>2013-05-07 16:42:44 +0200
commit5da691d8d4c2bc5192ecd8d7343b323da991c41b (patch)
treea45960f5c710d543cf58749d3e1781f92c8254e7
parent997ad30210cc00b8d51e1d88c0ab06ed798935b0 (diff)
[BB10-internal] Revert "[RIM-internal] QNetworkAccessManager: track online / accesible state without session"
This reverts commit 3a678bfb0d632d227541854a326f50722e2d0c74. ... because it causes crashes. It is probably not the commit that is erroneous, but it seems there is some deeper lying problem. Task-number: PR 316429 Change-Id: I355223563059b1a72ddb03b2254c0eccd554986a Signed-off-by: Peter Hartmann <phartmann@blackberry.com>
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp42
-rw-r--r--src/network/access/qnetworkaccessmanager.h1
-rw-r--r--src/network/access/qnetworkaccessmanager_p.h9
-rw-r--r--tests/auto/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp35
4 files changed, 19 insertions, 68 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index e55dc9ad84..840c817d1d 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -357,22 +357,8 @@ static void ensureInitialized()
QNetworkAccessManager::QNetworkAccessManager(QObject *parent)
: QObject(*new QNetworkAccessManagerPrivate, parent)
{
- Q_D(QNetworkAccessManager);
ensureInitialized();
-#ifndef QT_NO_BEARERMANAGEMENT
- if (!d->networkSessionRequired) {
- // if a session is required, we track online state through
- // the QNetworkSession's signals
- connect(&d->networkConfigurationManager, SIGNAL(onlineStateChanged(bool)),
- SLOT(_q_onlineStateChanged(bool)));
- // we would need all configurations to check for
- // d->networkConfigurationManager.isOnline(), which is asynchronous
- // and potentially expensive. We can just check here
- d->online = (d->networkConfiguration.state() & QNetworkConfiguration::Active);
- }
-#endif
-
qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError");
}
@@ -773,8 +759,9 @@ void QNetworkAccessManager::setConfiguration(const QNetworkConfiguration &config
{
Q_D(QNetworkAccessManager);
d->networkConfiguration = config;
+ QNetworkConfigurationManager manager;
d->customNetworkConfiguration = true;
- if (d->networkConfigurationManager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired)
+ if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired)
d->createSession(config);
}
@@ -857,23 +844,16 @@ QNetworkAccessManager::NetworkAccessibility QNetworkAccessManager::networkAccess
{
Q_D(const QNetworkAccessManager);
- if (d->networkSessionRequired) {
- QSharedPointer<QNetworkSession> networkSession(d->getNetworkSession());
- if (networkSession) {
- // d->online holds online/offline state of this network session.
- if (d->online)
- return d->networkAccessible;
- else
- return NotAccessible;
- } else {
- // Network accessibility is either disabled or unknown.
- return (d->networkAccessible == NotAccessible) ? NotAccessible : UnknownAccessibility;
- }
- } else {
+ QSharedPointer<QNetworkSession> networkSession(d->getNetworkSession());
+ if (networkSession) {
+ // d->online holds online/offline state of this network session.
if (d->online)
return d->networkAccessible;
else
return NotAccessible;
+ } else {
+ // Network accessibility is either disabled or unknown.
+ return (d->networkAccessible == NotAccessible) ? NotAccessible : UnknownAccessibility;
}
}
@@ -1296,12 +1276,6 @@ void QNetworkAccessManagerPrivate::_q_networkSessionStateChanged(QNetworkSession
}
}
}
-
-void QNetworkAccessManagerPrivate::_q_onlineStateChanged(bool isOnline)
-{
- online = isOnline;
-}
-
#endif // QT_NO_BEARERMANAGEMENT
QNetworkRequest QNetworkAccessManagerPrivate::prepareMultipart(const QNetworkRequest &request, QHttpMultiPart *multiPart)
diff --git a/src/network/access/qnetworkaccessmanager.h b/src/network/access/qnetworkaccessmanager.h
index 8429c892e4..147714ba3b 100644
--- a/src/network/access/qnetworkaccessmanager.h
+++ b/src/network/access/qnetworkaccessmanager.h
@@ -167,7 +167,6 @@ private:
#if !defined(QT_NO_BEARERMANAGEMENT) && !defined(QT_MOBILITY_BEARER)
Q_PRIVATE_SLOT(d_func(), void _q_networkSessionClosed())
Q_PRIVATE_SLOT(d_func(), void _q_networkSessionStateChanged(QNetworkSession::State))
- Q_PRIVATE_SLOT(d_func(), void _q_onlineStateChanged(bool))
#endif
};
diff --git a/src/network/access/qnetworkaccessmanager_p.h b/src/network/access/qnetworkaccessmanager_p.h
index 520e9796f0..6a6c5fb0cc 100644
--- a/src/network/access/qnetworkaccessmanager_p.h
+++ b/src/network/access/qnetworkaccessmanager_p.h
@@ -60,9 +60,6 @@
#include "QtNetwork/qnetworkproxy.h"
#include "QtNetwork/qnetworksession.h"
#include "qnetworkaccessauthenticationmanager_p.h"
-#ifndef QT_NO_BEARERMANAGEMENT
-#include "QtNetwork/qnetworkconfigmanager.h"
-#endif
QT_BEGIN_NAMESPACE
@@ -83,9 +80,6 @@ public:
#ifndef QT_NO_BEARERMANAGEMENT
lastSessionState(QNetworkSession::Invalid),
customNetworkConfiguration(false),
- networkConfiguration(networkConfigurationManager.defaultConfiguration()),
- networkSessionRequired(networkConfigurationManager.capabilities()
- & QNetworkConfigurationManager::NetworkSessionRequired),
networkAccessible(QNetworkAccessManager::Accessible),
activeReplyCount(0),
online(false),
@@ -126,7 +120,6 @@ public:
void _q_networkSessionPreferredConfigurationChanged(const QNetworkConfiguration &config,
bool isSeamless);
void _q_networkSessionStateChanged(QNetworkSession::State state);
- void _q_onlineStateChanged(bool isOnline);
#endif
QNetworkRequest prepareMultipart(const QNetworkRequest &request, QHttpMultiPart *multiPart);
@@ -148,12 +141,10 @@ public:
QSharedPointer<QNetworkSession> networkSessionStrongRef;
QWeakPointer<QNetworkSession> networkSessionWeakRef;
QNetworkSession::State lastSessionState;
- QNetworkConfigurationManager networkConfigurationManager;
QNetworkConfiguration networkConfiguration;
// we need to track whether the user set a config or not,
// because the default config might change
bool customNetworkConfiguration;
- bool networkSessionRequired;
QNetworkAccessManager::NetworkAccessibility networkAccessible;
int activeReplyCount;
bool online;
diff --git a/tests/auto/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp b/tests/auto/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp
index ab043b3fe2..0393b3dbc8 100644
--- a/tests/auto/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp
+++ b/tests/auto/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp
@@ -72,43 +72,30 @@ void tst_QNetworkAccessManager::networkAccessible()
QSignalSpy spy(&manager,
SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)));
- // if there is no session, we cannot know in which state we are in
- QNetworkAccessManager::NetworkAccessibility initialAccessibility =
- manager.networkAccessible();
- QCOMPARE(manager.networkAccessible(), initialAccessibility);
+ QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::UnknownAccessibility);
manager.setNetworkAccessible(QNetworkAccessManager::NotAccessible);
- int expectedCount = (initialAccessibility == QNetworkAccessManager::Accessible) ? 1 : 0;
- QCOMPARE(spy.count(), expectedCount);
- if (expectedCount > 0)
- QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(),
- QNetworkAccessManager::NotAccessible);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(),
+ QNetworkAccessManager::NotAccessible);
QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::NotAccessible);
manager.setNetworkAccessible(QNetworkAccessManager::Accessible);
- QCOMPARE(spy.count(), expectedCount);
- if (expectedCount > 0)
- QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(),
- initialAccessibility);
- QCOMPARE(manager.networkAccessible(), initialAccessibility);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(),
+ QNetworkAccessManager::UnknownAccessibility);
+ QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::UnknownAccessibility);
QNetworkConfigurationManager configManager;
- bool sessionRequired = (configManager.capabilities()
- & QNetworkConfigurationManager::NetworkSessionRequired);
QNetworkConfiguration defaultConfig = configManager.defaultConfiguration();
if (defaultConfig.isValid()) {
manager.setConfiguration(defaultConfig);
- // the accessibility has not changed if no session is required
- if (sessionRequired) {
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(),
- QNetworkAccessManager::Accessible);
- } else {
- QCOMPARE(spy.count(), 0);
- }
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(),
+ QNetworkAccessManager::Accessible);
QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::Accessible);
manager.setNetworkAccessible(QNetworkAccessManager::NotAccessible);