|
|
|
@ -371,7 +371,7 @@ class Scanner extends BasicEmitter implements IScanner { |
|
|
|
$childQueue = $this->handleChildren($path, $recursive, $reuse, $folderId, $lock, $size); |
|
|
|
|
|
|
|
foreach ($childQueue as $child => $childId) { |
|
|
|
$childSize = $this->scanChildren($child, self::SCAN_RECURSIVE, $reuse, $childId, $lock); |
|
|
|
$childSize = $this->scanChildren($child, $recursive, $reuse, $childId, $lock); |
|
|
|
if ($childSize === -1) { |
|
|
|
$size = -1; |
|
|
|
} else if ($size !== -1) { |
|
|
|
@ -402,6 +402,9 @@ class Scanner extends BasicEmitter implements IScanner { |
|
|
|
if ($data) { |
|
|
|
if ($data['mimetype'] === 'httpd/unix-directory' and $recursive === self::SCAN_RECURSIVE) { |
|
|
|
$childQueue[$child] = $data['fileid']; |
|
|
|
} else if ($data['mimetype'] === 'httpd/unix-directory' and $recursive === self::SCAN_RECURSIVE_INCOMPLETE and $data['size'] === -1) { |
|
|
|
// only recurse into folders which aren't fully scanned
|
|
|
|
$childQueue[$child] = $data['fileid']; |
|
|
|
} else if ($data['size'] === -1) { |
|
|
|
$size = -1; |
|
|
|
} else if ($size !== -1) { |
|
|
|
@ -469,8 +472,8 @@ class Scanner extends BasicEmitter implements IScanner { |
|
|
|
} else { |
|
|
|
$lastPath = null; |
|
|
|
while (($path = $this->cache->getIncomplete()) !== false && $path !== $lastPath) { |
|
|
|
$this->runBackgroundScanJob(function () use ($path) { |
|
|
|
$this->scan($path, self::SCAN_RECURSIVE, self::REUSE_ETAG); |
|
|
|
$this->runBackgroundScanJob(function() use ($path) { |
|
|
|
$this->scan($path, self::SCAN_RECURSIVE_INCOMPLETE, self::REUSE_ETAG | self::REUSE_SIZE); |
|
|
|
}, $path); |
|
|
|
// FIXME: this won't proceed with the next item, needs revamping of getIncomplete()
|
|
|
|
// to make this possible
|
|
|
|
|