mirror of https://gitlab.com/litecord/litecord.git
gateway.websocket: fix resuming woes
This commit is contained in:
parent
bfa0e61a0c
commit
26931425c4
|
|
@ -16,7 +16,7 @@ This project is a rewrite of [litecord-reference].
|
||||||
[pipenv]: https://github.com/pypa/pipenv
|
[pipenv]: https://github.com/pypa/pipenv
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ git clone https://gitlab.com/lnmds/litecord.git && cd litecord
|
$ git clone https://gitlab.com/luna/litecord.git && cd litecord
|
||||||
|
|
||||||
# Setup the database:
|
# Setup the database:
|
||||||
$ createdb litecord
|
$ createdb litecord
|
||||||
|
|
|
||||||
|
|
@ -392,7 +392,7 @@ class GatewayWebsocket:
|
||||||
})
|
})
|
||||||
|
|
||||||
if not resumable and self.state:
|
if not resumable and self.state:
|
||||||
self.state_manager.remove(self.state)
|
self.ext.state_manager.remove(self.state)
|
||||||
|
|
||||||
async def _resume(self, replay_seqs: iter):
|
async def _resume(self, replay_seqs: iter):
|
||||||
presences = []
|
presences = []
|
||||||
|
|
@ -416,7 +416,7 @@ class GatewayWebsocket:
|
||||||
await self.send(payload)
|
await self.send(payload)
|
||||||
except Exception:
|
except Exception:
|
||||||
log.exception('error while resuming')
|
log.exception('error while resuming')
|
||||||
await self.invalidate()
|
await self.invalidate_session()
|
||||||
return
|
return
|
||||||
|
|
||||||
if presences:
|
if presences:
|
||||||
|
|
@ -440,7 +440,7 @@ class GatewayWebsocket:
|
||||||
try:
|
try:
|
||||||
state = self.ext.state_manager.fetch(user_id, sess_id)
|
state = self.ext.state_manager.fetch(user_id, sess_id)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return await self.invalidate(False)
|
return await self.invalidate_session(False)
|
||||||
|
|
||||||
if seq > state.seq:
|
if seq > state.seq:
|
||||||
raise WebsocketClose(4007, 'Invalid seq')
|
raise WebsocketClose(4007, 'Invalid seq')
|
||||||
|
|
@ -448,7 +448,7 @@ class GatewayWebsocket:
|
||||||
# check if a websocket isnt on that state already
|
# check if a websocket isnt on that state already
|
||||||
if state.ws is not None:
|
if state.ws is not None:
|
||||||
log.info('Resuming failed, websocket already connected')
|
log.info('Resuming failed, websocket already connected')
|
||||||
return await self.invalidate(False)
|
return await self.invalidate_session(False)
|
||||||
|
|
||||||
# relink this connection
|
# relink this connection
|
||||||
self.state = state
|
self.state = state
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue