UI: Use STL random as fallback

For Linux distros still living in the stone ages, use the old
randomization code. Fixes CI not building. We can change it later when
we finalize good random stuff.
This commit is contained in:
jp9000 2021-09-17 02:57:31 -07:00
parent 8c9bb3a84b
commit a73586b8b1
2 changed files with 15 additions and 0 deletions

View File

@ -7,7 +7,9 @@
#include <QDesktopServices>
#include <QHBoxLayout>
#include <QUrl>
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
#include <QRandomGenerator>
#endif
#ifdef WIN32
#include <windows.h>
@ -193,6 +195,7 @@ void YoutubeAuth::ResetChat()
QString YoutubeAuth::GenerateState()
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
char state[YOUTUBE_API_STATE_LENGTH + 1];
QRandomGenerator *rng = QRandomGenerator::system();
int i;
@ -202,6 +205,17 @@ QString YoutubeAuth::GenerateState()
state[i] = 0;
return state;
#else
std::uniform_int_distribution<> distr(0, allowedCount);
std::string result;
result.reserve(YOUTUBE_API_STATE_LENGTH);
std::generate_n(std::back_inserter(result), YOUTUBE_API_STATE_LENGTH,
[&] {
return static_cast<char>(
allowedChars[distr(randomSeed)]);
});
return result.c_str();
#endif
}
// Static.

View File

@ -20,6 +20,7 @@ class YoutubeAuth : public OAuthStreamKey {
Q_OBJECT
bool uiLoaded = false;
std::mt19937 randomSeed;
std::string section;
#ifdef BROWSER_AVAILABLE