diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index 2b9b8d42fb..3f3234a307 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -30,10 +30,7 @@ const QString SETTINGS_CURRENT_ADDRESS_KEY = "address"; Setting::Handle currentAddressHandle(QStringList() << ADDRESS_MANAGER_SETTINGS_GROUP << "address", DEFAULT_HIFI_ADDRESS); AddressManager::AddressManager() : - _host(), - _rootPlaceID(), - _positionGetter(NULL), - _orientationGetter(NULL) + _port(0) { } @@ -47,6 +44,11 @@ const QUrl AddressManager::currentAddress() const { hifiURL.setScheme(HIFI_URL_SCHEME); hifiURL.setHost(_host); + + if (_port != 0 && _port != DEFAULT_DOMAIN_SERVER_PORT) { + hifiURL.setPort(_port); + } + hifiURL.setPath(currentPath()); return hifiURL; @@ -535,26 +537,24 @@ bool AddressManager::handleUsername(const QString& lookupString) { return false; } -void AddressManager::setHost(const QString& host, LookupTrigger trigger) { - if (host != _host) { - +void AddressManager::setHost(const QString& host, LookupTrigger trigger, quint16 port) { + if (host != _host || port != _port) { + + _port = port; + // if the host is being changed we should store current address in the history addCurrentAddressToHistory(trigger); - _host = host; - emit hostChanged(_host); + if (host != _host) { + _host = host; + emit hostChanged(_host); + } } } void AddressManager::setDomainInfo(const QString& hostname, quint16 port, LookupTrigger trigger) { - - QString domainHostString = hostname; - if (port != DEFAULT_DOMAIN_SERVER_PORT) { - domainHostString.append(QString(":%1").arg(port)); - } - - setHost(domainHostString, trigger); + setHost(hostname, trigger, port); _rootPlaceID = QUuid(); diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index def9eb6042..fbb895795b 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -58,7 +58,6 @@ public: const QString& getHost() const { return _host; } - void setPositionGetter(PositionGetter positionGetter) { _positionGetter = positionGetter; } void setOrientationGetter(OrientationGetter orientationGetter) { _orientationGetter = orientationGetter; } @@ -109,7 +108,7 @@ private slots: void goToAddressFromObject(const QVariantMap& addressMap, const QNetworkReply& reply); private: - void setHost(const QString& host, LookupTrigger trigger); + void setHost(const QString& host, LookupTrigger trigger, quint16 port = 0); void setDomainInfo(const QString& hostname, quint16 port, LookupTrigger trigger); const JSONCallbackParameters& apiCallbackParameters(); @@ -129,9 +128,10 @@ private: void addCurrentAddressToHistory(LookupTrigger trigger); QString _host; + quint16 _port; QUuid _rootPlaceID; - PositionGetter _positionGetter; - OrientationGetter _orientationGetter; + PositionGetter _positionGetter { nullptr }; + OrientationGetter _orientationGetter { nullptr }; QStack _backStack; QStack _forwardStack;