diff options
author | George Hazan <ghazan@miranda.im> | 2020-02-24 18:04:30 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2020-02-24 18:04:30 +0300 |
commit | 53c26b123b267420707d9d337c4a2d3f32c8be81 (patch) | |
tree | 6503a81f6a21244bd8203f9014f51762894d9e3d /protocols/Discord/src | |
parent | 7b32f314110ff2cdb2d2ddade8e7b8ff9e5b51fb (diff) |
Discord: temporary token not to be saved
Diffstat (limited to 'protocols/Discord/src')
-rw-r--r-- | protocols/Discord/src/connection.cpp | 1 | ||||
-rw-r--r-- | protocols/Discord/src/http.cpp | 7 | ||||
-rw-r--r-- | protocols/Discord/src/proto.cpp | 2 | ||||
-rw-r--r-- | protocols/Discord/src/proto.h | 3 | ||||
-rw-r--r-- | protocols/Discord/src/server.cpp | 8 |
5 files changed, 12 insertions, 9 deletions
diff --git a/protocols/Discord/src/connection.cpp b/protocols/Discord/src/connection.cpp index 8c491d5a65..208bb1be79 100644 --- a/protocols/Discord/src/connection.cpp +++ b/protocols/Discord/src/connection.cpp @@ -78,6 +78,7 @@ void CDiscordProto::OnLoggedOut() m_bOnline = false; m_bTerminated = true; m_iGatewaySeq = 0; + m_szTempToken = nullptr; m_szCookie.Empty(); m_impl.m_heartBeat.StopSafe(); diff --git a/protocols/Discord/src/http.cpp b/protocols/Discord/src/http.cpp index 3cd80d01fd..cf9594bcac 100644 --- a/protocols/Discord/src/http.cpp +++ b/protocols/Discord/src/http.cpp @@ -30,11 +30,8 @@ void CDiscordProto::Push(AsyncHttpRequest *pReq, int iTimeout) void CDiscordProto::SaveToken(const JSONNode &data) { CMStringA szToken = data["token"].as_mstring(); - if (szToken.IsEmpty()) - return; - - m_szAccessToken = szToken.Detach(); - setString("AccessToken", m_szAccessToken); + if (!szToken.IsEmpty()) + m_szTempToken = szToken.Detach(); } ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/protocols/Discord/src/proto.cpp b/protocols/Discord/src/proto.cpp index 1789963959..98258c6b7d 100644 --- a/protocols/Discord/src/proto.cpp +++ b/protocols/Discord/src/proto.cpp @@ -494,7 +494,7 @@ void CDiscordProto::SendMarkRead() mir_cslock lck(csMarkReadQueue); while (arMarkReadQueue.getCount()) { CDiscordUser *pUser = arMarkReadQueue[0]; - JSONNode payload; payload << CHAR_PARAM("token", m_szAccessToken); + JSONNode payload; payload << CHAR_PARAM("token", m_szTempToken); CMStringA szUrl(FORMAT, "/channels/%lld/messages/%lld/ack", pUser->channelId, pUser->lastMsgId); auto *pReq = new AsyncHttpRequest(this, REQUEST_POST, szUrl, &CDiscordProto::OnReceiveMarkRead, &payload); Push(pReq); diff --git a/protocols/Discord/src/proto.h b/protocols/Discord/src/proto.h index 14451dce1f..a513ee59b3 100644 --- a/protocols/Discord/src/proto.h +++ b/protocols/Discord/src/proto.h @@ -183,7 +183,7 @@ class CDiscordProto : public PROTO<CDiscordProto> wchar_t *m_wszStatusMsg[MAX_STATUS_COUNT]; - ptrA m_szAccessToken; + ptrA m_szAccessToken, m_szTempToken; mir_cs m_csHttpQueue; HANDLE m_evRequestsQueue; @@ -350,7 +350,6 @@ public: INT_PTR __cdecl RequestFriendship(WPARAM, LPARAM); INT_PTR __cdecl SvcCreateAccMgrUI(WPARAM, LPARAM); - INT_PTR __cdecl SvcGetEventIcon(WPARAM, LPARAM); INT_PTR __cdecl GetAvatarCaps(WPARAM, LPARAM); INT_PTR __cdecl GetAvatarInfo(WPARAM, LPARAM); diff --git a/protocols/Discord/src/server.cpp b/protocols/Discord/src/server.cpp index f801a1678f..c6b127c8cd 100644 --- a/protocols/Discord/src/server.cpp +++ b/protocols/Discord/src/server.cpp @@ -286,7 +286,13 @@ void CDiscordProto::OnReceiveToken(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest*) if (!root) ConnectionFailed(LOGINERR_NOSERVER); else { - SaveToken(root.data()); + auto &data = root.data(); + CMStringA szToken = data["token"].as_mstring(); + if (szToken.IsEmpty()) + return; + + m_szAccessToken = szToken.Detach(); + setString("AccessToken", m_szAccessToken); RetrieveMyInfo(); } } |