summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorJani Heikkinen <jani.heikkinen@theqtcompany.com>2014-11-11 12:51:23 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-11-11 12:51:23 +0100
commit9d38dbde7663a2de8186b32e222ce8fab9cf909d (patch)
treeb859ad71c3750f4cd7c2d383cc9f15cb0e0c6d7f /src/network
parent9b7bdd455fefc2df78eb540e9f570877aa8cd827 (diff)
parent0d02a06517f29c5b51fb2d3ac64a5e6d9daed5a9 (diff)
Merge "Merge remote-tracking branch 'origin/5.4' into 5.4.0" into refs/staging/5.4.0
Diffstat (limited to 'src/network')
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp12
-rw-r--r--src/network/ssl/qsslsocket.cpp16
2 files changed, 17 insertions, 11 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index f00b58a8ce..52d56fb071 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;
}
}
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index 27b085ddbd..8887f478dd 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -1908,18 +1908,14 @@ qint64 QSslSocket::readData(char *data, qint64 maxlen)
if (d->mode == UnencryptedMode && !d->autoStartHandshake) {
readBytes = d->plainSocket->read(data, maxlen);
- } else {
- int bytesToRead = qMin<int>(maxlen, d->buffer.size());
- readBytes = d->buffer.read(data, bytesToRead);
- }
-
#ifdef QSSLSOCKET_DEBUG
- qDebug() << "QSslSocket::readData(" << (void *)data << ',' << maxlen << ") ==" << readBytes;
+ qDebug() << "QSslSocket::readData(" << (void *)data << ',' << maxlen << ") =="
+ << readBytes;
#endif
-
- // possibly trigger another transmit() to decrypt more data from the socket
- if (d->buffer.isEmpty() && d->plainSocket->bytesAvailable()) {
- QMetaObject::invokeMethod(this, "_q_flushReadBuffer", Qt::QueuedConnection);
+ } else {
+ // possibly trigger another transmit() to decrypt more data from the socket
+ if (d->plainSocket->bytesAvailable())
+ QMetaObject::invokeMethod(this, "_q_flushReadBuffer", Qt::QueuedConnection);
}
return readBytes;