diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-04-27 17:41:02 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-06-02 11:42:03 +0200 |
commit | 30d7f92763505e52a41788012f87142f298a3461 (patch) | |
tree | 41eb21dc0caec2ade802b8786c7691eb396e4c4a /lib | |
parent | d2f3710ede1fa72658a4c12264a90a1936faf9ca (diff) | |
download | nextcloud-server-30d7f92763505e52a41788012f87142f298a3461.tar.gz nextcloud-server-30d7f92763505e52a41788012f87142f298a3461.zip |
Get etag from remote OC server
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/files/storage/dav.php | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php index 0ddfde15047..15f513585fe 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']); |