summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2016-04-20 15:22:22 +0200
committerRobin Appelman <icewind@owncloud.com>2016-04-21 14:24:53 +0200
commit74ed0a8abaca4198e101c7c356677d47b93d35f0 (patch)
treee5d0bebb284b41c7e36e4e0dbe8bd3f6c0407617 /lib
parent440cf335ad63a57b643a94cc360e97d15c96436f (diff)
downloadnextcloud-server-74ed0a8abaca4198e101c7c356677d47b93d35f0.tar.gz
nextcloud-server-74ed0a8abaca4198e101c7c356677d47b93d35f0.zip
dont do optimized size propagation for encrypted files
Diffstat (limited to 'lib')
-rw-r--r--lib/private/files/cache/scanner.php7
-rw-r--r--lib/private/files/cache/updater.php5
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php
index c16e8515b01..8730707f1c2 100644
--- a/lib/private/files/cache/scanner.php
+++ b/lib/private/files/cache/scanner.php
@@ -205,6 +205,10 @@ class Scanner extends BasicEmitter implements IScanner {
$data['oldSize'] = 0;
}
+ if (isset($cacheData['encrypted'])) {
+ $data['encrypted'] = $cacheData['encrypted'];
+ }
+
// post-emit only if it was a file. By that we avoid counting/treating folders as files
if ($data['mimetype'] !== 'httpd/unix-directory') {
$this->emit('\OC\Files\Cache\Scanner', 'postScanFile', array($file, $this->storageId));
@@ -222,6 +226,9 @@ class Scanner extends BasicEmitter implements IScanner {
}
}
+ if ($data && !isset($data['encrypted'])) {
+ $data['encrypted'] = false;
+ }
return $data;
}
diff --git a/lib/private/files/cache/updater.php b/lib/private/files/cache/updater.php
index 80ba704883e..3f80f2b6167 100644
--- a/lib/private/files/cache/updater.php
+++ b/lib/private/files/cache/updater.php
@@ -118,7 +118,10 @@ class Updater implements IUpdater {
}
$data = $this->scanner->scan($path, Scanner::SCAN_SHALLOW, -1, false);
- if (isset($data['oldSize']) && isset($data['size'])) {
+ if (
+ isset($data['oldSize']) && isset($data['size']) &&
+ !$data['encrypted'] // encryption is a pita and touches the cache itself
+ ) {
$sizeDifference = $data['size'] - $data['oldSize'];
} else {
// scanner didn't provide size info, fallback to full size calculation