summaryrefslogtreecommitdiffstats
path: root/lib/private/Files/Storage/Wrapper/Quota.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Files/Storage/Wrapper/Quota.php')
-rw-r--r--lib/private/Files/Storage/Wrapper/Quota.php18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php
index 5c542361c36..5b702890675 100644
--- a/lib/private/Files/Storage/Wrapper/Quota.php
+++ b/lib/private/Files/Storage/Wrapper/Quota.php
@@ -41,7 +41,8 @@ use OCP\Files\Storage\IStorage;
class Quota extends Wrapper {
/** @var callable|null */
protected $quotaCallback;
- protected ?int $quota;
+ /** @var int|float|null int on 64bits, float on 32bits for bigint */
+ protected $quota;
protected string $sizeRoot;
private SystemConfig $config;
@@ -57,9 +58,9 @@ class Quota extends Wrapper {
}
/**
- * @return int quota value
+ * @return int|float quota value
*/
- public function getQuota(): int {
+ public function getQuota() {
if ($this->quota === null) {
$quotaCallback = $this->quotaCallback;
if ($quotaCallback === null) {
@@ -77,7 +78,8 @@ class Quota extends Wrapper {
/**
* @param string $path
- * @param \OC\Files\Storage\Storage $storage
+ * @param IStorage $storage
+ * @return int|float
*/
protected function getSize($path, $storage = null) {
if ($this->config->getValue('quota_include_external_storage', false)) {
@@ -101,7 +103,7 @@ class Quota extends Wrapper {
* Get free space as limited by the quota
*
* @param string $path
- * @return int|bool
+ * @return int|float|bool
*/
public function free_space($path) {
if (!$this->hasQuota()) {
@@ -128,7 +130,7 @@ class Quota extends Wrapper {
*
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
*/
public function file_put_contents($path, $data) {
if (!$this->hasQuota()) {
@@ -177,7 +179,7 @@ class Quota extends Wrapper {
// don't apply quota for part files
if (!$this->isPartFile($path)) {
$free = $this->free_space($path);
- if ($source && is_int($free) && $free >= 0 && $mode !== 'r' && $mode !== 'rb') {
+ if ($source && (is_int($free) || is_float($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);
@@ -192,7 +194,7 @@ class Quota extends Wrapper {
* Checks whether the given path is a part file
*
* @param string $path Path that may identify a .part file
- * @return string File path without .part extension
+ * @return bool
* @note this is needed for reusing keys
*/
private function isPartFile($path) {