summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-06-04 15:04:11 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-06-05 16:56:05 +0200
commit451eee7a2ee9f3732ac2113cf560f0e1770236fd (patch)
tree4babb897a33a7a2382c556df51c891e2fe12cc29
parent8c9831108a2aa591908b9548dec911dbefa4fffb (diff)
Make sure we honor the updates xml checksum flag.
Change-Id: I1fb7aec13c86c1018298d25d186f200c48d1d59e Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
-rw-r--r--src/libs/installer/metadatajob.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp
index 79c7c7b05..80f0b134c 100644
--- a/src/libs/installer/metadatajob.cpp
+++ b/src/libs/installer/metadatajob.cpp
@@ -273,7 +273,12 @@ MetadataJob::Status MetadataJob::parseUpdatesXml(const QList<FileTaskResult> &re
metadata.repository = item.value(TaskRole::UserRole).value<Repository>();
const bool online = !(metadata.repository.url().scheme()).isEmpty();
+ bool testCheckSum = true;
const QDomElement root = doc.documentElement();
+ const QDomNode checksum = root.firstChildElement(QLatin1String("Checksum"));
+ if (!checksum.isNull())
+ testCheckSum = (checksum.toElement().text().toLower() == scTrue);
+
QDomNodeList children = root.childNodes();
for (int i = 0; i < children.count(); ++i) {
const QDomElement el = children.at(i).toElement();
@@ -285,7 +290,7 @@ MetadataJob::Status MetadataJob::parseUpdatesXml(const QList<FileTaskResult> &re
packageName = c2.at(j).toElement().text();
else if (c2.at(j).toElement().tagName() == scRemoteVersion)
packageVersion = c2.at(j).toElement().text();
- else if (c2.at(j).toElement().tagName() == QLatin1String("SHA1"))
+ else if ((c2.at(j).toElement().tagName() == QLatin1String("SHA1")) && testCheckSum)
packageHash = c2.at(j).toElement().text();
}
const QString repoUrl = metadata.repository.url().toString();