mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Safer handling of incoming presence EDUs that may or maynot contain 'presence' or 'state'
This commit is contained in:
parent
7b56a7a3cb
commit
d9d6fbb085
@ -655,10 +655,20 @@ class PresenceHandler(BaseHandler):
|
|||||||
state = dict(push)
|
state = dict(push)
|
||||||
del state["user_id"]
|
del state["user_id"]
|
||||||
|
|
||||||
# Legacy handling
|
if "presence" in state:
|
||||||
if "presence" not in state:
|
# all is OK
|
||||||
|
pass
|
||||||
|
elif "state" in state:
|
||||||
|
# Legacy handling
|
||||||
state["presence"] = state["state"]
|
state["presence"] = state["state"]
|
||||||
del state["state"]
|
else:
|
||||||
|
logger.warning("Received a presence 'push' EDU from %s without"
|
||||||
|
+ " either a 'presence' or 'state' key", origin
|
||||||
|
)
|
||||||
|
continue
|
||||||
|
|
||||||
|
if "state" in state:
|
||||||
|
del state["state"]
|
||||||
|
|
||||||
if "last_active_ago" in state:
|
if "last_active_ago" in state:
|
||||||
state["last_active"] = int(
|
state["last_active"] = int(
|
||||||
|
Loading…
Reference in New Issue
Block a user