diff options
author | Erik Johnston <erik@matrix.org> | 2019-09-23 14:16:10 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2019-09-23 16:59:35 +0100 |
commit | 2ade05dca3d6da67e35c3a8ccdd278221f2566ed (patch) | |
tree | d8d1f76e815132fca789ae0fa3c500d6f4cdb077 /synapse/storage/client_ips.py | |
parent | Disable /register/available if registration is disabled (#6082) (diff) | |
download | synapse-2ade05dca3d6da67e35c3a8ccdd278221f2566ed.tar.xz |
Add last seen info to devices table.
This allows us to purge old user_ips entries without having to preserve the latest last seen info for active devices.
Diffstat (limited to 'synapse/storage/client_ips.py')
-rw-r--r-- | synapse/storage/client_ips.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/synapse/storage/client_ips.py b/synapse/storage/client_ips.py index 6db8c54077..4db2e7f481 100644 --- a/synapse/storage/client_ips.py +++ b/synapse/storage/client_ips.py @@ -354,6 +354,21 @@ class ClientIpStore(background_updates.BackgroundUpdateStore): }, lock=False, ) + + # Technically an access token might not be associated with + # a device so we need to check. + if device_id: + self._simple_upsert_txn( + txn, + table="devices", + keyvalues={"user_id": user_id, "device_id": device_id}, + values={ + "user_agent": user_agent, + "last_seen": last_seen, + "ip": ip, + }, + lock=False, + ) except Exception as e: # Failed to upsert, log and continue logger.error("Failed to insert client IP %r: %r", entry, e) |