From ec968a48e44159c1bb323d6ea3be3388277d7928 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 21 Jun 2016 17:37:44 +0200 Subject: [PATCH] Increase fed share timeout from 3 to 10 + unit tests --- .../lib/DiscoveryManager.php | 4 +-- .../lib/Notifications.php | 4 +-- .../tests/DiscoveryManagerTest.php | 25 +++++++++++++++---- apps/files_sharing/ajax/external.php | 4 +-- apps/files_sharing/lib/External/Storage.php | 8 +++--- 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/apps/federatedfilesharing/lib/DiscoveryManager.php b/apps/federatedfilesharing/lib/DiscoveryManager.php index bf8dfeb31d..25af0a40fd 100644 --- a/apps/federatedfilesharing/lib/DiscoveryManager.php +++ b/apps/federatedfilesharing/lib/DiscoveryManager.php @@ -85,8 +85,8 @@ class DiscoveryManager { // Read the data from the response body try { $response = $this->client->get($remote . '/ocs-provider/', [ - 'timeout' => 3, - 'connect_timeout' => 3, + 'timeout' => 10, + 'connect_timeout' => 10, ]); if($response->getStatusCode() === 200) { $decodedService = json_decode($response->getBody(), true); diff --git a/apps/federatedfilesharing/lib/Notifications.php b/apps/federatedfilesharing/lib/Notifications.php index 575521d564..fefa959ba3 100644 --- a/apps/federatedfilesharing/lib/Notifications.php +++ b/apps/federatedfilesharing/lib/Notifications.php @@ -288,8 +288,8 @@ class Notifications { try { $response = $client->post($protocol . $remoteDomain . $endpoint . $urlSuffix . '?format=' . self::RESPONSE_FORMAT, [ 'body' => $fields, - 'timeout' => 3, - 'connect_timeout' => 3, + 'timeout' => 10, + 'connect_timeout' => 10, ]); $result['result'] = $response->getBody(); $result['success'] = true; diff --git a/apps/federatedfilesharing/tests/DiscoveryManagerTest.php b/apps/federatedfilesharing/tests/DiscoveryManagerTest.php index 73f79b2c16..a9c324f024 100644 --- a/apps/federatedfilesharing/tests/DiscoveryManagerTest.php +++ b/apps/federatedfilesharing/tests/DiscoveryManagerTest.php @@ -77,7 +77,10 @@ class DiscoveryManagerTest extends \Test\TestCase { $this->client ->expects($this->once()) ->method('get') - ->with('https://myhost.com/ocs-provider/', []) + ->with('https://myhost.com/ocs-provider/', [ + 'timeout' => 10, + 'connect_timeout' => 10, + ]) ->willReturn($response); $this->cache ->expects($this->at(0)) @@ -111,7 +114,10 @@ class DiscoveryManagerTest extends \Test\TestCase { $this->client ->expects($this->once()) ->method('get') - ->with('https://myhost.com/ocs-provider/', []) + ->with('https://myhost.com/ocs-provider/', [ + 'timeout' => 10, + 'connect_timeout' => 10, + ]) ->willReturn($response); $expectedResult = '/public.php/MyCustomEndpoint/'; @@ -131,7 +137,10 @@ class DiscoveryManagerTest extends \Test\TestCase { $this->client ->expects($this->once()) ->method('get') - ->with('https://myhost.com/ocs-provider/', []) + ->with('https://myhost.com/ocs-provider/', [ + 'timeout' => 10, + 'connect_timeout' => 10, + ]) ->willReturn($response); $expectedResult = '/public.php/webdav'; @@ -151,7 +160,10 @@ class DiscoveryManagerTest extends \Test\TestCase { $this->client ->expects($this->once()) ->method('get') - ->with('https://myhost.com/ocs-provider/', []) + ->with('https://myhost.com/ocs-provider/', [ + 'timeout' => 10, + 'connect_timeout' => 10, + ]) ->willReturn($response); $expectedResult = '/ocs/v2.php/cloud/MyCustomShareEndpoint'; @@ -171,7 +183,10 @@ class DiscoveryManagerTest extends \Test\TestCase { $this->client ->expects($this->once()) ->method('get') - ->with('https://myhost.com/ocs-provider/', []) + ->with('https://myhost.com/ocs-provider/', [ + 'timeout' => 10, + 'connect_timeout' => 10, + ]) ->willReturn($response); $this->cache ->expects($this->at(0)) diff --git a/apps/files_sharing/ajax/external.php b/apps/files_sharing/ajax/external.php index 6a0a4dfc06..4a7a6096c9 100644 --- a/apps/files_sharing/ajax/external.php +++ b/apps/files_sharing/ajax/external.php @@ -78,8 +78,8 @@ $externalManager = new \OCA\Files_Sharing\External\Manager( if (substr($remote, 0, 5) === 'https') { try { \OC::$server->getHTTPClientService()->newClient()->get($remote, [ - 'timeout' => 3, - 'connect_timeout' => 3, + 'timeout' => 10, + 'connect_timeout' => 10, ])->getBody(); } catch (\Exception $e) { \OCP\JSON::error(array('data' => array('message' => $l->t('Invalid or untrusted SSL certificate')))); diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php index 7302de5f93..29b9c7b563 100644 --- a/apps/files_sharing/lib/External/Storage.php +++ b/apps/files_sharing/lib/External/Storage.php @@ -255,8 +255,8 @@ class Storage extends DAV implements ISharedStorage { $client = $this->httpClient->newClient(); try { $result = $client->get($url, [ - 'timeout' => 3, - 'connect_timeout' => 3, + 'timeout' => 10, + 'connect_timeout' => 10, ])->getBody(); $data = json_decode($result); $returnValue = (is_object($data) && !empty($data->version)); @@ -306,8 +306,8 @@ class Storage extends DAV implements ISharedStorage { try { $response = $client->post($url, [ 'body' => ['password' => $password], - 'timeout' => 3, - 'connect_timeout' => 3, + 'timeout' => 10, + 'connect_timeout' => 10, ]); } catch (\GuzzleHttp\Exception\RequestException $e) { if ($e->getCode() === 401 || $e->getCode() === 403) {