mirror of
https://github.com/nextcloud/server.git
synced 2026-03-21 18:11:02 -04:00
fix: don't propagate future mtimes
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
6230849e46
commit
aadfcb3fe6
1 changed files with 9 additions and 2 deletions
|
|
@ -13,6 +13,8 @@ use OCP\DB\QueryBuilder\IQueryBuilder;
|
|||
use OCP\Files\Cache\IPropagator;
|
||||
use OCP\Files\Storage\IReliableEtagStorage;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Server;
|
||||
use Psr\Clock\ClockInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
|
@ -39,10 +41,13 @@ class Propagator implements IPropagator {
|
|||
*/
|
||||
private $ignore = [];
|
||||
|
||||
private ClockInterface $clock;
|
||||
|
||||
public function __construct(\OC\Files\Storage\Storage $storage, IDBConnection $connection, array $ignore = []) {
|
||||
$this->storage = $storage;
|
||||
$this->connection = $connection;
|
||||
$this->ignore = $ignore;
|
||||
$this->clock = Server::get(ClockInterface::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -58,7 +63,9 @@ class Propagator implements IPropagator {
|
|||
}
|
||||
}
|
||||
|
||||
$storageId = (int)$this->storage->getStorageCache()->getNumericId();
|
||||
$time = min((int)$time, $this->clock->now()->getTimestamp());
|
||||
|
||||
$storageId = $this->storage->getStorageCache()->getNumericId();
|
||||
|
||||
$parents = $this->getParents($internalPath);
|
||||
|
||||
|
|
@ -78,7 +85,7 @@ class Propagator implements IPropagator {
|
|||
}, $parentHashes);
|
||||
|
||||
$builder->update('filecache')
|
||||
->set('mtime', $builder->func()->greatest('mtime', $builder->createNamedParameter((int)$time, IQueryBuilder::PARAM_INT)))
|
||||
->set('mtime', $builder->func()->greatest('mtime', $builder->createNamedParameter($time, IQueryBuilder::PARAM_INT)))
|
||||
->where($builder->expr()->eq('storage', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($builder->expr()->in('path_hash', $hashParams));
|
||||
if (!$this->storage->instanceOfStorage(IReliableEtagStorage::class)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue