summaryrefslogtreecommitdiff
path: root/client/Utility.cpp
diff options
context:
space:
mode:
authorAlex Borisov <borisov.alexandr@rambler.ru>2011-12-02 03:54:00 +0200
committerAlex Borisov <borisov.alexandr@rambler.ru>2011-12-02 03:54:00 +0200
commitbd1d34d7781d35f17666adb3df6abb7c9b7fcc32 (patch)
treec20440b674aff4189e4c2e1f24f644228b6ff27c /client/Utility.cpp
parent8d6422572c9e531116eb7aea103a93f62f8ae3e2 (diff)
MD5 hash check for existing & downloaded files
Diffstat (limited to 'client/Utility.cpp')
-rw-r--r--client/Utility.cpp29
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;
+}