summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Fuchß <develop@fuchss.org>2023-05-15 23:35:12 +0200
committerDaniel <mail@danielkesselberg.de>2023-06-13 10:31:33 +0200
commitc3ba871f3633297046341b7760add409063f2512 (patch)
treecb62b8fec280173d04f700ab5ca0e717747d2e09
parent39b716cc78385be1552306890d588540435267dd (diff)
downloadnextcloud-server-c3ba871f3633297046341b7760add409063f2512.tar.gz
nextcloud-server-c3ba871f3633297046341b7760add409063f2512.zip
Add config variable for curl timeout
Add the config variable for curl calls ("remote_curl_timeout"). E.g., needed for nextcloud federation. Signed-off-by: Dominik Fuchß <develop@fuchss.org>
-rw-r--r--config/config.sample.php5
-rw-r--r--lib/private/Files/Storage/DAV.php8
2 files changed, 11 insertions, 2 deletions
diff --git a/config/config.sample.php b/config/config.sample.php
index 94b8a5d0552..4330b0cda60 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -290,6 +290,11 @@ $CONFIG = [
'session_lifetime' => 60 * 60 * 24,
/**
+ * The timeout for requests to remote servers (e.g., needed for federated shares).
+ */
+'remote_curl_timeout' => 30,
+
+/**
* `true` enabled a relaxed session timeout, where the session timeout would no longer be
* handled by Nextcloud but by either the PHP garbage collection or the expiration of
* potential other session backends like redis.
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php
index 733aa10cde6..366ab4dda14 100644
--- a/lib/private/Files/Storage/DAV.php
+++ b/lib/private/Files/Storage/DAV.php
@@ -373,7 +373,9 @@ class DAV extends Common {
->newClient()
->get($this->createBaseUri() . $this->encodePath($path), [
'auth' => [$this->user, $this->password],
- 'stream' => true
+ 'stream' => true,
+ // set download timeout for users with slow connections or large files
+ 'timeout' => \OC::$server->getConfig()->getSystemValueInt('remote_curl_timeout', 30)
]);
} catch (\GuzzleHttp\Exception\ClientException $e) {
if ($e->getResponse() instanceof ResponseInterface
@@ -530,7 +532,9 @@ class DAV extends Common {
->newClient()
->put($this->createBaseUri() . $this->encodePath($target), [
'body' => $source,
- 'auth' => [$this->user, $this->password]
+ 'auth' => [$this->user, $this->password],
+ // set upload timeout for users with slow connections or large files
+ 'timeout' => \OC::$server->getConfig()->getSystemValueInt('remote_curl_timeout', 30)
]);
$this->removeCachedFile($target);