From 9ca1e9c7e941ee04a33bdf092739df367fe68356 Mon Sep 17 00:00:00 2001 From: Lukas Reschke <lukas@owncloud.com> Date: Tue, 1 Mar 2016 06:49:35 +0100 Subject: [PATCH] Only use scanner if remote is an ownCloud --- apps/files_sharing/lib/external/storage.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php index 514df41eac..ed391f331a 100644 --- a/apps/files_sharing/lib/external/storage.php +++ b/apps/files_sharing/lib/external/storage.php @@ -137,6 +137,9 @@ class Storage extends DAV implements ISharedStorage { if (!$storage) { $storage = $this; } + if(!$this->remoteIsOwnCloud()) { + return parent::getScanner($path, $storage); + } if (!isset($this->scanner)) { $this->scanner = new Scanner($storage); } @@ -239,6 +242,19 @@ class Storage extends DAV implements ISharedStorage { return (is_object($data) and !empty($data->version)); } + /** + * Whether the remote is an ownCloud, used since some sharing features are not + * standardized. Let's use this to detect whether to use it. + * + * @return bool + */ + private function remoteIsOwnCloud() { + if(defined('PHPUNIT_RUN') || !$this->testRemoteUrl($this->getRemote() . '/status.php')) { + return false; + } + return true; + } + /** * @return mixed * @throws ForbiddenException @@ -251,7 +267,7 @@ class Storage extends DAV implements ISharedStorage { $password = $this->getPassword(); // If remote is not an ownCloud do not try to get any share info - if(!$this->testRemoteUrl($remote . '/status.php')) { + if(!$this->remoteIsOwnCloud()) { return ['status' => 'unsupported']; } -- GitLab