This code always fails (i.e., $result
is Boolean false
):
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $path); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_NOBODY, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $curl_version = curl_version(); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 999); $result = curl_exec($ch); curl_close($ch);
This code always succeeds (i.e., $result
is a string containing the header):
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $path); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_NOBODY, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $curl_version = curl_version(); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 1000); $result = curl_exec($ch); curl_close($ch);
The only difference is that I've changed the timeout from 999ms to 1000ms.
This must be either a bug in curl or some sort of minimum in the documentation for connection timeouts that I missed. Which is it? My money is on the latter.