From 80dca608589800c8dfdadcd49596a0aff0586c90 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 25 Oct 2021 09:36:48 +0200 Subject: [PATCH] Extra fixes needed for icewind/streams update to 0.7.2 Signed-off-by: Vincent Petry --- apps/dav/lib/Connector/Sabre/File.php | 2 +- apps/files_external/lib/Lib/Storage/SMB.php | 2 +- lib/composer/composer/installed.json | 6 +++- .../Files/ObjectStore/StorageObjectStore.php | 7 ++-- lib/private/Files/SimpleFS/NewSimpleFile.php | 2 +- lib/private/Files/Storage/Common.php | 5 +-- .../Files/Storage/Wrapper/Encoding.php | 26 +++++++------- lib/private/Files/Storage/Wrapper/Jail.php | 24 ++++++------- lib/private/Files/Storage/Wrapper/Quota.php | 6 ++-- lib/private/Files/Storage/Wrapper/Wrapper.php | 28 +++++++-------- lib/private/Files/Stream/Encryption.php | 35 ++++++++++++++----- lib/private/Files/Stream/Quota.php | 2 +- .../Owncloud/MoveAvatarsBackgroundJob.php | 3 +- lib/public/Files/SimpleFS/ISimpleFile.php | 2 +- lib/public/Files/Storage.php | 28 +++++++-------- lib/public/Files/Storage/IStorage.php | 26 +++++++------- 16 files changed, 115 insertions(+), 89 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index 6a2bf6fe3a7..5732a6f27bc 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -494,7 +494,7 @@ class File extends Node implements IFile { } /** - * @return array|false + * @return array|bool */ public function getDirectDownload() { if (\OCP\App::isEnabled('encryption')) { diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php index 646ba53313a..049509fa21c 100644 --- a/apps/files_external/lib/Lib/Storage/SMB.php +++ b/apps/files_external/lib/Lib/Storage/SMB.php @@ -446,7 +446,7 @@ class SMB extends Common implements INotifyStorage { /** * @param string $path * @param string $mode - * @return resource|false + * @return resource|bool */ public function fopen($path, $mode) { $fullPath = $this->buildPath($path); diff --git a/lib/composer/composer/installed.json b/lib/composer/composer/installed.json index fe51488c706..f20a6c47c6d 100644 --- a/lib/composer/composer/installed.json +++ b/lib/composer/composer/installed.json @@ -1 +1,5 @@ -[] +{ + "packages": [], + "dev": false, + "dev-package-names": [] +} diff --git a/lib/private/Files/ObjectStore/StorageObjectStore.php b/lib/private/Files/ObjectStore/StorageObjectStore.php index acf46758956..2076bb3f88b 100644 --- a/lib/private/Files/ObjectStore/StorageObjectStore.php +++ b/lib/private/Files/ObjectStore/StorageObjectStore.php @@ -26,6 +26,7 @@ namespace OC\Files\ObjectStore; use OCP\Files\ObjectStore\IObjectStore; use OCP\Files\Storage\IStorage; +use function is_resource; /** * Object store that wraps a storage backend, mostly for testing purposes @@ -57,11 +58,11 @@ class StorageObjectStore implements IObjectStore { */ public function readObject($urn) { $handle = $this->storage->fopen($urn, 'r'); - if ($handle) { + if (is_resource($handle)) { return $handle; - } else { - throw new \Exception(); } + + throw new \Exception(); } /** diff --git a/lib/private/Files/SimpleFS/NewSimpleFile.php b/lib/private/Files/SimpleFS/NewSimpleFile.php index b8e50941e5f..fb4346aae0f 100644 --- a/lib/private/Files/SimpleFS/NewSimpleFile.php +++ b/lib/private/Files/SimpleFS/NewSimpleFile.php @@ -208,7 +208,7 @@ class NewSimpleFile implements ISimpleFile { /** * Open the file as stream for writing, resulting resource can be operated as stream like the result from php's own fopen * - * @return resource + * @return resource|bool * @throws \OCP\Files\NotPermittedException * @since 14.0.0 */ diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php index e9af4ffb934..9b1c4c65ec1 100644 --- a/lib/private/Files/Storage/Common.php +++ b/lib/private/Files/Storage/Common.php @@ -631,8 +631,9 @@ abstract class Common implements Storage, ILockingStorage, IWriteStreamStorage { } } - if ($result and $preserveMtime) { - $this->touch($targetInternalPath, $sourceStorage->filemtime($sourceInternalPath)); + if ($result && $preserveMtime) { + $mtime = $sourceStorage->filemtime($sourceInternalPath); + $this->touch($targetInternalPath, is_int($mtime) ? $mtime : null); } if (!$result) { diff --git a/lib/private/Files/Storage/Wrapper/Encoding.php b/lib/private/Files/Storage/Wrapper/Encoding.php index 7ba2f06a5bc..d9e30816c9f 100644 --- a/lib/private/Files/Storage/Wrapper/Encoding.php +++ b/lib/private/Files/Storage/Wrapper/Encoding.php @@ -156,7 +156,7 @@ class Encoding extends Wrapper { * see http://php.net/manual/en/function.opendir.php * * @param string $path - * @return resource + * @return resource|bool */ public function opendir($path) { return $this->storage->opendir($this->findPathToUse($path)); @@ -187,7 +187,7 @@ class Encoding extends Wrapper { * only the following keys are required in the result: size and mtime * * @param string $path - * @return array + * @return array|bool */ public function stat($path) { return $this->storage->stat($this->findPathToUse($path)); @@ -197,7 +197,7 @@ class Encoding extends Wrapper { * see http://php.net/manual/en/function.filetype.php * * @param string $path - * @return bool + * @return string|bool */ public function filetype($path) { return $this->storage->filetype($this->findPathToUse($path)); @@ -208,7 +208,7 @@ class Encoding extends Wrapper { * The result for filesize when called on a folder is required to be 0 * * @param string $path - * @return int + * @return int|bool */ public function filesize($path) { return $this->storage->filesize($this->findPathToUse($path)); @@ -289,7 +289,7 @@ class Encoding extends Wrapper { * see http://php.net/manual/en/function.filemtime.php * * @param string $path - * @return int + * @return int|bool */ public function filemtime($path) { return $this->storage->filemtime($this->findPathToUse($path)); @@ -299,7 +299,7 @@ class Encoding extends Wrapper { * see http://php.net/manual/en/function.file_get_contents.php * * @param string $path - * @return string + * @return string|bool */ public function file_get_contents($path) { return $this->storage->file_get_contents($this->findPathToUse($path)); @@ -358,7 +358,7 @@ class Encoding extends Wrapper { * * @param string $path * @param string $mode - * @return resource + * @return resource|bool */ public function fopen($path, $mode) { $result = $this->storage->fopen($this->findPathToUse($path), $mode); @@ -373,7 +373,7 @@ class Encoding extends Wrapper { * The mimetype for a folder is required to be "httpd/unix-directory" * * @param string $path - * @return string + * @return string|bool */ public function getMimeType($path) { return $this->storage->getMimeType($this->findPathToUse($path)); @@ -385,7 +385,7 @@ class Encoding extends Wrapper { * @param string $type * @param string $path * @param bool $raw - * @return string + * @return string|bool */ public function hash($type, $path, $raw = false) { return $this->storage->hash($type, $this->findPathToUse($path), $raw); @@ -395,7 +395,7 @@ class Encoding extends Wrapper { * see http://php.net/manual/en/function.free_space.php * * @param string $path - * @return int + * @return int|bool */ public function free_space($path) { return $this->storage->free_space($this->findPathToUse($path)); @@ -405,7 +405,7 @@ class Encoding extends Wrapper { * search for occurrences of $query in file names * * @param string $query - * @return array + * @return array|bool */ public function search($query) { return $this->storage->search($query); @@ -428,7 +428,7 @@ class Encoding extends Wrapper { * The local version of the file can be temporary and doesn't have to be persistent across requests * * @param string $path - * @return string + * @return string|bool */ public function getLocalFile($path) { return $this->storage->getLocalFile($this->findPathToUse($path)); @@ -480,7 +480,7 @@ class Encoding extends Wrapper { * get the ETag for a file or folder * * @param string $path - * @return string + * @return string|bool */ public function getETag($path) { return $this->storage->getETag($this->findPathToUse($path)); diff --git a/lib/private/Files/Storage/Wrapper/Jail.php b/lib/private/Files/Storage/Wrapper/Jail.php index 1025497c118..926e77e5ed0 100644 --- a/lib/private/Files/Storage/Wrapper/Jail.php +++ b/lib/private/Files/Storage/Wrapper/Jail.php @@ -106,7 +106,7 @@ class Jail extends Wrapper { * see http://php.net/manual/en/function.opendir.php * * @param string $path - * @return resource + * @return resource|bool */ public function opendir($path) { return $this->getWrapperStorage()->opendir($this->getUnjailedPath($path)); @@ -137,7 +137,7 @@ class Jail extends Wrapper { * only the following keys are required in the result: size and mtime * * @param string $path - * @return array + * @return array|bool */ public function stat($path) { return $this->getWrapperStorage()->stat($this->getUnjailedPath($path)); @@ -158,7 +158,7 @@ class Jail extends Wrapper { * The result for filesize when called on a folder is required to be 0 * * @param string $path - * @return int + * @return int|bool */ public function filesize($path) { return $this->getWrapperStorage()->filesize($this->getUnjailedPath($path)); @@ -239,7 +239,7 @@ class Jail extends Wrapper { * see http://php.net/manual/en/function.filemtime.php * * @param string $path - * @return int + * @return int|bool */ public function filemtime($path) { return $this->getWrapperStorage()->filemtime($this->getUnjailedPath($path)); @@ -249,7 +249,7 @@ class Jail extends Wrapper { * see http://php.net/manual/en/function.file_get_contents.php * * @param string $path - * @return string + * @return string|bool */ public function file_get_contents($path) { return $this->getWrapperStorage()->file_get_contents($this->getUnjailedPath($path)); @@ -303,7 +303,7 @@ class Jail extends Wrapper { * * @param string $path * @param string $mode - * @return resource + * @return resource|bool */ public function fopen($path, $mode) { return $this->getWrapperStorage()->fopen($this->getUnjailedPath($path), $mode); @@ -314,7 +314,7 @@ class Jail extends Wrapper { * The mimetype for a folder is required to be "httpd/unix-directory" * * @param string $path - * @return string + * @return string|bool */ public function getMimeType($path) { return $this->getWrapperStorage()->getMimeType($this->getUnjailedPath($path)); @@ -326,7 +326,7 @@ class Jail extends Wrapper { * @param string $type * @param string $path * @param bool $raw - * @return string + * @return string|bool */ public function hash($type, $path, $raw = false) { return $this->getWrapperStorage()->hash($type, $this->getUnjailedPath($path), $raw); @@ -336,7 +336,7 @@ class Jail extends Wrapper { * see http://php.net/manual/en/function.free_space.php * * @param string $path - * @return int + * @return int|bool */ public function free_space($path) { return $this->getWrapperStorage()->free_space($this->getUnjailedPath($path)); @@ -346,7 +346,7 @@ class Jail extends Wrapper { * search for occurrences of $query in file names * * @param string $query - * @return array + * @return array|bool */ public function search($query) { return $this->getWrapperStorage()->search($query); @@ -369,7 +369,7 @@ class Jail extends Wrapper { * The local version of the file can be temporary and doesn't have to be persistent across requests * * @param string $path - * @return string + * @return string|bool */ public function getLocalFile($path) { return $this->getWrapperStorage()->getLocalFile($this->getUnjailedPath($path)); @@ -432,7 +432,7 @@ class Jail extends Wrapper { * get the ETag for a file or folder * * @param string $path - * @return string + * @return string|bool */ public function getETag($path) { return $this->getWrapperStorage()->getETag($this->getUnjailedPath($path)); diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php index 406f0fd4649..c7adec19540 100644 --- a/lib/private/Files/Storage/Wrapper/Quota.php +++ b/lib/private/Files/Storage/Wrapper/Quota.php @@ -94,7 +94,7 @@ class Quota extends Wrapper { * Get free space as limited by the quota * * @param string $path - * @return int + * @return int|bool */ public function free_space($path) { if ($this->quota < 0 || strpos($path, 'cache') === 0 || strpos($path, 'uploads') === 0) { @@ -154,7 +154,7 @@ class Quota extends Wrapper { * * @param string $path * @param string $mode - * @return resource + * @return resource|bool */ public function fopen($path, $mode) { $source = $this->storage->fopen($path, $mode); @@ -162,7 +162,7 @@ class Quota extends Wrapper { // don't apply quota for part files if (!$this->isPartFile($path)) { $free = $this->free_space($path); - if ($source && $free >= 0 && $mode !== 'r' && $mode !== 'rb') { + if ($source && is_int($free) && $free >= 0 && $mode !== 'r' && $mode !== 'rb') { // only apply quota for files, not metadata, trash or others if ($this->shouldApplyQuota($path)) { return \OC\Files\Stream\Quota::wrap($source, $free); diff --git a/lib/private/Files/Storage/Wrapper/Wrapper.php b/lib/private/Files/Storage/Wrapper/Wrapper.php index b88931a1c35..61e10262f8b 100644 --- a/lib/private/Files/Storage/Wrapper/Wrapper.php +++ b/lib/private/Files/Storage/Wrapper/Wrapper.php @@ -97,7 +97,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * see http://php.net/manual/en/function.opendir.php * * @param string $path - * @return resource + * @return resource|bool */ public function opendir($path) { return $this->getWrapperStorage()->opendir($path); @@ -128,7 +128,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * only the following keys are required in the result: size and mtime * * @param string $path - * @return array + * @return array|bool */ public function stat($path) { return $this->getWrapperStorage()->stat($path); @@ -138,7 +138,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * see http://php.net/manual/en/function.filetype.php * * @param string $path - * @return bool + * @return string|bool */ public function filetype($path) { return $this->getWrapperStorage()->filetype($path); @@ -149,7 +149,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * The result for filesize when called on a folder is required to be 0 * * @param string $path - * @return int + * @return int|bool */ public function filesize($path) { return $this->getWrapperStorage()->filesize($path); @@ -230,7 +230,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * see http://php.net/manual/en/function.filemtime.php * * @param string $path - * @return int + * @return int|bool */ public function filemtime($path) { return $this->getWrapperStorage()->filemtime($path); @@ -240,7 +240,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * see http://php.net/manual/en/function.file_get_contents.php * * @param string $path - * @return string + * @return string|bool */ public function file_get_contents($path) { return $this->getWrapperStorage()->file_get_contents($path); @@ -294,7 +294,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * * @param string $path * @param string $mode - * @return resource + * @return resource|bool */ public function fopen($path, $mode) { return $this->getWrapperStorage()->fopen($path, $mode); @@ -305,7 +305,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * The mimetype for a folder is required to be "httpd/unix-directory" * * @param string $path - * @return string + * @return string|bool */ public function getMimeType($path) { return $this->getWrapperStorage()->getMimeType($path); @@ -317,7 +317,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * @param string $type * @param string $path * @param bool $raw - * @return string + * @return string|bool */ public function hash($type, $path, $raw = false) { return $this->getWrapperStorage()->hash($type, $path, $raw); @@ -327,7 +327,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * see http://php.net/manual/en/function.free_space.php * * @param string $path - * @return int + * @return int|bool */ public function free_space($path) { return $this->getWrapperStorage()->free_space($path); @@ -337,7 +337,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * search for occurrences of $query in file names * * @param string $query - * @return array + * @return array|bool */ public function search($query) { return $this->getWrapperStorage()->search($query); @@ -360,7 +360,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * The local version of the file can be temporary and doesn't have to be persistent across requests * * @param string $path - * @return string + * @return string|bool */ public function getLocalFile($path) { return $this->getWrapperStorage()->getLocalFile($path); @@ -458,7 +458,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * get the ETag for a file or folder * * @param string $path - * @return string + * @return string|bool */ public function getETag($path) { return $this->getWrapperStorage()->getETag($path); @@ -513,7 +513,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * For now the returned array can hold the parameter url - in future more attributes might follow. * * @param string $path - * @return array + * @return array|bool */ public function getDirectDownload($path) { return $this->getWrapperStorage()->getDirectDownload($path); diff --git a/lib/private/Files/Stream/Encryption.php b/lib/private/Files/Stream/Encryption.php index 3fade4d656b..2708ea6a7c3 100644 --- a/lib/private/Files/Stream/Encryption.php +++ b/lib/private/Files/Stream/Encryption.php @@ -34,6 +34,8 @@ namespace OC\Files\Stream; use Icewind\Streams\Wrapper; use OC\Encryption\Exceptions\EncryptionHeaderKeyExistsException; +use function is_array; +use function stream_context_create; class Encryption extends Wrapper { @@ -190,17 +192,22 @@ class Encryption extends Wrapper { /** * add stream wrapper * - * @param resource $source + * @param resource|int $source + * @param resource|array $context + * @param string|null $protocol + * @param string|null $class * @param string $mode - * @param resource $context - * @param string $protocol - * @param string $class * @return resource * @throws \BadMethodCallException */ - protected static function wrapSource($source, $context, $protocol, $class, $mode = 'r+') { + protected static function wrapSource($source, $context = [], $protocol = null, $class = null, $mode = 'r+') { try { + if ($protocol === null) { + $protocol = self::getProtocol($class); + } + stream_wrapper_register($protocol, $class); + $context = self::buildContext($protocol, $context, $source); if (self::isDirectoryHandle($source)) { $wrapped = opendir($protocol . '://', $context); } else { @@ -214,14 +221,26 @@ class Encryption extends Wrapper { return $wrapped; } + /** + * @todo this is a copy of \Icewind\Streams\WrapperHandler::buildContext -> combine to one shared method? + */ + private static function buildContext($protocol, $context, $source) { + if (is_array($context)) { + $context['source'] = $source; + return stream_context_create([$protocol => $context]); + } + + return $context; + } + /** * Load the source from the stream context and return the context options * - * @param string $name + * @param string|null $name * @return array * @throws \BadMethodCallException */ - protected function loadContext($name) { + protected function loadContext($name = null) { $context = parent::loadContext($name); foreach ($this->expectedContextProperties as $property) { @@ -314,7 +333,7 @@ class Encryption extends Wrapper { } return $result; } - + /** * stream_read_block * diff --git a/lib/private/Files/Stream/Quota.php b/lib/private/Files/Stream/Quota.php index 3bf46264b83..483871c06df 100644 --- a/lib/private/Files/Stream/Quota.php +++ b/lib/private/Files/Stream/Quota.php @@ -42,7 +42,7 @@ class Quota extends Wrapper { /** * @param resource $stream * @param int $limit - * @return resource + * @return bool|resource */ public static function wrap($stream, $limit) { $context = stream_context_create([ diff --git a/lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php b/lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php index ec076d116c5..458812bcc73 100644 --- a/lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php +++ b/lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php @@ -32,6 +32,7 @@ use OCP\IAvatarManager; use OCP\IUser; use OCP\IUserManager; use Psr\Log\LoggerInterface; +use function is_resource; class MoveAvatarsBackgroundJob extends QueuedJob { @@ -78,7 +79,7 @@ class MoveAvatarsBackgroundJob extends QueuedJob { try { $avatarPath = $path . '/avatar.' . $this->getExtension($path); $resource = $this->owncloudAvatarStorage->fopen($avatarPath, 'r'); - if ($resource) { + if (is_resource($resource)) { $avatar->set($resource); fclose($resource); } else { diff --git a/lib/public/Files/SimpleFS/ISimpleFile.php b/lib/public/Files/SimpleFS/ISimpleFile.php index 06039d5397d..ad39460c4bf 100644 --- a/lib/public/Files/SimpleFS/ISimpleFile.php +++ b/lib/public/Files/SimpleFS/ISimpleFile.php @@ -114,7 +114,7 @@ interface ISimpleFile { /** * Open the file as stream for writing, resulting resource can be operated as stream like the result from php's own fopen * - * @return resource + * @return resource|bool * @throws \OCP\Files\NotPermittedException * @since 14.0.0 */ diff --git a/lib/public/Files/Storage.php b/lib/public/Files/Storage.php index d642512641d..9438dedfb13 100644 --- a/lib/public/Files/Storage.php +++ b/lib/public/Files/Storage.php @@ -92,7 +92,7 @@ interface Storage extends IStorage { * see http://php.net/manual/en/function.opendir.php * * @param string $path - * @return resource|false + * @return resource|bool * @since 6.0.0 */ public function opendir($path); @@ -120,7 +120,7 @@ interface Storage extends IStorage { * only the following keys are required in the result: size and mtime * * @param string $path - * @return array|false + * @return array|bool * @since 6.0.0 */ public function stat($path); @@ -129,7 +129,7 @@ interface Storage extends IStorage { * see http://php.net/manual/en/function.filetype.php * * @param string $path - * @return string|false + * @return string|bool * @since 6.0.0 */ public function filetype($path); @@ -139,7 +139,7 @@ interface Storage extends IStorage { * The result for filesize when called on a folder is required to be 0 * * @param string $path - * @return int|false + * @return int|bool * @since 6.0.0 */ public function filesize($path); @@ -212,7 +212,7 @@ interface Storage extends IStorage { * see http://php.net/manual/en/function.filemtime.php * * @param string $path - * @return int|false + * @return int|bool * @since 6.0.0 */ public function filemtime($path); @@ -221,7 +221,7 @@ interface Storage extends IStorage { * see http://php.net/manual/en/function.file_get_contents.php * * @param string $path - * @return string|false + * @return string|bool * @since 6.0.0 */ public function file_get_contents($path); @@ -270,7 +270,7 @@ interface Storage extends IStorage { * * @param string $path * @param string $mode - * @return resource|false + * @return resource|bool * @since 6.0.0 */ public function fopen($path, $mode); @@ -280,7 +280,7 @@ interface Storage extends IStorage { * The mimetype for a folder is required to be "httpd/unix-directory" * * @param string $path - * @return string|false + * @return string|bool * @since 6.0.0 */ public function getMimeType($path); @@ -291,7 +291,7 @@ interface Storage extends IStorage { * @param string $type * @param string $path * @param bool $raw - * @return string|false + * @return string|bool * @since 6.0.0 */ public function hash($type, $path, $raw = false); @@ -300,7 +300,7 @@ interface Storage extends IStorage { * see http://php.net/manual/en/function.free_space.php * * @param string $path - * @return int|false + * @return int|bool * @since 6.0.0 */ public function free_space($path); @@ -309,7 +309,7 @@ interface Storage extends IStorage { * search for occurrences of $query in file names * * @param string $query - * @return array|false + * @return array|bool * @since 6.0.0 */ public function search($query); @@ -330,7 +330,7 @@ interface Storage extends IStorage { * The local version of the file can be temporary and doesn't have to be persistent across requests * * @param string $path - * @return string|false + * @return string|bool * @since 6.0.0 */ public function getLocalFile($path); @@ -352,7 +352,7 @@ interface Storage extends IStorage { * get the ETag for a file or folder * * @param string $path - * @return string|false + * @return string|bool * @since 6.0.0 */ public function getETag($path); @@ -384,7 +384,7 @@ interface Storage extends IStorage { * For now the returned array can hold the parameter url - in future more attributes might follow. * * @param string $path - * @return array|false + * @return array|bool * @since 8.0.0 */ public function getDirectDownload($path); diff --git a/lib/public/Files/Storage/IStorage.php b/lib/public/Files/Storage/IStorage.php index f5073d1ad73..c1a466185ee 100644 --- a/lib/public/Files/Storage/IStorage.php +++ b/lib/public/Files/Storage/IStorage.php @@ -88,7 +88,7 @@ interface IStorage { * see http://php.net/manual/en/function.opendir.php * * @param string $path - * @return resource|false + * @return resource|bool * @since 9.0.0 */ public function opendir($path); @@ -116,7 +116,7 @@ interface IStorage { * only the following keys are required in the result: size and mtime * * @param string $path - * @return array|false + * @return array|bool * @since 9.0.0 */ public function stat($path); @@ -125,7 +125,7 @@ interface IStorage { * see http://php.net/manual/en/function.filetype.php * * @param string $path - * @return string|false + * @return string|bool * @since 9.0.0 */ public function filetype($path); @@ -135,7 +135,7 @@ interface IStorage { * The result for filesize when called on a folder is required to be 0 * * @param string $path - * @return int|false + * @return int|bool * @since 9.0.0 */ public function filesize($path); @@ -208,7 +208,7 @@ interface IStorage { * see http://php.net/manual/en/function.filemtime.php * * @param string $path - * @return int|false + * @return int|bool * @since 9.0.0 */ public function filemtime($path); @@ -217,7 +217,7 @@ interface IStorage { * see http://php.net/manual/en/function.file_get_contents.php * * @param string $path - * @return string|false + * @return string|bool * @since 9.0.0 */ public function file_get_contents($path); @@ -266,7 +266,7 @@ interface IStorage { * * @param string $path * @param string $mode - * @return resource|false + * @return resource|bool * @since 9.0.0 */ public function fopen($path, $mode); @@ -276,7 +276,7 @@ interface IStorage { * The mimetype for a folder is required to be "httpd/unix-directory" * * @param string $path - * @return string|false + * @return string|bool * @since 9.0.0 */ public function getMimeType($path); @@ -287,7 +287,7 @@ interface IStorage { * @param string $type * @param string $path * @param bool $raw - * @return string|false + * @return string|bool * @since 9.0.0 */ public function hash($type, $path, $raw = false); @@ -296,7 +296,7 @@ interface IStorage { * see http://php.net/manual/en/function.free_space.php * * @param string $path - * @return int|false + * @return int|bool * @since 9.0.0 */ public function free_space($path); @@ -317,7 +317,7 @@ interface IStorage { * The local version of the file can be temporary and doesn't have to be persistent across requests * * @param string $path - * @return string|false + * @return string|bool * @since 9.0.0 */ public function getLocalFile($path); @@ -339,7 +339,7 @@ interface IStorage { * get the ETag for a file or folder * * @param string $path - * @return string|false + * @return string|bool * @since 9.0.0 */ public function getETag($path); @@ -371,7 +371,7 @@ interface IStorage { * For now the returned array can hold the parameter url - in future more attributes might follow. * * @param string $path - * @return array|false + * @return array|bool * @since 9.0.0 */ public function getDirectDownload($path);