summaryrefslogtreecommitdiff
path: root/InternetUpdater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'InternetUpdater.cpp')
-rw-r--r--InternetUpdater.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/InternetUpdater.cpp b/InternetUpdater.cpp
index a3dbded..9246e80 100644
--- a/InternetUpdater.cpp
+++ b/InternetUpdater.cpp
@@ -18,6 +18,16 @@ InternetUpdater::InternetUpdater(QObject *parent) :
newUpdateTimer.start(1000*3600);
firstUpdateTimer.setSingleShot(true);
firstUpdateTimer.start(1000*60);
+ reply=NULL;
+}
+
+InternetUpdater::~InternetUpdater()
+{
+ if(reply!=NULL)
+ {
+ delete reply;
+ reply=NULL;
+ }
}
void InternetUpdater::downloadFile()
@@ -59,11 +69,14 @@ void InternetUpdater::downloadFile()
void InternetUpdater::httpFinished()
{
+ if(reply==NULL)
+ return;
QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
if (!reply->isFinished())
{
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"get the new update failed: not finished");
reply->deleteLater();
+ reply=NULL;
return;
}
else if (reply->error())
@@ -72,10 +85,12 @@ void InternetUpdater::httpFinished()
newUpdateTimer.start(1000*3600*24);
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"get the new update failed: "+reply->errorString().toStdString());
reply->deleteLater();
+ reply=NULL;
return;
} else if (!redirectionTarget.isNull()) {
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"redirection denied to: "+redirectionTarget.toUrl().toString().toStdString());
reply->deleteLater();
+ reply=NULL;
return;
}
QString newVersion=QString::fromUtf8(reply->readAll());
@@ -83,6 +98,7 @@ void InternetUpdater::httpFinished()
{
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"version string is empty");
reply->deleteLater();
+ reply=NULL;
return;
}
newVersion.remove("\n");
@@ -90,21 +106,25 @@ void InternetUpdater::httpFinished()
{
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"version string don't match: "+newVersion.toStdString());
reply->deleteLater();
+ reply=NULL;
return;
}
if(newVersion==ULTRACOPIER_VERSION)
{
reply->deleteLater();
+ reply=NULL;
return;
}
if(PluginsManager::compareVersion(newVersion.toStdString(),"<=",ULTRACOPIER_VERSION))
{
reply->deleteLater();
+ reply=NULL;
return;
}
newUpdateTimer.stop();
emit newUpdate(newVersion.toStdString());
reply->deleteLater();
+ reply=NULL;
}
#endif