diff --git a/src/UpdateChecker.cpp b/src/UpdateChecker.cpp index b975683..f91b91d 100644 --- a/src/UpdateChecker.cpp +++ b/src/UpdateChecker.cpp @@ -231,23 +231,23 @@ void MUtils::UpdateChecker::checkForUpdates(void) elapsedTimer.start(); do { - if (!mirrorList.isEmpty()) + if (mirrorList.isEmpty()) { - const QString hostName = mirrorList.dequeue(); - if (tryContactHost(hostName, connectionTimout)) + goto endLoop; /*depleted!*/ + } + const QString hostName = mirrorList.dequeue(); + if (tryContactHost(hostName, connectionTimout)) + { + setProgress(1 + (connectionScore += 1)); + if (connectionScore >= MIN_CONNSCORE) { - setProgress(1 + (connectionScore += 1)); - elapsedTimer.restart(); - if (connectionScore >= MIN_CONNSCORE) - { - goto endLoop; /*success*/ - } - } - else - { - mirrorList.enqueue(hostName); /*re-schedule*/ + goto endLoop; /*success*/ } } + else + { + mirrorList.enqueue(hostName); /*re-schedule*/ + } CHECK_CANCELLED(); } while(!elapsedTimer.hasExpired(globalTimout));