aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-07-01 12:30:32 +0200
committerVincent Petry <pvince81@owncloud.com>2015-07-01 12:30:32 +0200
commit5caeda33f155145a74f6108326deb13314eedff2 (patch)
tree7c7ba120d17eb0a1308b6866ed4d9ee670702e22
parentb476c125c0e9a57a4953bea9f9f119d3ae1b1bf0 (diff)
parent5d3aa3635513c08e1226087689b3e1305ad9ba39 (diff)
downloadnextcloud-server-5caeda33f155145a74f6108326deb13314eedff2.tar.gz
nextcloud-server-5caeda33f155145a74f6108326deb13314eedff2.zip
Merge pull request #17273 from owncloud/s2s-catchmoreexceptiontypes
Catch more error codes thrown by federated shares
-rw-r--r--apps/files_sharing/lib/external/storage.php20
1 files changed, 7 insertions, 13 deletions
diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php
index 39e182feb60..3284a60172f 100644
--- a/apps/files_sharing/lib/external/storage.php
+++ b/apps/files_sharing/lib/external/storage.php
@@ -191,7 +191,7 @@ class Storage extends DAV implements ISharedStorage {
throw new StorageInvalidException();
} else {
// ownCloud instance is gone, likely to be a temporary server configuration error
- throw $e;
+ throw new StorageNotAvailableException();
}
} catch (ForbiddenException $e) {
// auth error, remove share for now (provide a dialog in the future)
@@ -201,10 +201,7 @@ class Storage extends DAV implements ISharedStorage {
} catch (\GuzzleHttp\Exception\ConnectException $e) {
throw new StorageNotAvailableException();
} catch (\GuzzleHttp\Exception\RequestException $e) {
- if ($e->getCode() === 503) {
- throw new StorageNotAvailableException();
- }
- throw $e;
+ throw new StorageNotAvailableException();
} catch (\Exception $e) {
throw $e;
}
@@ -250,16 +247,13 @@ class Storage extends DAV implements ISharedStorage {
try {
$response = $client->post($url, ['body' => ['password' => $password]]);
} catch (\GuzzleHttp\Exception\RequestException $e) {
- switch ($e->getCode()) {
- case 401:
- case 403:
+ if ($e->getCode() === 401 || $e->getCode() === 403) {
throw new ForbiddenException();
- case 404:
- throw new NotFoundException();
- case 500:
- throw new \Exception();
}
- throw $e;
+ // throw this to be on the safe side: the share will still be visible
+ // in the UI in case the failure is intermittent, and the user will
+ // be able to decide whether to remove it if it's really gone
+ throw new NotFoundException();
}
return json_decode($response->getBody(), true);