[HttpClient] Turn negative timeout to a very long timeout

This commit is contained in:
Thomas Calvet 2021-12-31 15:34:09 +01:00
parent 69d4d6dddf
commit 6360c316e5
2 changed files with 13 additions and 1 deletions

View File

@ -147,7 +147,10 @@ trait HttpClientTrait
// Finalize normalization of options
$options['http_version'] = (string) ($options['http_version'] ?? '') ?: null;
$options['timeout'] = (float) ($options['timeout'] ?? ini_get('default_socket_timeout'));
if (0 > $options['timeout'] = (float) ($options['timeout'] ?? ini_get('default_socket_timeout'))) {
$options['timeout'] = 172800.0; // 2 days
}
$options['max_duration'] = isset($options['max_duration']) ? (float) $options['max_duration'] : 0;
return [$url, $options];

View File

@ -179,4 +179,13 @@ abstract class HttpClientTestCase extends BaseHttpClientTestCase
$this->assertNotEmpty($traceInfo['debug']);
}
public function testNegativeTimeout()
{
$client = $this->getHttpClient(__FUNCTION__);
$this->assertSame(200, $client->request('GET', 'http://localhost:8057', [
'timeout' => -1,
])->getStatusCode());
}
}