diff options
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/access/qhttpnetworkconnectionchannel.cpp | 7 | ||||
-rw-r--r-- | src/network/socket/qnet_unix_p.h | 2 |
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); |