From adcf45583e38e95a9f28f3d9937b72990257f6fb Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 31 Jul 2014 14:06:43 -0700 Subject: [PATCH 1/3] clear domain settings on NodeList reset --- libraries/networking/src/DomainHandler.cpp | 1 + libraries/networking/src/NodeList.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp index 786726b745..74bb411845 100644 --- a/libraries/networking/src/DomainHandler.cpp +++ b/libraries/networking/src/DomainHandler.cpp @@ -130,6 +130,7 @@ void DomainHandler::setIsConnected(bool isConnected) { } void DomainHandler::requestDomainSettings() const { + qDebug() << _settingsObject; if (_settingsObject.isEmpty()) { // setup the URL required to grab settings JSON QUrl settingsJSONURL; diff --git a/libraries/networking/src/NodeList.cpp b/libraries/networking/src/NodeList.cpp index b872ec12cf..8db8232516 100644 --- a/libraries/networking/src/NodeList.cpp +++ b/libraries/networking/src/NodeList.cpp @@ -179,6 +179,7 @@ void NodeList::reset() { // clear the domain connection information _domainHandler.clearConnectionInfo(); + _domainHandler.clearSettings(); // if we setup the DTLS socket, also disconnect from the DTLS socket readyRead() so it can handle handshaking if (_dtlsSocket) { From 8986e62b8a1dce2687855f47c829796562bfc8cd Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 31 Jul 2014 14:08:25 -0700 Subject: [PATCH 2/3] add distinction between hard reset and soft reset for DomainHandler --- libraries/networking/src/DomainHandler.cpp | 10 +++++++--- libraries/networking/src/DomainHandler.h | 4 +++- libraries/networking/src/NodeList.cpp | 3 +-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp index 74bb411845..afe380528f 100644 --- a/libraries/networking/src/DomainHandler.cpp +++ b/libraries/networking/src/DomainHandler.cpp @@ -49,9 +49,13 @@ void DomainHandler::clearSettings() { _failedSettingsRequests = 0; } -void DomainHandler::reset() { +void DomainHandler::softReset() { clearConnectionInfo(); clearSettings(); +} + +void DomainHandler::hardReset() { + softReset(); _hostname = QString(); _sockAddr.setAddress(QHostAddress::Null); } @@ -59,7 +63,7 @@ void DomainHandler::reset() { void DomainHandler::setSockAddr(const HifiSockAddr& sockAddr, const QString& hostname) { if (_sockAddr != sockAddr) { // we should reset on a sockAddr change - reset(); + hardReset(); // change the sockAddr _sockAddr = sockAddr; } @@ -72,7 +76,7 @@ void DomainHandler::setHostname(const QString& hostname) { if (hostname != _hostname) { // re-set the domain info so that auth information is reloaded - reset(); + hardReset(); int colonIndex = hostname.indexOf(':'); diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h index a2b8e2e307..28433c5455 100644 --- a/libraries/networking/src/DomainHandler.h +++ b/libraries/networking/src/DomainHandler.h @@ -62,6 +62,8 @@ public: void parseDTLSRequirementPacket(const QByteArray& dtlsRequirementPacket); + void softReset(); + private slots: void completedHostnameLookup(const QHostInfo& hostInfo); void settingsRequestFinished(); @@ -73,7 +75,7 @@ signals: void settingsReceiveFail(); private: - void reset(); + void hardReset(); QUuid _uuid; QString _hostname; diff --git a/libraries/networking/src/NodeList.cpp b/libraries/networking/src/NodeList.cpp index 8db8232516..992a168244 100644 --- a/libraries/networking/src/NodeList.cpp +++ b/libraries/networking/src/NodeList.cpp @@ -178,8 +178,7 @@ void NodeList::reset() { setSessionUUID(QUuid()); // clear the domain connection information - _domainHandler.clearConnectionInfo(); - _domainHandler.clearSettings(); + _domainHandler.softReset(); // if we setup the DTLS socket, also disconnect from the DTLS socket readyRead() so it can handle handshaking if (_dtlsSocket) { From 6024b90932ac0bc24bf75345c48924d645016f4d Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 31 Jul 2014 14:08:52 -0700 Subject: [PATCH 3/3] remove extra debug line --- libraries/networking/src/DomainHandler.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp index afe380528f..fcd284fd4a 100644 --- a/libraries/networking/src/DomainHandler.cpp +++ b/libraries/networking/src/DomainHandler.cpp @@ -134,7 +134,6 @@ void DomainHandler::setIsConnected(bool isConnected) { } void DomainHandler::requestDomainSettings() const { - qDebug() << _settingsObject; if (_settingsObject.isEmpty()) { // setup the URL required to grab settings JSON QUrl settingsJSONURL;