summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qsocks5socketengine.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-03 15:19:26 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-03 15:19:26 +0200
commita2b221e595de812f28b4e25ce8014df62407f899 (patch)
tree2a19edd6ee9bcd92c2db0bce2925beb5fca9c632 /src/network/socket/qsocks5socketengine.cpp
parent2021b36ebdbdd1da1595f281a694b54beb1b23a3 (diff)
parent8d414e67941fdc45ab682b763a119ecc71291483 (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts: .qmake.conf Change-Id: I936be3c0df2b9845ff6a85eb3d4442cdabe63d37
Diffstat (limited to 'src/network/socket/qsocks5socketengine.cpp')
-rw-r--r--src/network/socket/qsocks5socketengine.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp
index e6ffdc3ac5..18b3ce9db2 100644
--- a/src/network/socket/qsocks5socketengine.cpp
+++ b/src/network/socket/qsocks5socketengine.cpp
@@ -1188,6 +1188,8 @@ void QSocks5SocketEnginePrivate::_q_controlSocketReadNotification()
break;
case RequestMethodSent:
parseRequestMethodReply();
+ if (socks5State == Connected && data->controlSocket->bytesAvailable())
+ _q_controlSocketReadNotification();
break;
case Connected: {
QByteArray buf;
@@ -1751,6 +1753,11 @@ bool QSocks5SocketEngine::waitForRead(int msecs, bool *timedOut)
return false;
if (d->data->controlSocket->state() == QAbstractSocket::UnconnectedState)
return true;
+ if (bytesAvailable() && d->readNotificationPending) {
+ // We've got some data incoming, but the queued call hasn't been performed yet.
+ // The data is where we expect it to be already, so just return true.
+ return true;
+ }
// we're connected
if (d->mode == QSocks5SocketEnginePrivate::ConnectMode ||