mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
commit
1c29152f9c
|
@ -34,8 +34,10 @@
|
||||||
#include "util/strongtype.h"
|
#include "util/strongtype.h"
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
|
||||||
#include <QRandomGenerator>
|
#include <QRandomGenerator>
|
||||||
|
#else
|
||||||
|
#include <QDateTime>
|
||||||
#endif
|
#endif
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
@ -667,6 +669,10 @@ void Core::onStarted()
|
||||||
{
|
{
|
||||||
ASSERT_CORE_THREAD;
|
ASSERT_CORE_THREAD;
|
||||||
|
|
||||||
|
#if (QT_VERSION < QT_VERSION_CHECK(5, 10, 0))
|
||||||
|
qsrand(static_cast<uint>(QDateTime::currentMSecsSinceEpoch()));
|
||||||
|
#endif
|
||||||
|
|
||||||
// One time initialization stuff
|
// One time initialization stuff
|
||||||
QString name = getUsername();
|
QString name = getUsername();
|
||||||
if (!name.isEmpty()) {
|
if (!name.isEmpty()) {
|
||||||
|
@ -795,10 +801,10 @@ void Core::bootstrapDht()
|
||||||
}
|
}
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
|
||||||
static int j = QRandomGenerator::global()->generate() % listSize;
|
static int j = QRandomGenerator::global()->bounded(listSize);
|
||||||
#else
|
#else
|
||||||
static int j = qrand() % listSize;
|
static int j = static_cast<int>((static_cast<double>(qrand()) / static_cast<double>(RAND_MAX+1l)) * listSize);
|
||||||
#endif
|
#endif
|
||||||
// i think the more we bootstrap, the more we jitter because the more we overwrite nodes
|
// i think the more we bootstrap, the more we jitter because the more we overwrite nodes
|
||||||
while (i < 2) {
|
while (i < 2) {
|
||||||
|
@ -827,7 +833,8 @@ void Core::bootstrapDht()
|
||||||
PARSE_ERR(error);
|
PARSE_ERR(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
++j;
|
// bootstrap off every 5th node (+ a special case to avoid cycles when listSize % 5 == 0)
|
||||||
|
j += 5 + !(listSize % 5);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,10 @@
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
|
||||||
#include <QRandomGenerator>
|
#include <QRandomGenerator>
|
||||||
|
#else
|
||||||
|
#include <QDateTime>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "src/core/core.h"
|
#include "src/core/core.h"
|
||||||
|
@ -102,19 +104,16 @@ void PrivacyForm::showEvent(QShowEvent*)
|
||||||
|
|
||||||
void PrivacyForm::on_randomNosapamButton_clicked()
|
void PrivacyForm::on_randomNosapamButton_clicked()
|
||||||
{
|
{
|
||||||
QTime time = QTime::currentTime();
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
|
||||||
QRandomGenerator(static_cast<uint>(time.msec()));
|
|
||||||
#else
|
|
||||||
qsrand(static_cast<uint>(time.msec()));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint32_t newNospam{0};
|
uint32_t newNospam{0};
|
||||||
for (int i = 0; i < 4; ++i)
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
|
||||||
newNospam = (newNospam << 8) + (QRandomGenerator::global()->generate() % 256); // Generate byte by byte. For some reason.
|
// guarantees to give a random 32-bit unsigned integer
|
||||||
|
newNospam = QRandomGenerator::global()->generate();
|
||||||
#else
|
#else
|
||||||
newNospam = (newNospam << 8) + (qrand() % 256); // Generate byte by byte. For some reason.
|
qsrand(static_cast<uint>(QDateTime::currentMSecsSinceEpoch()));
|
||||||
|
for (int i = 0; i < 4; ++i)
|
||||||
|
// Generate byte by byte, as qrand() is guaranteed to have only 15 bits of randomness (RAND_MAX is guaranteed to be 2^15)
|
||||||
|
newNospam = (newNospam << 8) + (static_cast<int>((static_cast<double>(qrand()) / static_cast<double>(RAND_MAX+1l)) * 256));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
core->setNospam(newNospam);
|
core->setNospam(newNospam);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user