diff options
author | Andrew <forkk@forkk.net> | 2013-11-14 14:32:43 -0600 |
---|---|---|
committer | Andrew <forkk@forkk.net> | 2013-11-14 14:32:43 -0600 |
commit | ad8aeb0b2bdfd7586beab0be31bc36c64da31092 (patch) | |
tree | 2cafff53b8c1504662770f124341b41954429795 /logic/auth/YggdrasilTask.cpp | |
parent | 9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc (diff) | |
download | MultiMC-ad8aeb0b2bdfd7586beab0be31bc36c64da31092.tar MultiMC-ad8aeb0b2bdfd7586beab0be31bc36c64da31092.tar.gz MultiMC-ad8aeb0b2bdfd7586beab0be31bc36c64da31092.tar.lz MultiMC-ad8aeb0b2bdfd7586beab0be31bc36c64da31092.tar.xz MultiMC-ad8aeb0b2bdfd7586beab0be31bc36c64da31092.zip |
Implement auth task's response processing.
The authenticate task can now successfully log a user in.
Diffstat (limited to 'logic/auth/YggdrasilTask.cpp')
-rw-r--r-- | logic/auth/YggdrasilTask.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/logic/auth/YggdrasilTask.cpp b/logic/auth/YggdrasilTask.cpp index efc6ec96..a023b07e 100644 --- a/logic/auth/YggdrasilTask.cpp +++ b/logic/auth/YggdrasilTask.cpp @@ -20,12 +20,14 @@ #include <QJsonObject> #include <QJsonDocument> #include <QNetworkReply> +#include <QByteArray> #include <MultiMC.h> #include <logic/auth/MojangAccount.h> YggdrasilTask::YggdrasilTask(MojangAccount* account, QObject* parent) : Task(parent) { + m_error = nullptr; m_account = account; } @@ -45,7 +47,7 @@ void YggdrasilTask::executeTask() auto worker = MMC->qnam(); connect(worker.get(), SIGNAL(finished(QNetworkReply*)), this, - SLOT(processResponse(QNetworkReply*))); + SLOT(processReply(QNetworkReply*))); QUrl reqUrl("https://authserver.mojang.com/" + getEndpoint()); QNetworkRequest netRequest(reqUrl); @@ -70,7 +72,8 @@ void YggdrasilTask::processReply(QNetworkReply* reply) // Try to parse the response regardless of the response code. // Sometimes the auth server will give more information and an error code. QJsonParseError jsonError; - QJsonDocument doc = QJsonDocument::fromJson(reply->readAll(), &jsonError); + QByteArray replyData = reply->readAll(); + QJsonDocument doc = QJsonDocument::fromJson(replyData, &jsonError); // Check the response code. int responseCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); @@ -91,6 +94,10 @@ void YggdrasilTask::processReply(QNetworkReply* reply) else emitFailed(tr("An unknown error occurred when processing the response from the authentication server.")); } + else + { + emitSucceeded(); + } break; default: @@ -150,7 +157,7 @@ QString YggdrasilTask::processError(QJsonObject responseData) } } -QString YggdrasilTask::getStateMessage(const YggdrasilTask::State state) +QString YggdrasilTask::getStateMessage(const YggdrasilTask::State state) const { switch (state) { |