From af341f0ee52d717d8943b4b2d4a727999d2a44d8 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Wed, 25 Feb 2015 12:11:32 -0800 Subject: [PATCH] if hifi uri is localhost, extract domain-server port from shared memory --- libraries/networking/src/AddressManager.cpp | 12 ++++++++++-- libraries/networking/src/AddressManager.h | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index f67abdca2b..58399a6075 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -34,7 +34,8 @@ AddressManager::AddressManager() : _rootPlaceName(), _rootPlaceID(), _positionGetter(NULL), - _orientationGetter(NULL) + _orientationGetter(NULL), + _localDSPortSharedMem(NULL) { connect(qApp, &QCoreApplication::aboutToQuit, this, &AddressManager::storeCurrentAddress); } @@ -152,8 +153,15 @@ void AddressManager::handleLookupString(const QString& lookupString) { if (!lookupString.startsWith('/')) { const QRegExp HIFI_SCHEME_REGEX = QRegExp(HIFI_URL_SCHEME + ":\\/{1,2}", Qt::CaseInsensitive); sanitizedString = sanitizedString.remove(HIFI_SCHEME_REGEX); + + quint16 localDomainServerPort = DEFAULT_DOMAIN_SERVER_PORT; + if (sanitizedString == "localhost") { + auto nodeList = DependencyManager::get(); + nodeList->getLocalServerPortFromSharedMemory + (DOMAIN_SERVER_LOCAL_PORT_SMEM_KEY, _localDSPortSharedMem, localDomainServerPort); + } - lookupURL = QUrl(HIFI_URL_SCHEME + "://" + sanitizedString); + lookupURL = QUrl(HIFI_URL_SCHEME + "://" + sanitizedString + ":" + QString::number(localDomainServerPort)); } else { lookupURL = QUrl(lookupString); } diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index 0c24c12cc9..bfc3ace657 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -13,6 +13,7 @@ #define hifi_AddressManager_h #include +#include #include #include @@ -94,6 +95,8 @@ private: QUuid _rootPlaceID; PositionGetter _positionGetter; OrientationGetter _orientationGetter; + + QSharedMemory* _localDSPortSharedMem; // memory shared with domain server }; -#endif // hifi_AddressManager_h \ No newline at end of file +#endif // hifi_AddressManager_h