diff --git a/libraries/networking/src/NetworkPeer.cpp b/libraries/networking/src/NetworkPeer.cpp index 4e0a82ba0e..a48922726e 100644 --- a/libraries/networking/src/NetworkPeer.cpp +++ b/libraries/networking/src/NetworkPeer.cpp @@ -59,13 +59,13 @@ void NetworkPeer::setPublicSocket(const HifiSockAddr& publicSocket) { bool wasOldSocketNull = _publicSocket.isNull(); - auto temp = _publicSocket.objectName(); + auto previousSocket = _publicSocket; _publicSocket = publicSocket; - _publicSocket.setObjectName(temp); + _publicSocket.setObjectName(previousSocket.objectName()); if (!wasOldSocketNull) { - qCDebug(networking) << "Public socket change for node" << *this; - emit socketUpdated(); + qCDebug(networking) << "Public socket change for node" << *this << "; previously" << previousSocket; + emit socketUpdated(previousSocket, _publicSocket); } } } @@ -79,13 +79,13 @@ void NetworkPeer::setLocalSocket(const HifiSockAddr& localSocket) { bool wasOldSocketNull = _localSocket.isNull(); - auto temp = _localSocket.objectName(); + auto previousSocket = _localSocket; _localSocket = localSocket; - _localSocket.setObjectName(temp); + _localSocket.setObjectName(previousSocket.objectName()); if (!wasOldSocketNull) { - qCDebug(networking) << "Local socket change for node" << *this; - emit socketUpdated(); + qCDebug(networking) << "Local socket change for node" << *this << "; previously" << previousSocket; + emit socketUpdated(previousSocket, _localSocket); } } } @@ -99,13 +99,13 @@ void NetworkPeer::setSymmetricSocket(const HifiSockAddr& symmetricSocket) { bool wasOldSocketNull = _symmetricSocket.isNull(); - auto temp = _symmetricSocket.objectName(); + auto previousSocket = _symmetricSocket; _symmetricSocket = symmetricSocket; - _symmetricSocket.setObjectName(temp); + _symmetricSocket.setObjectName(previousSocket.objectName()); if (!wasOldSocketNull) { - qCDebug(networking) << "Symmetric socket change for node" << *this; - emit socketUpdated(); + qCDebug(networking) << "Symmetric socket change for node" << *this << "; previously" << previousSocket; + emit socketUpdated(previousSocket, _symmetricSocket); } } } diff --git a/libraries/networking/src/NetworkPeer.h b/libraries/networking/src/NetworkPeer.h index e2149d64af..4c08c97d3c 100644 --- a/libraries/networking/src/NetworkPeer.h +++ b/libraries/networking/src/NetworkPeer.h @@ -94,7 +94,7 @@ public slots: signals: void pingTimerTimeout(); void socketActivated(const HifiSockAddr& sockAddr); - void socketUpdated(); + void socketUpdated(HifiSockAddr previousAddress, HifiSockAddr currentAddress); protected: void setActiveSocket(HifiSockAddr* discoveredSocket); diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index c56f276560..7cc6680efd 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -538,6 +538,11 @@ void Socket::handleStateChanged(QAbstractSocket::SocketState socketState) { } } +void Socket::handleRemoteAddressChange(HifiSockAddr previousAddress, HifiSockAddr currentAddress) { + Lock connectionsLock(_connectionsHashMutex); + +} + #if (PR_BUILD || DEV_BUILD) void Socket::sendFakedHandshakeRequest(const HifiSockAddr& sockAddr) { diff --git a/libraries/networking/src/udt/Socket.h b/libraries/networking/src/udt/Socket.h index ad9d6de8b8..74eb413bc2 100644 --- a/libraries/networking/src/udt/Socket.h +++ b/libraries/networking/src/udt/Socket.h @@ -106,11 +106,11 @@ private slots: void handleSocketError(QAbstractSocket::SocketError socketError); void handleStateChanged(QAbstractSocket::SocketState socketState); + void handleRemoteAddressChange(HifiSockAddr previousAddress, HifiSockAddr currentAddress); private: void setSystemBufferSizes(); Connection* findOrCreateConnection(const HifiSockAddr& sockAddr, bool filterCreation = false); - bool socketMatchesNodeOrDomain(const HifiSockAddr& sockAddr); // privatized methods used by UDTTest - they are private since they must be called on the Socket thread ConnectionStats::Stats sampleStatsForConnection(const HifiSockAddr& destination);