%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/3rdparty/.patches/ |
| Current File : /www/varak.net/nextcloud.varak.net/3rdparty/.patches/fix-cache-for-node.diff |
diff --git a/lib/DAV/Tree.php b/lib/DAV/Tree.php
index 65b4583ceb..1483e1bc51 100644
--- a/lib/DAV/Tree.php
+++ b/lib/DAV/Tree.php
@@ -62,9 +62,21 @@ public function getNodeForPath($path)
return $this->rootNode;
}
- $parts = explode('/', $path);
$node = $this->rootNode;
+ // look for any cached parent and collect the parts below the parent
+ $parts = [];
+ $remainingPath = $path;
+ do {
+ list($remainingPath, $baseName) = Uri\split($remainingPath);
+ array_unshift($parts, $baseName);
+
+ if (isset($this->cache[$remainingPath])) {
+ $node = $this->cache[$remainingPath];
+ break;
+ }
+ } while ('' !== $remainingPath);
+
while (count($parts)) {
if (!($node instanceof ICollection)) {
throw new Exception\NotFound('Could not find node at path: '.$path);