diff --git a/app/backend/computermanager.cpp b/app/backend/computermanager.cpp index 2c6dab4e..5f330445 100644 --- a/app/backend/computermanager.cpp +++ b/app/backend/computermanager.cpp @@ -32,7 +32,7 @@ private: QString serverInfo; try { - serverInfo = http.getServerInfo(NvHTTP::NvLogLevel::NVLL_NONE); + serverInfo = http.getServerInfo(NvHTTP::NvLogLevel::NVLL_NONE, true); } catch (...) { return false; } @@ -84,7 +84,7 @@ private: bool stateChanged = false; bool online = false; bool wasOnline = m_Computer->state == NvComputer::CS_ONLINE; - for (int i = 0; i < TRIES_BEFORE_OFFLINING && !online; i++) { + for (int i = 0; i < (wasOnline ? TRIES_BEFORE_OFFLINING : 1) && !online; i++) { for (auto& address : m_Computer->uniqueAddresses()) { if (isInterruptionRequested()) { return; diff --git a/app/backend/nvhttp.cpp b/app/backend/nvhttp.cpp index a9eee4c4..9d81ba0a 100644 --- a/app/backend/nvhttp.cpp +++ b/app/backend/nvhttp.cpp @@ -12,6 +12,7 @@ #include #include +#define FAST_FAIL_TIMEOUT_MS 2000 #define REQUEST_TIMEOUT_MS 5000 #define LAUNCH_TIMEOUT_MS 120000 #define RESUME_TIMEOUT_MS 30000 @@ -92,7 +93,7 @@ NvHTTP::getCurrentGame(QString serverInfo) } QString -NvHTTP::getServerInfo(NvLogLevel logLevel) +NvHTTP::getServerInfo(NvLogLevel logLevel, bool fastFail) { QString serverInfo; @@ -106,7 +107,7 @@ NvHTTP::getServerInfo(NvLogLevel logLevel) serverInfo = openConnectionToString(m_BaseUrlHttps, "serverinfo", nullptr, - REQUEST_TIMEOUT_MS, + fastFail ? FAST_FAIL_TIMEOUT_MS : REQUEST_TIMEOUT_MS, logLevel); // Throws if the request failed verifyResponseStatus(serverInfo); @@ -119,7 +120,7 @@ NvHTTP::getServerInfo(NvLogLevel logLevel) serverInfo = openConnectionToString(m_BaseUrlHttp, "serverinfo", nullptr, - REQUEST_TIMEOUT_MS, + fastFail ? FAST_FAIL_TIMEOUT_MS : REQUEST_TIMEOUT_MS, logLevel); verifyResponseStatus(serverInfo); } @@ -136,7 +137,7 @@ NvHTTP::getServerInfo(NvLogLevel logLevel) serverInfo = openConnectionToString(m_BaseUrlHttp, "serverinfo", nullptr, - REQUEST_TIMEOUT_MS, + fastFail ? FAST_FAIL_TIMEOUT_MS : REQUEST_TIMEOUT_MS, logLevel); verifyResponseStatus(serverInfo); } diff --git a/app/backend/nvhttp.h b/app/backend/nvhttp.h index b2bccc4f..efa89ae0 100644 --- a/app/backend/nvhttp.h +++ b/app/backend/nvhttp.h @@ -131,7 +131,7 @@ public: getCurrentGame(QString serverInfo); QString - getServerInfo(NvLogLevel logLevel); + getServerInfo(NvLogLevel logLevel, bool fastFail = false); static void