gateway: allow nullable seq but invalidate if received

This commit is contained in:
Luna 2021-08-29 01:32:03 -03:00
parent a2f892192d
commit ae5c0bd0e3
2 changed files with 7 additions and 1 deletions

View File

@ -121,7 +121,7 @@ RESUME_SCHEMA = {
"schema": {
"token": {"type": "string", "required": True},
"session_id": {"type": "string", "required": True},
"seq": {"type": "number", "required": True},
"seq": {"type": "number", "required": True, "nullable": True},
},
}
},

View File

@ -958,6 +958,12 @@ class GatewayWebsocket:
async def handle_6(self, payload: Dict[str, Any]):
"""Handle OP 6 Resume."""
payload = validate(payload, RESUME_SCHEMA)
# HACK: this is a hack for discord.js that attempts to resume
# with a null sequence.
if data["seq"] is None:
return await self.invalidate_session(False)
data = payload["d"]
token, sess_id, seq = data["token"], data["session_id"], data["seq"]