From b51b5b64e65e7c9b5abd6fdb6446394a0ab34595 Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Fri, 10 Apr 2015 12:12:05 +0200
Subject: [PATCH] Fix converting Guzzle error codes in s2s storage

---
 apps/files_sharing/lib/external/storage.php | 23 ++++++++++++---------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php
index 1dfef21ca7..7c1dc5aeaf 100644
--- a/apps/files_sharing/lib/external/storage.php
+++ b/apps/files_sharing/lib/external/storage.php
@@ -248,16 +248,19 @@ class Storage extends DAV implements ISharedStorage {
 
 		// TODO: DI
 		$client = \OC::$server->getHTTPClientService()->newClient();
-		$response = $client->post($url, ['body' => ['password' => $password]]);
-
-		switch ($response->getStatusCode()) {
-			case 401:
-			case 403:
-				throw new ForbiddenException();
-			case 404:
-				throw new NotFoundException();
-			case 500:
-				throw new \Exception();
+		try {
+			$response = $client->post($url, ['body' => ['password' => $password]]);
+		} catch (\GuzzleHttp\Exception\RequestException $e) {
+			switch ($e->getCode()) {
+				case 401:
+				case 403:
+					throw new ForbiddenException();
+				case 404:
+					throw new NotFoundException();
+				case 500:
+					throw new \Exception();
+			}
+			throw $e;
 		}
 
 		return json_decode($response->getBody(), true);
-- 
GitLab