From 70c04745ee49a127f43a0947e0a0e0d9b2f8eb5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 11:43:19 +0100 Subject: [PATCH 1/5] NOISSUE add some logging to profile fetching failures --- launcher/minecraft/auth/steps/MinecraftProfileStep.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp index 9fef99b0..dc3df44f 100644 --- a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp +++ b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp @@ -56,6 +56,11 @@ void MinecraftProfileStep::onRequestDone( return; } if (error != QNetworkReply::NoError) { + qWarning() << "Error getting profile:"; + qWarning() << " HTTP Status: " << requestor->httpStatus_; + qWarning() << " Internal error no.: " << error; + qWarning() << " Error string: " << requestor->errorString_; + emit finished( AccountTaskState::STATE_FAILED_SOFT, tr("Minecraft Java profile acquisition failed.") From ddfed7bb878a8e5caa491b67a85d39f2917a0056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 12:05:40 +0100 Subject: [PATCH 2/5] NOISSUE in java checker, ignore invalid lines altogether Declaring them as errors is just causing problems because Java randomly prints garbage to STDOUT now. --- launcher/java/JavaChecker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/java/JavaChecker.cpp b/launcher/java/JavaChecker.cpp index 4557784b..35ddc35c 100644 --- a/launcher/java/JavaChecker.cpp +++ b/launcher/java/JavaChecker.cpp @@ -111,7 +111,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status) auto parts = line.split('=', QString::SkipEmptyParts); if(parts.size() != 2 || parts[0].isEmpty() || parts[1].isEmpty()) { - success = false; + continue; } else { From 54e3438e372c1e21d9fc39e8b08cf5c50219dd6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 12:46:20 +0100 Subject: [PATCH 3/5] NOISSUE correctly set http status code in auth reply --- launcher/minecraft/auth/AuthRequest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/minecraft/auth/AuthRequest.cpp b/launcher/minecraft/auth/AuthRequest.cpp index 459d2354..feface80 100644 --- a/launcher/minecraft/auth/AuthRequest.cpp +++ b/launcher/minecraft/auth/AuthRequest.cpp @@ -44,7 +44,7 @@ void AuthRequest::onRequestFinished() { if (reply_ != qobject_cast(sender())) { return; } - httpStatus_ = 200; + httpStatus_ = reply_->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); finish(); } From 8804b035b2d6daa1a1a4e04696315d428e782661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 12:51:42 +0100 Subject: [PATCH 4/5] NOISSUE log server response when failing to fetch profile --- launcher/minecraft/auth/steps/MinecraftProfileStep.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp index dc3df44f..add91659 100644 --- a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp +++ b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp @@ -61,6 +61,9 @@ void MinecraftProfileStep::onRequestDone( qWarning() << " Internal error no.: " << error; qWarning() << " Error string: " << requestor->errorString_; + qWarning() << " Response:"; + qWarning() << QString::fromUtf8(data); + emit finished( AccountTaskState::STATE_FAILED_SOFT, tr("Minecraft Java profile acquisition failed.") From 0235eb5c286413332dcc2f7af8171bd87b61c3c5 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 22 Jan 2022 21:58:32 +0100 Subject: [PATCH 5/5] Fix error message The code is trying to get a string from a json object, and if that fails it should log "is not a string", not "is not a timestamp". --- launcher/minecraft/auth/Parsers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/minecraft/auth/Parsers.cpp b/launcher/minecraft/auth/Parsers.cpp index ed31e934..2dd36562 100644 --- a/launcher/minecraft/auth/Parsers.cpp +++ b/launcher/minecraft/auth/Parsers.cpp @@ -94,7 +94,7 @@ bool parseXTokenResponse(QByteArray & data, Katabasis::Token &output, QString na return false; } if(!getString(obj.value("Token"), output.token)) { - qWarning() << "User Token is not a timestamp"; + qWarning() << "User Token is not a string"; return false; } auto arrayVal = obj.value("DisplayClaims").toObject().value("xui");