diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index cf66847b6c..b3ddc24914 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -36,6 +36,11 @@ Socket::Socket(QObject* parent) : // start our timer for the synchronization time interval _synTimer->start(_synInterval); + + // make sure we hear about errors and state changes from the underlying socket + connect(&_udpSocket, SIGNAL(error(QAbstractSocket::SocketError)), + this, SLOT(handleSocketError(QAbstractSocket::SocketError))); + connect(&_udpSocket, &QAbstractSocket::stateChanged, this, &Socket::handleStateChanged); } void Socket::bind(const QHostAddress& address, quint16 port) { @@ -406,3 +411,13 @@ std::vector Socket::getConnectionSockAddrs() { } return addr; } + +void Socket::handleSocketError(QAbstractSocket::SocketError socketError) { + qCWarning(networking) << "udt::Socket error -" << socketError; +} + +void Socket::handleStateChanged(QAbstractSocket::SocketState socketState) { + if (socketState != QAbstractSocket::BoundState) { + qCWarning(networking) << "udt::Socket state changed - state is now" << socketState; + } +} diff --git a/libraries/networking/src/udt/Socket.h b/libraries/networking/src/udt/Socket.h index 35a32a034f..6b8ccf1fa8 100644 --- a/libraries/networking/src/udt/Socket.h +++ b/libraries/networking/src/udt/Socket.h @@ -86,7 +86,10 @@ public slots: private slots: void readPendingDatagrams(); void rateControlSync(); - + + void handleSocketError(QAbstractSocket::SocketError socketError); + void handleStateChanged(QAbstractSocket::SocketState socketState); + private: void setSystemBufferSizes(); Connection& findOrCreateConnection(const HifiSockAddr& sockAddr);