diff options
| author | Silarn <jrim@rimpo.org> | 2019-01-31 16:54:31 -0600 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2019-02-18 21:29:27 -0600 |
| commit | b7d2a608d8c0364d76950bc908c53203e3f467ff (patch) | |
| tree | fce301a4a79191bd3930a3e3f9e07068f8a255c7 | |
| parent | f04c437960c0882e62af7ead176c3f22adcd681d (diff) | |
Fixe API Key storage and actually validate the response
| -rw-r--r-- | src/nexusinterface.cpp | 2 | ||||
| -rw-r--r-- | src/nxmaccessmanager.cpp | 31 | ||||
| -rw-r--r-- | src/settings.cpp | 8 |
3 files changed, 20 insertions, 21 deletions
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 06fbe451..3ea7fdac 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -148,7 +148,7 @@ QAtomicInt NexusInterface::NXMRequestInfo::s_NextID(0); NexusInterface::NexusInterface(PluginContainer *pluginContainer) - : m_NMMVersion(), m_PluginContainer(pluginContainer), m_RemainingDailyRequests(0), m_RemainingHourlyRequests(0), m_MaxDailyRequests(0), m_MaxHourlyRequests(0) + : m_NMMVersion(), m_PluginContainer(pluginContainer), m_RemainingDailyRequests(2500), m_RemainingHourlyRequests(100), m_MaxDailyRequests(2500), m_MaxHourlyRequests(100) { m_MOVersion = createVersionInfo(); diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index d9bb2905..77ffbebc 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -249,23 +249,26 @@ void NXMAccessManager::validateFinished() if (m_ValidateReply != nullptr) { QJsonDocument jdoc = QJsonDocument::fromJson(m_ValidateReply->readAll()); QJsonObject credentialsData = jdoc.object(); - QString test = jdoc.toJson(); - QString name = credentialsData.value("name").toString(); - bool premium = credentialsData.value("is_premium?").toBool(); + if (credentialsData.contains("user_id")) { + QString name = credentialsData.value("name").toString(); + bool premium = credentialsData.value("is_premium").toBool(); - std::tuple<int, int, int, int> limits(std::make_tuple( - m_ValidateReply->rawHeader("x-rl-daily-remaining").toInt(), - m_ValidateReply->rawHeader("x-rl-daily-limit").toInt(), - m_ValidateReply->rawHeader("x-rl-hourly-remaining").toInt(), - m_ValidateReply->rawHeader("x-rl-hourly-limit").toInt() - )); + std::tuple<int, int, int, int> limits(std::make_tuple( + m_ValidateReply->rawHeader("x-rl-daily-remaining").toInt(), + m_ValidateReply->rawHeader("x-rl-daily-limit").toInt(), + m_ValidateReply->rawHeader("x-rl-hourly-remaining").toInt(), + m_ValidateReply->rawHeader("x-rl-hourly-limit").toInt() + )); - emit credentialsReceived(name, premium, limits); + emit credentialsReceived(name, premium, limits); - m_ValidateReply->deleteLater(); - m_ValidateReply = nullptr; + m_ValidateReply->deleteLater(); + m_ValidateReply = nullptr; - m_ValidateState = VALIDATE_VALID; - emit validateSuccessful(true); + m_ValidateState = VALIDATE_VALID; + emit validateSuccessful(true); + } else { + emit validateFailed(tr("Validation failed, please reauthenticate in the Settings -> Nexus tab: %1").arg(credentialsData.value("message").toString())); + } } } diff --git a/src/settings.cpp b/src/settings.cpp index eb34ab29..42f2e43f 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -181,9 +181,7 @@ QString Settings::obfuscate(const QString &info) QString result; DATA_BLOB input; DATA_BLOB output; - std::vector<uint8_t> data; - data.reserve(info.size() + 1); - memcpy(data.data(), info.constData(), info.size() + 1); + std::vector<uint8_t> data(info.toUtf8().begin(), info.toUtf8().end()); DWORD cbInput = info.size() + 1; input.pbData = data.data(); input.cbData = cbInput; @@ -204,9 +202,7 @@ QString Settings::deObfuscate(const QString &info) QByteArray realInfo = QByteArray::fromBase64(info.toUtf8()); DATA_BLOB input; DATA_BLOB output; - std::vector<uint8_t> data; - data.reserve(realInfo.size() + 1); - memcpy(data.data(), realInfo.constData(), realInfo.size() + 1); + std::vector<uint8_t> data(realInfo.begin(), realInfo.end()); DWORD cbInput = realInfo.size() + 1; input.pbData = data.data(); input.cbData = cbInput; |
