summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-01-01 21:09:14 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-01-01 21:09:14 +0300
commit3312b19085ef68b63daed0f04aa676e5cdfa3b43 (patch)
tree9b3e86cf01bbce1d9cbc97f8c3c11976c9260318 /protocols
parent6bfb0fc3e5fcbcb36829d9283c4900427c7682c2 (diff)
fixes #4092 (Discord: cannot autologin at startup)
Diffstat (limited to 'protocols')
-rw-r--r--protocols/Discord/src/gateway.cpp2
-rw-r--r--protocols/Discord/src/proto.h7
-rw-r--r--protocols/Discord/src/server.cpp8
3 files changed, 13 insertions, 4 deletions
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
@@ -207,6 +207,14 @@ void CDiscordProto::OnReceiveGateway(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest
}
/////////////////////////////////////////////////////////////////////////////////////////
+// logs a session out
+
+void CDiscordProto::OnReceiveLogout(NETLIBHTTPREQUEST *, AsyncHttpRequest *)
+{
+ delSetting("AccessToken");
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
void CDiscordProto::SetServerStatus(int iStatus)
{