summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2020-09-17 20:41:49 +0200
committerGitHub <noreply@github.com>2020-09-17 20:41:49 +0200
commit45cf49bbca1563b69ea7b73ea3497c91651cc313 (patch)
treeb3fc3b6ee48a62bcabd0209a790916e91ac9512c /apps
parent031269979daf4d534a351f158e1eae5e150e8917 (diff)
parent43b3049a4f124ca82cc3f99beb51f96e717d7506 (diff)
downloadnextcloud-server-45cf49bbca1563b69ea7b73ea3497c91651cc313.tar.gz
nextcloud-server-45cf49bbca1563b69ea7b73ea3497c91651cc313.zip
Merge pull request #22915 from nextcloud/smb-outofspace-handling
improve handling of out of space errors for smb
Diffstat (limited to 'apps')
-rw-r--r--apps/files_external/lib/Lib/Storage/SMB.php6
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php
index 404aa4e12de..c7e2583f08d 100644
--- a/apps/files_external/lib/Lib/Storage/SMB.php
+++ b/apps/files_external/lib/Lib/Storage/SMB.php
@@ -44,6 +44,7 @@ use Icewind\SMB\Exception\Exception;
use Icewind\SMB\Exception\ForbiddenException;
use Icewind\SMB\Exception\InvalidArgumentException;
use Icewind\SMB\Exception\NotFoundException;
+use Icewind\SMB\Exception\OutOfSpaceException;
use Icewind\SMB\Exception\TimedOutException;
use Icewind\SMB\IFileInfo;
use Icewind\SMB\Native\NativeServer;
@@ -57,6 +58,7 @@ use OC\Files\Filesystem;
use OC\Files\Storage\Common;
use OCA\Files_External\Lib\Notify\SMBNotifyHandler;
use OCP\Constants;
+use OCP\Files\EntityTooLargeException;
use OCP\Files\Notify\IChange;
use OCP\Files\Notify\IRenameChange;
use OCP\Files\Storage\INotifyStorage;
@@ -497,6 +499,8 @@ class SMB extends Common implements INotifyStorage {
return false;
} catch (ForbiddenException $e) {
return false;
+ } catch (OutOfSpaceException $e) {
+ throw new EntityTooLargeException("not enough available space to create file", 0, $e);
} catch (ConnectException $e) {
$this->logger->logException($e, ['message' => 'Error while opening file']);
throw new StorageNotAvailableException($e->getMessage(), $e->getCode(), $e);
@@ -538,6 +542,8 @@ class SMB extends Common implements INotifyStorage {
return true;
}
return false;
+ } catch (OutOfSpaceException $e) {
+ throw new EntityTooLargeException("not enough available space to create file", 0, $e);
} catch (ConnectException $e) {
$this->logger->logException($e, ['message' => 'Error while creating file']);
throw new StorageNotAvailableException($e->getMessage(), $e->getCode(), $e);