diff options
author | Alex Borisov <borisov.alexandr@rambler.ru> | 2011-12-02 03:54:00 +0200 |
---|---|---|
committer | Alex Borisov <borisov.alexandr@rambler.ru> | 2011-12-02 03:54:00 +0200 |
commit | bd1d34d7781d35f17666adb3df6abb7c9b7fcc32 (patch) | |
tree | c20440b674aff4189e4c2e1f24f644228b6ff27c /client/Utility.cpp | |
parent | 8d6422572c9e531116eb7aea103a93f62f8ae3e2 (diff) |
MD5 hash check for existing & downloaded files
Diffstat (limited to 'client/Utility.cpp')
-rw-r--r-- | client/Utility.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/client/Utility.cpp b/client/Utility.cpp new file mode 100644 index 0000000..2faed74 --- /dev/null +++ b/client/Utility.cpp @@ -0,0 +1,29 @@ + +#include <QCryptographicHash> +#include "client.h" +#include "Logger.h" +#include "Utility.h" + + +QByteArray md5_sum(QString &filename) +{ + QFile file(filename); + if (! file.exists()) + { + Logger::Warn("Can't compute md5sum: file %s do not exist\n", filename.toStdString().c_str()); + return NULL; + } + + file.open(QIODevice::ReadOnly); + QCryptographicHash md5hash(QCryptographicHash::Md5); + while (! file.atEnd()) + { + const size_t buf_sz = 4096; + md5hash.addData(file.read(buf_sz)); + } + file.close(); + + QByteArray res = md5hash.result().toHex(); + Logger::Debug("MD5 sum for %s is: %s\n", filename.toStdString().c_str(), res.data()); + return res; +} |