Account for the fact that some web-sites send "HTTP 200 OK" successfully, but then time-out on the way to send their payload. In this case we will now give 1/2 connection point.

This commit is contained in:
LoRd_MuldeR 2011-12-02 20:05:23 +01:00
parent 512a9acd8c
commit 98fbf7bf3b
3 changed files with 30 additions and 10 deletions

View File

@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 4 #define VER_LAMEXP_MINOR_LO 4
#define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 6 #define VER_LAMEXP_PATCH 6
#define VER_LAMEXP_BUILD 799 #define VER_LAMEXP_BUILD 800
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!) // Tool versions (minimum expected versions!)

View File

@ -142,7 +142,7 @@ static const char *known_hosts[] = //Taken form: http://www.alexa.com/topsites
NULL NULL
}; };
static const int MIN_CONNSCORE = 4; static const int MIN_CONNSCORE = 8;
static const int VERSION_INFO_EXPIRES_MONTHS = 6; static const int VERSION_INFO_EXPIRES_MONTHS = 6;
static char *USER_AGENT_STR = "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101101 IceCat/3.6.12 (like Firefox/3.6.12)"; static char *USER_AGENT_STR = "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101101 IceCat/3.6.12 (like Firefox/3.6.12)";
@ -393,7 +393,12 @@ void UpdateDialog::checkForUpdates(void)
{ {
m_logFile->append(QStringList() << "" << "Testing host:" << currentHost << ""); m_logFile->append(QStringList() << "" << "Testing host:" << currentHost << "");
QString outFile = QString("%1/%2.htm").arg(lamexp_temp_folder2(), lamexp_rand_str()); QString outFile = QString("%1/%2.htm").arg(lamexp_temp_folder2(), lamexp_rand_str());
if(getFile(currentHost, outFile, 0)) bool httpOk = false;
if(getFile(currentHost, outFile, 0, &httpOk))
{
connectionScore++;
}
if(httpOk)
{ {
connectionScore++; connectionScore++;
} }
@ -584,10 +589,11 @@ bool UpdateDialog::tryUpdateMirror(UpdateInfo *updateInfo, const QString &url)
return success; return success;
} }
bool UpdateDialog::getFile(const QString &url, const QString &outFile, unsigned int maxRedir) bool UpdateDialog::getFile(const QString &url, const QString &outFile, unsigned int maxRedir, bool *httpOk)
{ {
QFileInfo output(outFile); QFileInfo output(outFile);
output.setCaching(false); output.setCaching(false);
if(httpOk) *httpOk = false;
if(output.exists()) if(output.exists())
{ {
@ -640,7 +646,12 @@ bool UpdateDialog::getFile(const QString &url, const QString &outFile, unsigned
} }
while(process.canReadLine()) while(process.canReadLine())
{ {
m_logFile->append(QString::fromLatin1(process.readLine()).simplified()); QString line = QString::fromLatin1(process.readLine()).simplified();
m_logFile->append(line);
if(line.contains("200 OK", Qt::CaseSensitive))
{
if(httpOk) *httpOk = true;
}
} }
} }
@ -948,7 +959,7 @@ void UpdateDialog::testKnownWebSites(void)
hostList << QString::fromLatin1(known_hosts[i]); hostList << QString::fromLatin1(known_hosts[i]);
} }
int maxScore = hostList.count(); int hostCount = hostList.count();
while(!hostList.isEmpty()) while(!hostList.isEmpty())
{ {
progressBar->setValue(progressBar->value() + 1); progressBar->setValue(progressBar->value() + 1);
@ -956,18 +967,27 @@ void UpdateDialog::testKnownWebSites(void)
qDebug("Testing: %s", currentHost.toLatin1().constData()); qDebug("Testing: %s", currentHost.toLatin1().constData());
m_logFile->append(QStringList() << "" << "Testing host:" << currentHost << ""); m_logFile->append(QStringList() << "" << "Testing host:" << currentHost << "");
QString outFile = QString("%1/%2.htm").arg(lamexp_temp_folder2(), lamexp_rand_str()); QString outFile = QString("%1/%2.htm").arg(lamexp_temp_folder2(), lamexp_rand_str());
if(getFile(currentHost, outFile, 0)) bool httpOk = false;
if(getFile(currentHost, outFile, 0, &httpOk))
{ {
connectionScore++; connectionScore++;
} }
else else
{ {
qWarning("Connectivity test failed on the following site:\n%s", currentHost.toLatin1().constData()); if(httpOk)
{
qWarning("Connectivity test was slow on the following site:\n%s", currentHost.toLatin1().constData());
connectionScore++;
}
else
{
qWarning("Connectivity test failed on the following site:\n%s", currentHost.toLatin1().constData());
}
} }
QFile::remove(outFile); QFile::remove(outFile);
} }
if(connectionScore < maxScore) if(connectionScore < hostCount)
{ {
if(!retryButton->isVisible()) retryButton->show(); if(!retryButton->isVisible()) retryButton->show();
if(!logButton->isVisible()) logButton->show(); if(!logButton->isVisible()) logButton->show();

View File

@ -58,7 +58,7 @@ protected:
private: private:
bool tryUpdateMirror(UpdateInfo *updateInfo, const QString &url); bool tryUpdateMirror(UpdateInfo *updateInfo, const QString &url);
bool getFile(const QString &url, const QString &outFile, unsigned int maxRedir = 5); bool getFile(const QString &url, const QString &outFile, unsigned int maxRedir = 5, bool *httpOk = NULL);
bool checkSignature(const QString &file, const QString &signature); bool checkSignature(const QString &file, const QString &signature);
bool parseVersionInfo(const QString &file, UpdateInfo *updateInfo); bool parseVersionInfo(const QString &file, UpdateInfo *updateInfo);
void testKnownWebSites(void); void testKnownWebSites(void);