summaryrefslogtreecommitdiffstats
path: root/logic/auth/YggdrasilTask.cpp
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-11-14 14:32:43 -0600
committerAndrew <forkk@forkk.net>2013-11-14 14:32:43 -0600
commitad8aeb0b2bdfd7586beab0be31bc36c64da31092 (patch)
tree2cafff53b8c1504662770f124341b41954429795 /logic/auth/YggdrasilTask.cpp
parent9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc (diff)
downloadMultiMC-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.cpp13
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)
{