summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/network')
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp7
-rw-r--r--src/network/socket/qnet_unix_p.h2
2 files changed, 6 insertions, 3 deletions
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 84681561f2..6b2018ef86 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -972,8 +972,11 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket
// emit error for all waiting replies
do {
- // Need to dequeu the request so that we can emit the error.
- if (!reply)
+ // First requeue the already pipelined requests for the current failed reply,
+ // then dequeue pending requests so we can also mark them as finished with error
+ if (reply)
+ requeueCurrentlyPipelinedRequests();
+ else
connection->d_func()->dequeueRequest(socket);
if (reply) {
diff --git a/src/network/socket/qnet_unix_p.h b/src/network/socket/qnet_unix_p.h
index 46fbc9757a..73d7ec2e77 100644
--- a/src/network/socket/qnet_unix_p.h
+++ b/src/network/socket/qnet_unix_p.h
@@ -165,7 +165,7 @@ static inline int qt_safe_connect(int sockfd, const struct sockaddr *addr, QT_SO
// VxWorks' headers specify 'int' instead of '...' for the 3rd ioctl() parameter.
template <typename T>
-static inline int qt_safe_ioctl(int sockfd, int request, T arg)
+static inline int qt_safe_ioctl(int sockfd, unsigned long request, T arg)
{
#ifdef Q_OS_VXWORKS
return ::ioctl(sockfd, request, (int) arg);