From 5f43f5b27626d8120b67134bca2decb3d91db58a Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Thu, 30 Aug 2018 17:40:13 -0700 Subject: [PATCH] adding different method for handling redirect --- interface/src/Application.cpp | 32 ++++----------------- interface/src/Application.h | 2 +- libraries/networking/src/AddressManager.cpp | 4 ++- libraries/networking/src/DomainHandler.cpp | 14 +++++++++ libraries/networking/src/DomainHandler.h | 6 ++++ 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 348d1d5690..1041ab64ca 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1197,11 +1197,9 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo getOverlays().deleteOverlay(getTabletHomeButtonID()); getOverlays().deleteOverlay(getTabletFrameID()); }); -#if defined(Q_OS_ANDROID) connect(&domainHandler, &DomainHandler::domainConnectionRefused, this, &Application::domainConnectionRefused); -#else - connect(&domainHandler, &DomainHandler::domainConnectionRefused, this, &Application::domainConnectionRedirect); -#endif + + &domainHandler.setErrorDomainURL(QUrl(REDIRECT_HIFI_ADDRESS)); // We could clear ATP assets only when changing domains, but it's possible that the domain you are connected // to has gone down and switched to a new content set, so when you reconnect the cached ATP assets will no longer be valid. @@ -2350,31 +2348,11 @@ void Application::domainConnectionRefused(const QString& reasonMessage, int reas } } -void Application::domainConnectionRedirect(const QString& reasonMessage, int reasonCodeInt, const QString& extraInfo) { - DomainHandler::ConnectionRefusedReason reasonCode = static_cast(reasonCodeInt); +void Application::domainConnectionRedirect() { auto addressManager = DependencyManager::get(); - if (reasonCode == DomainHandler::ConnectionRefusedReason::TooManyUsers && !extraInfo.isEmpty()) { - addressManager->handleLookupString(extraInfo); - return; - } - - switch (reasonCode) { - case DomainHandler::ConnectionRefusedReason::ProtocolMismatch: - case DomainHandler::ConnectionRefusedReason::TooManyUsers: - case DomainHandler::ConnectionRefusedReason::Unknown: { - QString message = "Unable to connect to the location you are visiting.\n"; - message += reasonMessage; - //OffscreenUi::asyncWarning("", message); - addressManager->handleLookupString(REDIRECT_HIFI_ADDRESS); - getMyAvatar()->setWorldVelocity(glm::vec3(0.0f)); - // in (w, x, y, z) component-structure for the constructor - break; - } - default: - // nothing to do. - break; - } + addressManager->handleLookupString(REDIRECT_HIFI_ADDRESS); + getMyAvatar()->setWorldVelocity(glm::vec3(0.0f)); } diff --git a/interface/src/Application.h b/interface/src/Application.h index 61548f203b..e38b5a3919 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -474,7 +474,7 @@ private slots: void updateDisplayMode(); void setDisplayPlugin(DisplayPluginPointer newPlugin); void domainConnectionRefused(const QString& reasonMessage, int reason, const QString& extraInfo); - void domainConnectionRedirect(const QString& reasonMessage, int reason, const QString& extraInfo); + void domainConnectionRedirect(); void addAssetToWorldCheckModelSize(); diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index 732a2d7963..01db8dfd79 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -319,7 +319,9 @@ bool AddressManager::handleUrl(const QUrl& lookupUrl, LookupTrigger trigger) { // lookupUrl.scheme() == URL_SCHEME_HTTPS || _previousLookup.clear(); _shareablePlaceName.clear(); - setDomainInfo(lookupUrl, trigger); + if (lookupUrl.toString() != REDIRECT_HIFI_ADDRESS) { + setDomainInfo(lookupUrl, trigger); + } emit lookupResultsFinished(); QString path = DOMAIN_SPAWNING_POINT; diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp index 39c8b5b1a1..827232129f 100644 --- a/libraries/networking/src/DomainHandler.cpp +++ b/libraries/networking/src/DomainHandler.cpp @@ -128,6 +128,10 @@ void DomainHandler::hardReset() { _pendingPath.clear(); } +void DomainHandler::setErrorDomainURL(const QUrl& url) { + return; +} + void DomainHandler::setSockAddr(const HifiSockAddr& sockAddr, const QString& hostname) { if (_sockAddr != sockAddr) { // we should reset on a sockAddr change @@ -451,7 +455,17 @@ void DomainHandler::processDomainServerConnectionDeniedPacket(QSharedPointer(); diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h index a428110db6..473cac9133 100644 --- a/libraries/networking/src/DomainHandler.h +++ b/libraries/networking/src/DomainHandler.h @@ -50,6 +50,9 @@ public: QString getHostname() const { return _domainURL.host(); } + QUrl getErrorDomainURL(){ return _errorDomainURL; } + void setErrorDomainURL(const QUrl& url); + const QHostAddress& getIP() const { return _sockAddr.getAddress(); } void setIPToLocalhost() { _sockAddr.setAddress(QHostAddress(QHostAddress::LocalHost)); } @@ -179,6 +182,7 @@ signals: void settingsReceiveFail(); void domainConnectionRefused(QString reasonMessage, int reason, const QString& extraInfo); + void redirectToErrorDomainURL(); void limitOfSilentDomainCheckInsReached(); @@ -190,6 +194,7 @@ private: QUuid _uuid; Node::LocalID _localID; QUrl _domainURL; + QUrl _errorDomainURL; HifiSockAddr _sockAddr; QUuid _assignmentUUID; QUuid _connectionToken; @@ -198,6 +203,7 @@ private: HifiSockAddr _iceServerSockAddr; NetworkPeer _icePeer; bool _isConnected { false }; + bool _isInErrorState { false }; QJsonObject _settingsObject; QString _pendingPath; QTimer _settingsTimer;