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:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2022-06-17 19:09:35 +0300
committerArthur Schiwon <blizzz@arthur-schiwon.de>2022-07-01 01:15:37 +0300
commit4744a62776c6594619e3a2c6827a43cc0eb08e37 (patch)
treecd136a174910a18edce3a2519eca3549912dd6f2
parentf32c53e5a139b2115abd32501e90bc933f5aa1cf (diff)
memcached should not throw arbitrary exceptionsbackport/32924/stable24
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r--lib/private/Memcache/Memcached.php30
1 files changed, 6 insertions, 24 deletions
diff --git a/lib/private/Memcache/Memcached.php b/lib/private/Memcache/Memcached.php
index 84f220e8a17..7d512d4d1ae 100644
--- a/lib/private/Memcache/Memcached.php
+++ b/lib/private/Memcache/Memcached.php
@@ -63,7 +63,7 @@ class Memcached extends Cache implements IMemcache {
\Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
// Enable Binary Protocol
- \Memcached::OPT_BINARY_PROTOCOL => true,
+ \Memcached::OPT_BINARY_PROTOCOL => true,
];
/**
* By default enable igbinary serializer if available
@@ -119,10 +119,7 @@ class Memcached extends Cache implements IMemcache {
} else {
$result = self::$cache->set($this->getNameSpace() . $key, $value);
}
- if ($result !== true) {
- $this->verifyReturnCode();
- }
- return $result;
+ return $result || $this->isSuccess();
}
public function hasKey($key) {
@@ -132,10 +129,7 @@ class Memcached extends Cache implements IMemcache {
public function remove($key) {
$result = self::$cache->delete($this->getNameSpace() . $key);
- if (self::$cache->getResultCode() !== \Memcached::RES_NOTFOUND) {
- $this->verifyReturnCode();
- }
- return $result;
+ return $result || $this->isSuccess() || self::$cache->getResultCode() === \Memcached::RES_NOTFOUND;
}
public function clear($prefix = '') {
@@ -151,14 +145,10 @@ class Memcached extends Cache implements IMemcache {
* @param mixed $value
* @param int $ttl Time To Live in seconds. Defaults to 60*60*24
* @return bool
- * @throws \Exception
*/
public function add($key, $value, $ttl = 0) {
$result = self::$cache->add($this->getPrefix() . $key, $value, $ttl);
- if (self::$cache->getResultCode() !== \Memcached::RES_NOTSTORED) {
- $this->verifyReturnCode();
- }
- return $result;
+ return $result || $this->isSuccess();
}
/**
@@ -200,15 +190,7 @@ class Memcached extends Cache implements IMemcache {
return extension_loaded('memcached');
}
- /**
- * @throws \Exception
- */
- private function verifyReturnCode() {
- $code = self::$cache->getResultCode();
- if ($code === \Memcached::RES_SUCCESS) {
- return;
- }
- $message = self::$cache->getResultMessage();
- throw new \Exception("Error $code interacting with memcached : $message");
+ private function isSuccess(): bool {
+ return self::$cache->getResultCode() === \Memcached::RES_SUCCESS;
}
}