From 3bc026a5579d04d129d334b4a0c425268ac1efc0 Mon Sep 17 00:00:00 2001 From: Hannah von Reth Date: Mon, 18 Jan 2021 14:56:17 +0100 Subject: Make findBestChecksum case insensitive Especially the casing of ADLER32 did not match the server. --- src/common/checksums.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/common') diff --git a/src/common/checksums.cpp b/src/common/checksums.cpp index 142c05ec5..bdf95b358 100644 --- a/src/common/checksums.cpp +++ b/src/common/checksums.cpp @@ -142,20 +142,21 @@ QByteArray makeChecksumHeader(const QByteArray &checksumType, const QByteArray & return header; } -QByteArray findBestChecksum(const QByteArray &checksums) +QByteArray findBestChecksum(const QByteArray &_checksums) { + const auto checksums = QString::fromUtf8(_checksums); int i = 0; // The order of the searches here defines the preference ordering. - if (-1 != (i = checksums.indexOf("SHA3-256:")) - || -1 != (i = checksums.indexOf("SHA256:")) - || -1 != (i = checksums.indexOf("SHA1:")) - || -1 != (i = checksums.indexOf("MD5:")) - || -1 != (i = checksums.indexOf("Adler32:"))) { + if (-1 != (i = checksums.indexOf(QLatin1String("SHA3-256:"), 0, Qt::CaseInsensitive)) + || -1 != (i = checksums.indexOf(QLatin1String("SHA256:"), 0, Qt::CaseInsensitive)) + || -1 != (i = checksums.indexOf(QLatin1String("SHA1:"), 0, Qt::CaseInsensitive)) + || -1 != (i = checksums.indexOf(QLatin1String("MD5:"), 0, Qt::CaseInsensitive)) + || -1 != (i = checksums.indexOf(QLatin1String("ADLER32:"), 0, Qt::CaseInsensitive))) { // Now i is the start of the best checksum // Grab it until the next space or end of string. - auto checksum = checksums.mid(i); - return checksum.mid(0, checksum.indexOf(" ")); + return _checksums.mid(i, _checksums.indexOf(' ', i) - i); } + qCWarning(lcChecksums) << "Failed to parse" << _checksums; return QByteArray(); } -- cgit v1.2.3