From b07a1ecb9734929b29838b2af7be619aab3bf2d5 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Mon, 20 Sep 2010 10:24:58 +0200 Subject: Fix one hang of QNAM on Symbian. This one happened especially more often on amazon.de. While one channel was taken by one request, but postponed because it was still in disconnecting mode, another request would come, pick the same channel, and overwrite the request/reply assignment of this channel. The first request would be left unhandled eternally. Reviewed-by: Markus Goetz --- src/network/access/qhttpnetworkconnection.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index ae4d257..ccdbb20 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -743,7 +743,7 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest() return; // try to get a free AND connected socket for (int i = 0; i < channelCount; ++i) { - if (!channels[i].isSocketBusy() && channels[i].socket->state() == QAbstractSocket::ConnectedState) { + if (!channels[i].reply && !channels[i].isSocketBusy() && channels[i].socket->state() == QAbstractSocket::ConnectedState) { dequeueAndSendRequest(channels[i].socket); } } @@ -753,7 +753,7 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest() return; // try to get a free unconnected socket for (int i = 0; i < channelCount; ++i) { - if (!channels[i].isSocketBusy()) { + if (!channels[i].reply && !channels[i].isSocketBusy()) { dequeueAndSendRequest(channels[i].socket); } } -- cgit v0.12