summaryrefslogtreecommitdiffstats
path: root/src/network/access
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-02-27 12:17:12 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-04 04:35:37 +0100
commitbcf5ea28c19102430f0dc879e8efb2d895dcea3c (patch)
treebcce2888a8ac63d4f1255c4e3ca76f6b2bc7fa68 /src/network/access
parente7f685002bb0facb222ac13c21ff4a2257ab76cc (diff)
Remove deleted QNetworkReplies from SPDY queues
We already remove QNetworkReply from most queues, but we also need to remove it from the SPDY queue. Otherwise we might end up trying to send an already deleted message. Change-Id: Ib39bf8f26315b66179755a6f66dbd657576cbbe3 Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Diffstat (limited to 'src/network/access')
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 6d568220e2..87511076d3 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -864,6 +864,19 @@ void QHttpNetworkConnectionPrivate::removeReply(QHttpNetworkReply *reply)
return;
}
}
+#ifndef QT_NO_SSL
+ // is the reply inside the SPDY pipeline of this channel already?
+ QMultiMap<int, HttpMessagePair>::iterator it = channels[i].spdyRequestsToSend.begin();
+ QMultiMap<int, HttpMessagePair>::iterator end = channels[i].spdyRequestsToSend.end();
+ for (; it != end; ++it) {
+ if (it.value().second == reply) {
+ channels[i].spdyRequestsToSend.remove(it.key());
+
+ QMetaObject::invokeMethod(q, "_q_startNextRequest", Qt::QueuedConnection);
+ return;
+ }
+ }
+#endif
}
// remove from the high priority queue
if (!highPriorityQueue.isEmpty()) {