diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2024-03-08 08:14:05 +0100 |
---|---|---|
committer | Daniel Kesselberg <mail@danielkesselberg.de> | 2024-06-04 19:07:01 +0200 |
commit | 402bb777534ddc0ace2ccfb144a687cf08d1989a (patch) | |
tree | 158c99641ddc96b49a8232bc4673de81ccc269ee /apps/dav/lib/CardDAV | |
parent | a8d317942bf36e539a31601281fb2f448c8bcfb1 (diff) | |
download | nextcloud-server-402bb777534ddc0ace2ccfb144a687cf08d1989a.tar.gz nextcloud-server-402bb777534ddc0ace2ccfb144a687cf08d1989a.zip |
fix(dav): Add retention time to sync token cleanup
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'apps/dav/lib/CardDAV')
-rw-r--r-- | apps/dav/lib/CardDAV/CardDavBackend.php | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index c1f0fe0c93c..0f7c0a9083f 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -993,6 +993,7 @@ class CardDavBackend implements BackendInterface, SyncSupport { 'synctoken' => $query->createNamedParameter($syncToken), 'addressbookid' => $query->createNamedParameter($addressBookId), 'operation' => $query->createNamedParameter($operation), + 'created_at' => time(), ]) ->executeStatement(); @@ -1424,7 +1425,7 @@ class CardDavBackend implements BackendInterface, SyncSupport { /** * @throws \InvalidArgumentException */ - public function pruneOutdatedSyncTokens(int $keep = 10_000): int { + public function pruneOutdatedSyncTokens(int $keep, int $retention): int { if ($keep < 0) { throw new \InvalidArgumentException(); } @@ -1442,7 +1443,10 @@ class CardDavBackend implements BackendInterface, SyncSupport { $query = $this->db->getQueryBuilder(); $query->delete('addressbookchanges') - ->where($query->expr()->lte('id', $query->createNamedParameter($maxId - $keep, IQueryBuilder::PARAM_INT), IQueryBuilder::PARAM_INT)); + ->where( + $query->expr()->lte('id', $query->createNamedParameter($maxId - $keep, IQueryBuilder::PARAM_INT), IQueryBuilder::PARAM_INT), + $query->expr()->lte('created_at', $query->createNamedParameter($retention)), + ); return $query->executeStatement(); } |