summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorMartin Petersson <martin.petersson@nokia.com>2011-04-28 12:07:07 +0200
committerMartin Petersson <martin.petersson@nokia.com>2011-05-02 12:39:12 +0200
commit5be54b220a9f9343f8442f7b2f3de50374e22061 (patch)
tree1708e5c7a2e206f8bb0c0f5dffa305ab506ed168 /src/network
parente4b289c276c2621423e5f052af89ff5b79401502 (diff)
QAbstractSocket: Fix waitForReadyRead infinite loop.
Make sure that waitForReadyRead times out if the read buffer is full. Task-number: QTBUG-16123 Reviewed-by: Peter Hartmann (cherry picked from commit 8d4cd52b6981a4e6deea7fdb77f56e40c4f3e6ba)
Diffstat (limited to 'src/network')
-rw-r--r--src/network/socket/qabstractsocket.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 7af71ccc8b..cfb141398c 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -1877,7 +1877,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs)
}
Q_ASSERT(d->socketEngine);
- forever {
+ do {
bool readyToRead = false;
bool readyToWrite = false;
if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, true, !d->writeBuffer.isEmpty(),
@@ -1904,7 +1904,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs)
if (state() != ConnectedState)
return false;
- }
+ } while (qt_timeout_value(msecs, stopWatch.elapsed()) > 0);
return false;
}