Ensure qsrand is called
authorChristian Kamm <mail@ckamm.de>
Thu, 13 Jul 2017 09:06:04 +0000 (11:06 +0200)
committerMarkus Goetz <markus@woboq.com>
Thu, 13 Jul 2017 16:06:40 +0000 (18:06 +0200)
src/cmd/cmd.cpp
src/gui/application.cpp
src/gui/folder.cpp

index 5baeb8a8bebc7269140708b771fe60fcc52289a3..5f7bc5e0f5d535e6c5b8c26f6cdd16431a33b444 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #include <iostream>
+#include <random>
 #include <qcoreapplication.h>
 #include <QStringList>
 #include <QUrl>
@@ -311,7 +312,7 @@ int main(int argc, char **argv)
     qputenv("OPENSSL_CONF", opensslConf.toLocal8Bit());
 #endif
 
-    qsrand(QTime::currentTime().msec() * QCoreApplication::applicationPid());
+    qsrand(std::random_device()());
 
     CmdOptions options;
     options.silent = false;
index 3ebbb8fc5d6f2a2f1f92b3949e0dfa4977e5e53d..f06054b3f31c9855bb28b24ec1d28c2f8133095f 100644 (file)
@@ -17,6 +17,7 @@
 #include "application.h"
 
 #include <iostream>
+#include <random>
 
 #include "config.h"
 #include "account.h"
@@ -109,6 +110,8 @@ Application::Application(int &argc, char **argv)
 {
     _startedAt.start();
 
+    qsrand(std::random_device()());
+
 #ifdef Q_OS_WIN
     // Ensure OpenSSL config file is only loaded from app directory
     QString opensslConf = QCoreApplication::applicationDirPath() + QString("/openssl.cnf");
index d4b652ba6dd153c8c58e280abc24a32407de983d..f5e23c88be87987d38459ac04b63b541fc453778 100644 (file)
@@ -62,7 +62,6 @@ Folder::Folder(const FolderDefinition &definition,
     , _fileLog(new SyncRunFileLog)
     , _saveBackwardsCompatible(false)
 {
-    qsrand(QTime::currentTime().msec());
     _timeSinceLastSyncStart.start();
     _timeSinceLastSyncDone.start();