summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2014-06-06 16:16:44 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2014-06-06 16:16:44 +0200
commitc053f2738162ae50da886833004bf39aed8387a5 (patch)
tree32910fad713235fff26f9678277a052dd11b78f7 /lib
parent933c05566e21c27e4f2d4b4e9c2d54e7b363d304 (diff)
parent26993f216744e78a22adb62c5c7aa233027db98a (diff)
downloadnextcloud-server-c053f2738162ae50da886833004bf39aed8387a5.tar.gz
nextcloud-server-c053f2738162ae50da886833004bf39aed8387a5.zip
Merge pull request #8921 from owncloud/fix-remove-storage-master
No need to create a storage within remove
Diffstat (limited to 'lib')
-rw-r--r--lib/private/files/cache/storage.php32
1 files changed, 22 insertions, 10 deletions
diff --git a/lib/private/files/cache/storage.php b/lib/private/files/cache/storage.php
index 6b6b0bce9d7..3a267874431 100644
--- a/lib/private/files/cache/storage.php
+++ b/lib/private/files/cache/storage.php
@@ -43,12 +43,15 @@ class Storage {
}
}
+ /**
+ * @return string
+ */
public function getNumericId() {
return $this->numericId;
}
/**
- * @return string
+ * @return string|null
*/
public static function getStorageId($numericId) {
@@ -62,37 +65,46 @@ class Storage {
}
/**
- * @param string $storageId
+ * @return string|null
*/
- public static function exists($storageId) {
+ public static function getNumericStorageId($storageId) {
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
+
$sql = 'SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?';
$result = \OC_DB::executeAudited($sql, array($storageId));
if ($row = $result->fetchRow()) {
- return true;
+ return $row['numeric_id'];
} else {
- return false;
+ return null;
}
}
/**
+ * @param string $storageId
+ * @return bool
+ */
+ public static function exists($storageId) {
+ return !is_null(self::getNumericStorageId($storageId));
+ }
+
+ /**
* remove the entry for the storage
*
* @param string $storageId
*/
public static function remove($storageId) {
- $storageCache = new Storage($storageId);
- $numericId = $storageCache->getNumericId();
-
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
$sql = 'DELETE FROM `*PREFIX*storages` WHERE `id` = ?';
\OC_DB::executeAudited($sql, array($storageId));
- $sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
- \OC_DB::executeAudited($sql, array($numericId));
+ $numericId = self::exists($storageId);
+ if (!is_null($numericId)) {
+ $sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
+ \OC_DB::executeAudited($sql, array($numericId));
+ }
}
}