diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2011-03-16 16:27:10 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2011-03-16 16:27:10 (GMT) |
commit | d750731478045d02d6dab8a8cec190d654f65082 (patch) | |
tree | 0eb4fe5db5092acbcc85361a53e047e9ba06ec8b | |
parent | 580e3d9968e12fb38348af503ef9ede50691c24c (diff) | |
parent | 76f84c7a91751b4ddc5d9c4c59b6e5158d7ea998 (diff) | |
download | Qt-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.cpp | 13 | ||||
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 2 |
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); |