summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2023-01-23 11:11:26 +0100
committerCôme Chilliet <come.chilliet@nextcloud.com>2023-02-07 11:23:30 +0100
commit7a628c036132bad8eac152a1efcb4a15f42a44d6 (patch)
treef374565625b5477a292556ff3878a2bd7ab8b8e6
parent94ecae4ade0b618c024708b747ee7da8b0fb7113 (diff)
downloadnextcloud-server-7a628c036132bad8eac152a1efcb4a15f42a44d6.tar.gz
nextcloud-server-7a628c036132bad8eac152a1efcb4a15f42a44d6.zip
Fix 32bits bigint support in Util/OC_Helper
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
-rw-r--r--lib/private/legacy/OC_Helper.php25
-rw-r--r--lib/private/legacy/OC_Util.php4
-rw-r--r--lib/public/Util.php26
3 files changed, 27 insertions, 28 deletions
diff --git a/lib/private/legacy/OC_Helper.php b/lib/private/legacy/OC_Helper.php
index 7d0837402fa..5301fe5a498 100644
--- a/lib/private/legacy/OC_Helper.php
+++ b/lib/private/legacy/OC_Helper.php
@@ -49,6 +49,7 @@ use OCP\Files\Mount\IMountPoint;
use OCP\ICacheFactory;
use OCP\IBinaryFinder;
use OCP\IUser;
+use OCP\Util;
use Psr\Log\LoggerInterface;
/**
@@ -59,12 +60,12 @@ class OC_Helper {
/**
* Make a human file size
- * @param int $bytes file size in bytes
+ * @param int|float $bytes file size in bytes
* @return string a human readable file size
*
* Makes 2048 to 2 kB.
*/
- public static function humanFileSize($bytes) {
+ public static function humanFileSize(int|float $bytes): string {
if ($bytes < 0) {
return "?";
}
@@ -126,9 +127,7 @@ class OC_Helper {
return false;
}
- $bytes = round($bytes);
-
- return $bytes;
+ return Util::numericToNumber(round($bytes));
}
/**
@@ -384,8 +383,8 @@ class OC_Helper {
* calculates the maximum upload size respecting system settings, free space and user quota
*
* @param string $dir the current folder where the user currently operates
- * @param int $freeSpace the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
- * @return int number of bytes representing
+ * @param int|float $freeSpace the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
+ * @return int|float number of bytes representing
*/
public static function maxUploadFilesize($dir, $freeSpace = null) {
if (is_null($freeSpace) || $freeSpace < 0) {
@@ -398,7 +397,7 @@ class OC_Helper {
* Calculate free space left within user quota
*
* @param string $dir the current folder where the user currently operates
- * @return int number of bytes representing
+ * @return int|float number of bytes representing
*/
public static function freeSpace($dir) {
$freeSpace = \OC\Files\Filesystem::free_space($dir);
@@ -413,12 +412,12 @@ class OC_Helper {
/**
* Calculate PHP upload limit
*
- * @return int PHP upload file size limit
+ * @return int|float PHP upload file size limit
*/
public static function uploadLimit() {
$ini = \OC::$server->get(IniGetWrapper::class);
- $upload_max_filesize = (int)OCP\Util::computerFileSize($ini->get('upload_max_filesize'));
- $post_max_size = (int)OCP\Util::computerFileSize($ini->get('post_max_size'));
+ $upload_max_filesize = Util::computerFileSize($ini->get('upload_max_filesize')) ?: 0;
+ $post_max_size = Util::computerFileSize($ini->get('post_max_size')) ?: 0;
if ($upload_max_filesize === 0 && $post_max_size === 0) {
return INF;
} elseif ($upload_max_filesize === 0 || $post_max_size === 0) {
@@ -579,8 +578,8 @@ class OC_Helper {
/**
* Get storage info including all mount points and quota
*/
- private static function getGlobalStorageInfo(int $quota, IUser $user, IMountPoint $mount): array {
- $rootInfo = \OC\Files\Filesystem::getFileInfo('', 'ext');
+ private static function getGlobalStorageInfo(int|float $quota, IUser $user, IMountPoint $mount): array {
+ $rootInfo = \OC\Files\Filesystem::getFileInfo('', true);
$used = $rootInfo['size'];
if ($used < 0) {
$used = 0;
diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php
index 6dc08341b18..7f06900feb0 100644
--- a/lib/private/legacy/OC_Util.php
+++ b/lib/private/legacy/OC_Util.php
@@ -146,7 +146,7 @@ class OC_Util {
/**
* check if share API enforces a default expire date
*
- * @return boolean
+ * @return bool
* @suppress PhanDeprecatedFunction
*/
public static function isDefaultExpireDateEnforced() {
@@ -159,7 +159,7 @@ class OC_Util {
* Get the quota of a user
*
* @param IUser|null $user
- * @return int|\OCP\Files\FileInfo::SPACE_UNLIMITED|false Quota bytes
+ * @return int|\OCP\Files\FileInfo::SPACE_UNLIMITED|false|float Quota bytes
*/
public static function getUserQuota(?IUser $user) {
if (is_null($user)) {
diff --git a/lib/public/Util.php b/lib/public/Util.php
index dcb2ac4878f..159e5d5585a 100644
--- a/lib/public/Util.php
+++ b/lib/public/Util.php
@@ -341,34 +341,34 @@ class Util {
/**
* Converts string to int of float depending if it fits an int
- * @param numeric-string $number numeric string
+ * @param numeric-string|float|int $number numeric string
* @return int|float int if it fits, float if it is too big
* @since 26.0.0
*/
- public static function numericToNumber(string $number): int|float {
+ public static function numericToNumber(string|float|int $number): int|float {
/* This is a hack to cast to (int|float) */
return 0 + $number;
}
/**
* Make a human file size (2048 to 2 kB)
- * @param int $bytes file size in bytes
+ * @param int|float $bytes file size in bytes
* @return string a human readable file size
* @since 4.0.0
*/
- public static function humanFileSize($bytes) {
+ public static function humanFileSize(int|float $bytes): string {
return \OC_Helper::humanFileSize($bytes);
}
/**
* Make a computer file size (2 kB to 2048)
* @param string $str file size in a fancy format
- * @return float|false a file size in bytes
+ * @return false|int|float a file size in bytes
*
* Inspired by: https://www.php.net/manual/en/function.filesize.php#92418
* @since 4.0.0
*/
- public static function computerFileSize($str) {
+ public static function computerFileSize(string $str): false|int|float {
return \OC_Helper::computerFileSize($str);
}
@@ -485,31 +485,31 @@ class Util {
* calculates the maximum upload size respecting system settings, free space and user quota
*
* @param string $dir the current folder where the user currently operates
- * @param int $free the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
- * @return int number of bytes representing
+ * @param int|float|null $free the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
+ * @return int|float number of bytes representing
* @since 5.0.0
*/
- public static function maxUploadFilesize($dir, $free = null) {
+ public static function maxUploadFilesize(string $dir, int|float|null $free = null): int|float {
return \OC_Helper::maxUploadFilesize($dir, $free);
}
/**
* Calculate free space left within user quota
* @param string $dir the current folder where the user currently operates
- * @return int number of bytes representing
+ * @return int|float number of bytes representing
* @since 7.0.0
*/
- public static function freeSpace($dir) {
+ public static function freeSpace(string $dir): int|float {
return \OC_Helper::freeSpace($dir);
}
/**
* Calculate PHP upload limit
*
- * @return int number of bytes representing
+ * @return int|float number of bytes representing
* @since 7.0.0
*/
- public static function uploadLimit() {
+ public static function uploadLimit(): int|float {
return \OC_Helper::uploadLimit();
}