From 0ea46cb4155cbdae47e854b6eb2fa0146853804b Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 5 May 2016 15:35:37 -0700 Subject: [PATCH] send fallback socket, don't send HB if send usage disabled --- interface/src/DiscoverabilityManager.cpp | 19 +++++++++++++++---- libraries/networking/src/UserActivityLogger.h | 2 ++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/interface/src/DiscoverabilityManager.cpp b/interface/src/DiscoverabilityManager.cpp index 230f4202c8..bc1403aa46 100644 --- a/interface/src/DiscoverabilityManager.cpp +++ b/interface/src/DiscoverabilityManager.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "DiscoverabilityManager.h" @@ -44,6 +45,7 @@ void DiscoverabilityManager::updateLocation() { QJsonObject rootObject; QJsonObject locationObject; + QString pathString = addressManager->currentPath(); @@ -56,13 +58,22 @@ void DiscoverabilityManager::updateLocation() { const QString PLACE_ID_KEY_IN_LOCATION = "place_id"; locationObject.insert(PLACE_ID_KEY_IN_LOCATION, uuidStringWithoutCurlyBraces(addressManager->getRootPlaceID())); - - } else { + } + + if (!domainHandler.getUUID().isNull()) { const QString DOMAIN_ID_KEY_IN_LOCATION = "domain_id"; locationObject.insert(DOMAIN_ID_KEY_IN_LOCATION, uuidStringWithoutCurlyBraces(domainHandler.getUUID())); } - + + // in case the place/domain isn't in the database, we send the network address and port + auto& domainSockAddr = domainHandler.getSockAddr(); + const QString NETWORK_ADRESS_KEY_IN_LOCATION = "network_address"; + locationObject.insert(NETWORK_ADRESS_KEY_IN_LOCATION, domainSockAddr.getAddress().toString()); + + const QString NETWORK_ADDRESS_PORT_IN_LOCATION = "network_port"; + locationObject.insert(NETWORK_ADDRESS_PORT_IN_LOCATION, domainSockAddr.getPort()); + const QString FRIENDS_ONLY_KEY_IN_LOCATION = "friends_only"; locationObject.insert(FRIENDS_ONLY_KEY_IN_LOCATION, (_mode.get() == Discoverability::Friends)); @@ -72,7 +83,7 @@ void DiscoverabilityManager::updateLocation() { QNetworkAccessManager::PutOperation, JSONCallbackParameters(), QJsonDocument(rootObject).toJson()); } - } else { + } else if (UserActivityLogger::getInstance().isEnabled()) { // we still send a heartbeat to the metaverse server for stats collection const QString API_USER_HEARTBEAT_PATH = "/api/v1/user/heartbeat"; accountManager.sendRequest(API_USER_HEARTBEAT_PATH, AccountManagerAuth::Required, QNetworkAccessManager::PutOperation); diff --git a/libraries/networking/src/UserActivityLogger.h b/libraries/networking/src/UserActivityLogger.h index 5c1cb03e3a..c2ab93db2f 100644 --- a/libraries/networking/src/UserActivityLogger.h +++ b/libraries/networking/src/UserActivityLogger.h @@ -28,6 +28,8 @@ public: static UserActivityLogger& getInstance(); public slots: + bool isEnabled() { return !_disabled.get(); } + void disable(bool disable); void logAction(QString action, QJsonObject details = QJsonObject(), JSONCallbackParameters params = JSONCallbackParameters());