From d0bd4a7d479a529b3bdcda9fe961dad6c9cd0079 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly Date: Thu, 6 Jun 2019 14:01:34 -0700 Subject: [PATCH] try rebinding on error writing/reading from bound socket --- libraries/networking/src/udt/Socket.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index 2867e83a1c..c73ac8109f 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -500,10 +500,18 @@ std::vector Socket::getConnectionSockAddrs() { void Socket::handleSocketError(QAbstractSocket::SocketError socketError) { qCDebug(networking) << "udt::Socket (" << _udpSocket.state() << ") error - " << socketError << "(" << _udpSocket.errorString() << ")"; +#ifdef WIN32 + int wsaError = WSAGetLastError(); + qCDebug(networking) << "windows socket error " << wsaError; +#endif #ifdef DEBUG_EVENT_QUEUE int nodeListQueueSize = ::hifi::qt::getEventQueueSize(thread()); qCDebug(networking) << "Networking queue size - " << nodeListQueueSize; #endif // DEBUG_EVENT_QUEUE + + if (_udpSocket.state() == QAbstractSocket::BoundState) { + rebind(); + } } void Socket::handleStateChanged(QAbstractSocket::SocketState socketState) {