From 30d7f92763505e52a41788012f87142f298a3461 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 27 Apr 2015 17:41:02 +0200 Subject: [PATCH] Get etag from remote OC server --- lib/private/files/storage/dav.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php index 0ddfde1504..15f513585f 100644 --- a/lib/private/files/storage/dav.php +++ b/lib/private/files/storage/dav.php @@ -682,7 +682,7 @@ class DAV extends Common { public function getPermissions($path) { $this->init(); $path = $this->cleanPath($path); - $response = $this->client->propfind($this->encodePath($path), array('{http://owncloud.org/ns}permissions')); + $response = $this->propfind($path); if (isset($response['{http://owncloud.org/ns}permissions'])) { return $this->parsePermissions($response['{http://owncloud.org/ns}permissions']); } else if ($this->is_dir($path)) { @@ -694,6 +694,17 @@ class DAV extends Common { } } + /** {@inheritdoc} */ + public function getETag($path) { + $this->init(); + $path = $this->cleanPath($path); + $response = $this->propfind($path); + if (isset($response['{DAV:}getetag'])) { + return trim($response['{DAV:}getetag'], '"'); + } + return parent::getEtag($path); + } + /** * @param string $permissionsString * @return int @@ -733,8 +744,11 @@ class DAV extends Common { $response = $this->propfind($path); if (isset($response['{DAV:}getetag'])) { $cachedData = $this->getCache()->get($path); - $etag = trim($response['{DAV:}getetag'], '"'); - if ($cachedData['etag'] !== $etag) { + $etag = null; + if (isset($response['{DAV:}getetag'])) { + $etag = trim($response['{DAV:}getetag'], '"'); + } + if (!empty($etag) && $cachedData['etag'] !== $etag) { return true; } else if (isset($response['{http://owncloud.org/ns}permissions'])) { $permissions = $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);