summaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/CardDAV
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2024-03-08 08:14:05 +0100
committerDaniel Kesselberg <mail@danielkesselberg.de>2024-06-04 19:07:01 +0200
commit402bb777534ddc0ace2ccfb144a687cf08d1989a (patch)
tree158c99641ddc96b49a8232bc4673de81ccc269ee /apps/dav/lib/CardDAV
parenta8d317942bf36e539a31601281fb2f448c8bcfb1 (diff)
downloadnextcloud-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.php8
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();
}