aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/files/cache/scanner.php15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php
index 7d449204e81..e8f54c34be7 100644
--- a/lib/files/cache/scanner.php
+++ b/lib/files/cache/scanner.php
@@ -86,15 +86,24 @@ class Scanner {
if ($file !== '.' and $file !== '..') {
$child = ($path !== '') ? $path . '/' . $file : $file;
$data = $this->scanFile($child);
- if ($recursive === self::SCAN_RECURSIVE and $data['mimetype'] === 'httpd/unix-directory') {
- $data['size'] = $this->scan($child, self::SCAN_RECURSIVE);
+ if ($data['mimetype'] === 'httpd/unix-directory') {
+ if ($recursive === self::SCAN_RECURSIVE) {
+ $data['size'] = $this->scan($child, self::SCAN_RECURSIVE);
+ } else {
+ $data['size'] = -1;
+ }
}
- if ($data['size'] >= 0 and $size >= 0) {
+ if ($data['size'] === -1) {
+ $size = -1;
+ } elseif ($size !== -1) {
$size += $data['size'];
}
}
}
}
+ if ($size !== -1) {
+ $this->cache->put($path, array('size' => $size));
+ }
return $size;
}
}