From 3312b19085ef68b63daed0f04aa676e5cdfa3b43 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 1 Jan 2024 21:09:14 +0300 Subject: fixes #4092 (Discord: cannot autologin at startup) --- protocols/Discord/src/gateway.cpp | 2 +- protocols/Discord/src/proto.h | 7 ++++--- protocols/Discord/src/server.cpp | 8 ++++++++ 3 files changed, 13 insertions(+), 4 deletions(-) (limited to 'protocols/Discord/src') diff --git a/protocols/Discord/src/gateway.cpp b/protocols/Discord/src/gateway.cpp index 0530945c3e..04958142be 100644 --- a/protocols/Discord/src/gateway.cpp +++ b/protocols/Discord/src/gateway.cpp @@ -315,7 +315,7 @@ void CDiscordProto::GatewaySendResume() bool CDiscordProto::GatewaySendStatus(int iStatus, const wchar_t *pwszStatusText) { if (iStatus == ID_STATUS_OFFLINE) { - Push(new AsyncHttpRequest(this, REQUEST_POST, "/auth/logout", nullptr)); + Push(new AsyncHttpRequest(this, REQUEST_POST, "/auth/logout", &CDiscordProto::OnReceiveLogout)); return true; } diff --git a/protocols/Discord/src/proto.h b/protocols/Discord/src/proto.h index d6aa55c990..3ff1f626e5 100644 --- a/protocols/Discord/src/proto.h +++ b/protocols/Discord/src/proto.h @@ -439,10 +439,11 @@ public: void OnReceiveCreateChannel(NETLIBHTTPREQUEST*, AsyncHttpRequest*); void OnReceiveFile(NETLIBHTTPREQUEST*, AsyncHttpRequest*); void OnReceiveGateway(NETLIBHTTPREQUEST*, AsyncHttpRequest*); - void OnReceiveMarkRead(NETLIBHTTPREQUEST *, AsyncHttpRequest *); + void OnReceiveLogout(NETLIBHTTPREQUEST*, AsyncHttpRequest*); + void OnReceiveMarkRead(NETLIBHTTPREQUEST*, AsyncHttpRequest *); void OnReceiveMessageAck(NETLIBHTTPREQUEST*, AsyncHttpRequest*); - void OnReceiveToken(NETLIBHTTPREQUEST *, AsyncHttpRequest *); - void OnReceiveUserinfo(NETLIBHTTPREQUEST *, AsyncHttpRequest *); + void OnReceiveToken(NETLIBHTTPREQUEST*, AsyncHttpRequest*); + void OnReceiveUserinfo(NETLIBHTTPREQUEST*, AsyncHttpRequest*); void RetrieveMyInfo(); void OnReceiveMyInfo(NETLIBHTTPREQUEST*, AsyncHttpRequest*); diff --git a/protocols/Discord/src/server.cpp b/protocols/Discord/src/server.cpp index 096da0968d..fa41dde07b 100644 --- a/protocols/Discord/src/server.cpp +++ b/protocols/Discord/src/server.cpp @@ -206,6 +206,14 @@ void CDiscordProto::OnReceiveGateway(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest ForkThread(&CDiscordProto::GatewayThread, nullptr); } +///////////////////////////////////////////////////////////////////////////////////////// +// logs a session out + +void CDiscordProto::OnReceiveLogout(NETLIBHTTPREQUEST *, AsyncHttpRequest *) +{ + delSetting("AccessToken"); +} + ///////////////////////////////////////////////////////////////////////////////////////// void CDiscordProto::SetServerStatus(int iStatus) -- cgit v1.2.3