Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-03-06 21:57:53 +0300
committerThomas Müller <thomas.mueller@tmit.eu>2016-03-06 21:57:53 +0300
commit6f4712a314e394c5b818427cd071e8a1a15b1d33 (patch)
tree1d6d9077d156dedd91b87f227aba887b69f68201
parentd043b6ba9107930a6c25325957e6c83bc7aacd8d (diff)
parent71e3f7f8662db3bfb095a4ea966e6e3d3746a861 (diff)
Merge pull request #22884 from owncloud/backport-cache-results
[stable9] Cache results of testRemoteUrl
-rw-r--r--apps/files_sharing/lib/external/storage.php21
1 files changed, 19 insertions, 2 deletions
diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php
index 41f7bef589b..87f5a3598fb 100644
--- a/apps/files_sharing/lib/external/storage.php
+++ b/apps/files_sharing/lib/external/storage.php
@@ -55,6 +55,11 @@ class Storage extends DAV implements ISharedStorage {
private $token;
/**
+ * @var \OCP\ICacheFactory
+ */
+ private $memcacheFactory;
+
+ /**
* @var \OCP\ICertificateManager
*/
private $certificateManager;
@@ -67,8 +72,9 @@ class Storage extends DAV implements ISharedStorage {
private $manager;
public function __construct($options) {
+ $this->memcacheFactory = \OC::$server->getMemCacheFactory();
$discoveryManager = new DiscoveryManager(
- \OC::$server->getMemCacheFactory(),
+ $this->memcacheFactory,
\OC::$server->getHTTPClientService()
);
@@ -241,10 +247,21 @@ class Storage extends DAV implements ISharedStorage {
}
}
+ /**
+ * @param string $url
+ * @return bool
+ */
private function testRemoteUrl($url) {
+ $cache = $this->memcacheFactory->create('files_sharing_remote_url');
+ if($result = $cache->get($url)) {
+ return (bool)$result;
+ }
+
$result = file_get_contents($url);
$data = json_decode($result);
- return (is_object($data) and !empty($data->version));
+ $returnValue = (is_object($data) and !empty($data->version));
+ $cache->set($url, $returnValue);
+ return $returnValue;
}
/**