OSDN Git Service

Use simplified() method to clean-up input lines.
[mutilities/MUtilities.git] / src / UpdateChecker.cpp
index b975683..a829f41 100644 (file)
@@ -224,33 +224,33 @@ void MUtils::UpdateChecker::checkForUpdates(void)
        int connectionScore = 0;
        QQueue<QString> mirrorList = buildRandomList(known_hosts);
 
-       for(int connectionTimout = 1000; connectionTimout <= MAX_CONN_TIMEOUT; connectionTimout *= 2)
+       for(int connectionTimeout = 1000; connectionTimeout <= MAX_CONN_TIMEOUT; connectionTimeout *= 2)
        {
                QElapsedTimer elapsedTimer;
-               const int globalTimout = 2 * MIN_CONNSCORE * connectionTimout;
                elapsedTimer.start();
-               do
+               const int globalTimeout = 2 * MIN_CONNSCORE * connectionTimeout, count = mirrorList.count();
+               for(int i = 0; i < count; ++i)
                {
-                       if (!mirrorList.isEmpty())
+                       Q_ASSERT(!mirrorList.isEmpty());
+                       const QString hostName = mirrorList.dequeue();
+                       if (tryContactHost(hostName, connectionTimeout))
                        {
-                               const QString hostName = mirrorList.dequeue();
-                               if (tryContactHost(hostName, connectionTimout))
+                               setProgress(1 + (++connectionScore));
+                               if (connectionScore >= MIN_CONNSCORE)
                                {
-                                       setProgress(1 + (connectionScore += 1));
-                                       elapsedTimer.restart();
-                                       if (connectionScore >= MIN_CONNSCORE)
-                                       {
-                                               goto endLoop; /*success*/
-                                       }
+                                       goto endLoop; /*success*/
                                }
-                               else
+                       }
+                       else
+                       {
+                               mirrorList.enqueue(hostName);
+                               if(elapsedTimer.hasExpired(globalTimeout))
                                {
-                                       mirrorList.enqueue(hostName); /*re-schedule*/
+                                       break; /*timer expired*/
                                }
                        }
                        CHECK_CANCELLED();
                }
-               while(!elapsedTimer.hasExpired(globalTimout));
        }
 
 endLoop:
@@ -315,10 +315,10 @@ endLoop:
 
 void MUtils::UpdateChecker::testMirrorsList(void)
 {
-       QStringList mirrorList;
+       QQueue<QString> mirrorList;
        for(int i = 0; update_mirrors[i]; i++)
        {
-               mirrorList << QString::fromLatin1(update_mirrors[i]);
+               mirrorList.enqueue(QString::fromLatin1(update_mirrors[i]));
        }
 
        // ----- Test update mirrors ----- //
@@ -329,10 +329,10 @@ void MUtils::UpdateChecker::testMirrorsList(void)
        UpdateCheckerInfo updateInfo;
        while (!mirrorList.isEmpty())
        {
-               const QString currentMirror = mirrorList.takeFirst();
+               const QString currentMirror = mirrorList.dequeue();
                bool success = false;
                qDebug("Testing: %s", MUTILS_L1STR(currentMirror));
-               log("", "Testing:", currentMirror, "");
+               log("", "Testing mirror:", currentMirror, "");
                for (quint8 attempt = 0; attempt < 3; ++attempt)
                {
                        updateInfo.resetInfo();
@@ -351,20 +351,20 @@ void MUtils::UpdateChecker::testMirrorsList(void)
 
        // ----- Test known hosts ----- //
 
-       QStringList knownHostList;
+       mirrorList.clear();
        for (int i = 0; known_hosts[i]; i++)
        {
-               knownHostList << QString::fromLatin1(known_hosts[i]);
+               mirrorList.enqueue(QString::fromLatin1(known_hosts[i]));
        }
 
        qDebug("\n[Known Hosts]");
        log("Testing all known hosts...", "", "---");
 
-       while(!knownHostList.isEmpty())
+       while(!mirrorList.isEmpty())
        {
-               const QString currentHost = knownHostList.takeFirst();
+               const QString currentHost = mirrorList.dequeue();
                qDebug("Testing: %s", MUTILS_L1STR(currentHost));
-               log(QLatin1String(""), "Testing:", currentHost, "");
+               log(QLatin1String(""), "Testing host:", currentHost, "");
                if (!tryContactHost(currentHost, DOWNLOAD_TIMEOUT))
                {
                        qWarning("\nConnectivity test FAILED on the following host:\n%s\n", MUTILS_L1STR(currentHost));
@@ -522,7 +522,7 @@ bool MUtils::UpdateChecker::parseVersionInfo(const QString &file, UpdateCheckerI
 
        while(!data.atEnd())
        {
-               QString line = QString::fromLatin1(data.readLine()).trimmed();
+               QString line = QString::fromLatin1(data.readLine()).simplified();
                if (regex_sec.indexIn(line) >= 0)
                {
                        sectionId = 0; /*unknown section*/