From 63024663b286c775dfcde99fe036544f41aff6b0 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 3 Oct 2014 09:37:13 -0700 Subject: [PATCH] don't require settings request for agent nodes --- libraries/networking/src/DomainHandler.cpp | 38 +++++++++++++--------- libraries/networking/src/DomainHandler.h | 2 +- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp index daa9b6eca6..fecbd1457f 100644 --- a/libraries/networking/src/DomainHandler.cpp +++ b/libraries/networking/src/DomainHandler.cpp @@ -185,21 +185,29 @@ void DomainHandler::setIsConnected(bool isConnected) { } } -void DomainHandler::requestDomainSettings() const { - if (_settingsObject.isEmpty()) { - // setup the URL required to grab settings JSON - QUrl settingsJSONURL; - settingsJSONURL.setScheme("http"); - settingsJSONURL.setHost(_hostname); - settingsJSONURL.setPort(DOMAIN_SERVER_HTTP_PORT); - settingsJSONURL.setPath("/settings.json"); - Assignment::Type assignmentType = Assignment::typeForNodeType(NodeList::getInstance()->getOwnerType()); - settingsJSONURL.setQuery(QString("type=%1").arg(assignmentType)); - - qDebug() << "Requesting domain-server settings at" << settingsJSONURL.toString(); - - QNetworkReply* reply = NetworkAccessManager::getInstance().get(QNetworkRequest(settingsJSONURL)); - connect(reply, &QNetworkReply::finished, this, &DomainHandler::settingsRequestFinished); +void DomainHandler::requestDomainSettings() { + NodeType_t owningNodeType = NodeList::getInstance()->getOwnerType(); + if (owningNodeType == NodeType::Agent) { + // for now the agent nodes don't need any settings - this allows local assignment-clients + // to connect to a domain that is using automatic networking (since we don't have TCP hole punch yet) + _settingsObject = QJsonObject(); + emit settingsReceived(_settingsObject); + } else { + if (_settingsObject.isEmpty()) { + // setup the URL required to grab settings JSON + QUrl settingsJSONURL; + settingsJSONURL.setScheme("http"); + settingsJSONURL.setHost(_hostname); + settingsJSONURL.setPort(DOMAIN_SERVER_HTTP_PORT); + settingsJSONURL.setPath("/settings.json"); + Assignment::Type assignmentType = Assignment::typeForNodeType(NodeList::getInstance()->getOwnerType()); + settingsJSONURL.setQuery(QString("type=%1").arg(assignmentType)); + + qDebug() << "Requesting domain-server settings at" << settingsJSONURL.toString(); + + QNetworkReply* reply = NetworkAccessManager::getInstance().get(QNetworkRequest(settingsJSONURL)); + connect(reply, &QNetworkReply::finished, this, &DomainHandler::settingsRequestFinished); + } } } diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h index b41bbd98aa..515dd92c12 100644 --- a/libraries/networking/src/DomainHandler.h +++ b/libraries/networking/src/DomainHandler.h @@ -67,7 +67,7 @@ public: void setIsConnected(bool isConnected); bool hasSettings() const { return !_settingsObject.isEmpty(); } - void requestDomainSettings() const; + void requestDomainSettings(); const QJsonObject& getSettingsObject() const { return _settingsObject; } void parseDTLSRequirementPacket(const QByteArray& dtlsRequirementPacket);