summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2011-03-16 16:27:10 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2011-03-16 16:27:10 (GMT)
commitd750731478045d02d6dab8a8cec190d654f65082 (patch)
tree0eb4fe5db5092acbcc85361a53e047e9ba06ec8b
parent580e3d9968e12fb38348af503ef9ede50691c24c (diff)
parent76f84c7a91751b4ddc5d9c4c59b6e5158d7ea998 (diff)
downloadQt-d750731478045d02d6dab8a8cec190d654f65082.zip
Qt-d750731478045d02d6dab8a8cec190d654f65082.tar.gz
Qt-d750731478045d02d6dab8a8cec190d654f65082.tar.bz2
Merge remote-tracking branch 'integration/qt-master-from-4.7' into HEAD
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp13
-rw-r--r--src/network/socket/qabstractsocket.cpp2
2 files changed, 10 insertions, 5 deletions
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 6a05fd3..62c6fab 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -915,15 +915,18 @@ bool QHttpNetworkConnectionChannel::isSocketReading() const
//private slots
void QHttpNetworkConnectionChannel::_q_readyRead()
{
- // We got a readyRead but no bytes are available..
- // This happens for the Unbuffered QTcpSocket
- // Also check if socket is in ConnectedState since
- // this function may also be invoked via the event loop.
if (socket->state() == QAbstractSocket::ConnectedState && socket->bytesAvailable() == 0) {
+ // We got a readyRead but no bytes are available..
+ // This happens for the Unbuffered QTcpSocket
+ // Also check if socket is in ConnectedState since
+ // this function may also be invoked via the event loop.
char c;
qint64 ret = socket->peek(&c, 1);
if (ret < 0) {
- socket->disconnectFromHost();
+ _q_error(socket->error());
+ // We still need to handle the reply so it emits its signals etc.
+ if (reply)
+ _q_receiveReply();
return;
}
}
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 2a942cc..c7c2e82 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -2210,6 +2210,8 @@ qint64 QAbstractSocket::readData(char *data, qint64 maxSize)
} else if (readBytes < 0) {
d->socketError = d->socketEngine->error();
setErrorString(d->socketEngine->errorString());
+ d->resetSocketLayer();
+ d->state = QAbstractSocket::UnconnectedState;
} else if (!d->socketEngine->isReadNotificationEnabled()) {
// Only do this when there was no error
d->socketEngine->setReadNotificationEnabled(true);