forked from GNUsocial/gnu-social
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.
This commit is contained in:
parent
3395f6081c
commit
f0480c34d7
@ -393,6 +393,7 @@ $default =
|
|||||||
'ssl_verify_host' => true, // HTTPRequest2 makes sure this is set to CURLOPT_SSL_VERIFYHOST==2 if using curl
|
'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.)
|
'curl' => false, // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.)
|
||||||
'connect_timeout' => 5,
|
'connect_timeout' => 5,
|
||||||
|
'timeout' => 60,
|
||||||
'proxy_host' => null,
|
'proxy_host' => null,
|
||||||
'proxy_port' => null,
|
'proxy_port' => null,
|
||||||
'proxy_user' => null,
|
'proxy_user' => null,
|
||||||
|
@ -116,6 +116,16 @@ class HTTPClient extends HTTP_Request2
|
|||||||
|
|
||||||
function __construct($url=null, $method=self::METHOD_GET, $config=array())
|
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['connect_timeout'] = common_config('http', 'connect_timeout') ?: $this->config['connect_timeout'];
|
||||||
$this->config['max_redirs'] = 10;
|
$this->config['max_redirs'] = 10;
|
||||||
$this->config['follow_redirects'] = true;
|
$this->config['follow_redirects'] = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user