We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit f0480c34 authored by mattl's avatar mattl

Configure a default timeout for HTTP connections at 60s

No requests we do externally should ever take more than 60 seconds. This
could probably be changed for downloading video or whatever for any cache
plugins that want to store data locally, but in general I think even 60s
is way longer than I expect any outgoing requests should take.

This affects everything using HTTPClient, our helper class, and thus all
hub pings, subscription requests, etc. etc.

The value, afaik, includes connect_timeout and if it takes 10 seconds to
establish a connection only 50 seconds is available to transfer data.
parent 3395f608
......@@ -393,6 +393,7 @@ $default =
'ssl_verify_host' => true, // HTTPRequest2 makes sure this is set to CURLOPT_SSL_VERIFYHOST==2 if using curl
'curl' => false, // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.)
'connect_timeout' => 5,
'timeout' => 60,
'proxy_host' => null,
'proxy_port' => null,
'proxy_user' => null,
......@@ -116,6 +116,16 @@ class HTTPClient extends HTTP_Request2
function __construct($url=null, $method=self::METHOD_GET, $config=array())
if (is_int(common_config('http', 'timeout'))) {
// Reasonably you shouldn't set http/timeout to 0 because of
// malicious remote servers that can cause infinitely long
// responses... But the default in HTTP_Request2 is 0 for
// some reason and should probably be considered a valid value.
$this->config['timeout'] = common_config('http', 'timeout');
common_debug('Using HTTPClient timeout value of '._ve($this->config['timeout']));
} else {
common_log(LOG_ERR, 'config option http/timeout is not an integer value: '._ve(common_config('http', 'timeout')));
$this->config['connect_timeout'] = common_config('http', 'connect_timeout') ?: $this->config['connect_timeout'];
$this->config['max_redirs'] = 10;
$this->config['follow_redirects'] = true;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment