summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qnativesocketengine.cpp
diff options
context:
space:
mode:
authorAlex Trotsenko <alex1973tr@gmail.com>2015-12-08 16:14:57 +0200
committerAlex Trotsenko <alex1973tr@gmail.com>2016-01-04 06:39:31 +0000
commit55f0343a99ffd920e2e14ba2bb7669d78224fe42 (patch)
tree5d917c39e41f55b766d747c09d9e6a06118d911b /src/network/socket/qnativesocketengine.cpp
parent090bf50771ec1e5d089b0ae0488059a5643883b2 (diff)
Do not discard WSAECONNRESET error code from UDP under Windows
When a datagram is sent to a closed host/port combination, the host will likely send back an ICMP error message. In the regular socket API, there isn't a good way of actually receiving this error, so some Windows kernels wired that message back up to the call to WSARecvFrom() as a synthetic datagram. Reading this datagram results in a WSAECONNRESET error code, which should reported to the user as a refused connection attempt. To make the errors a bit more informative, the native error strings for WSAECONNRESET and WSAENETRESET were also added. Task-number: QTBUG-49301 Change-Id: If659be54ba1b39965b5f481f0c0cb9eeea0a06d2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
Diffstat (limited to 'src/network/socket/qnativesocketengine.cpp')
-rw-r--r--src/network/socket/qnativesocketengine.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp
index 386e0e2cc7..dfece60036 100644
--- a/src/network/socket/qnativesocketengine.cpp
+++ b/src/network/socket/qnativesocketengine.cpp
@@ -275,6 +275,12 @@ void QNativeSocketEnginePrivate::setError(QAbstractSocket::SocketError error, Er
case TemporaryErrorString:
socketErrorString = QNativeSocketEngine::tr("Temporary error");
break;
+ case NetworkDroppedConnectionErrorString:
+ socketErrorString = QNativeSocketEngine::tr("Network dropped connection on reset");
+ break;
+ case ConnectionResetErrorString:
+ socketErrorString = QNativeSocketEngine::tr("Connection reset by peer");
+ break;
case UnknownSocketErrorString:
socketErrorString = QNativeSocketEngine::tr("Unknown error");
break;