mark scan as finished only if loading failed or the request timed out

This commit is contained in:
john30
2017-12-17 10:04:01 +01:00
parent 86a97d24f0
commit 6bba2d6a02
+7 -4
View File
@@ -1495,6 +1495,7 @@ result_t BusHandler::scanAndWait(symbol_t dstAddress, bool loadScanConfig, bool
if (result != RESULT_OK) {
return result;
}
bool requestExecuted = false;
if (request) {
if (reload) {
m_scanResults.erase(dstAddress);
@@ -1503,17 +1504,19 @@ result_t BusHandler::scanAndWait(symbol_t dstAddress, bool loadScanConfig, bool
}
m_runningScans++;
m_nextRequests.push(request);
bool success = m_finishedRequests.remove(request, true);
result = success ? request->m_result : RESULT_ERR_TIMEOUT;
requestExecuted = m_finishedRequests.remove(request, true);
result = requestExecuted ? request->m_result : RESULT_ERR_TIMEOUT;
delete request;
request = NULL;
}
if (loadScanConfig) {
string file;
bool timedOut = result == RESULT_ERR_TIMEOUT;
bool loadFailed = false;
if (timedOut || result == RESULT_OK) {
result = loadScanConfigFile(m_messages, dstAddress, false, &file); // try to load even if one message timed out
if (timedOut && result != RESULT_OK) {
loadFailed = result != RESULT_OK;
if (timedOut && loadFailed) {
result = RESULT_ERR_TIMEOUT; // back to previous result
}
}
@@ -1524,7 +1527,7 @@ result_t BusHandler::scanAndWait(symbol_t dstAddress, bool loadScanConfig, bool
// additional scan messages now available
scanAndWait(dstAddress, false, false);
}
} else if (result != RESULT_ERR_NOTFOUND) {
} else if (loadFailed || (requestExecuted && timedOut) || result == RESULT_ERR_NOTAUTHORIZED) {
setScanConfigLoaded(dstAddress, "");
}
}