From 72081f42fdffee1ebca970020d6cb573cf33aff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sat, 19 Dec 2015 14:33:22 +0000 Subject: Steam: Fix handling expired token at login git-svn-id: http://svn.miranda-ng.org/main/trunk@15894 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Steam/src/steam_login.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/protocols/Steam/src/steam_login.cpp b/protocols/Steam/src/steam_login.cpp index 9520bf0bd1..112bad8592 100644 --- a/protocols/Steam/src/steam_login.cpp +++ b/protocols/Steam/src/steam_login.cpp @@ -256,13 +256,24 @@ void CSteamProto::HandleTokenExpired() // Set status to offline SetStatus(ID_STATUS_OFFLINE); + + // TODO: Try to login again acutomatically (at least once) } void CSteamProto::OnLoggedOn(const HttpResponse *response) { if (!CheckResponse(response)) { + if (response->resultCode == HTTP_CODE_UNAUTHORIZED) + { + // Probably expired TokenSecret + HandleTokenExpired(); + return; + } + // Probably timeout or no connection, we can do nothing here + ShowNotification(_T("Steam"), TranslateT("Unknown login error.")); + SetStatus(ID_STATUS_OFFLINE); return; } @@ -271,7 +282,7 @@ void CSteamProto::OnLoggedOn(const HttpResponse *response) JSONNode *node = json_get(root, "error"); ptrT error(json_as_string(node)); - if (mir_tstrcmpi(error, _T("OK")) || response->resultCode == HTTP_CODE_UNAUTHORIZED) + if (mir_tstrcmpi(error, _T("OK"))) { // Probably expired TokenSecret HandleTokenExpired(); -- cgit v1.2.3