From 5f05be554f3d079a52c36b30adc7f6733847d555 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Mon, 1 Oct 2018 10:06:13 -0700 Subject: [PATCH] check for hard refusal to 404 --- libraries/networking/src/DomainHandler.cpp | 7 ++++++- libraries/networking/src/DomainHandler.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp index 3a8253bfc6..615546b410 100644 --- a/libraries/networking/src/DomainHandler.cpp +++ b/libraries/networking/src/DomainHandler.cpp @@ -139,6 +139,11 @@ void DomainHandler::hardReset() { _pendingPath.clear(); } +bool DomainHandler::isHardRefusal(int reasonCode) { + return (reasonCode == (int)ConnectionRefusedReason::ProtocolMismatch || reasonCode == (int)ConnectionRefusedReason::NotAuthorized || + reasonCode == (int)ConnectionRefusedReason::TimedOut); +} + bool DomainHandler::getInterstitialModeEnabled() const { return _interstitialModeSettingLock.resultWithReadLock([&] { return _enableInterstitialMode.get(); @@ -360,7 +365,7 @@ void DomainHandler::loadedErrorDomain(std::map namedPaths) { void DomainHandler::setRedirectErrorState(QUrl errorUrl, QString reasonMessage, int reasonCode, const QString& extraInfo) { _lastDomainConnectionError = reasonCode; - if (getInterstitialModeEnabled()) { + if (getInterstitialModeEnabled() && isHardRefusal(reasonCode)) { _errorDomainURL = errorUrl; _isInErrorState = true; qCDebug(networking) << "Error connecting to domain: " << reasonMessage; diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h index 8cf84b602a..1ff88b425d 100644 --- a/libraries/networking/src/DomainHandler.h +++ b/libraries/networking/src/DomainHandler.h @@ -212,6 +212,8 @@ private: void sendDisconnectPacket(); void hardReset(); + bool isHardRefusal(int reasonCode); + QUuid _uuid; Node::LocalID _localID; QUrl _domainURL;