From: Antonio Ospite Date: Thu, 24 Dec 2020 09:10:55 +0000 (+0100) Subject: src/Tweeper.php: check http response code and return error for error codes X-Git-Tag: v1.4.3~2 X-Git-Url: https://git.ao2.it/tweeper.git/commitdiff_plain/ad39a334af38e4a5d37e553e8ad81eac4d2cedaa src/Tweeper.php: check http response code and return error for error codes Check http response code from curl and return error for codes greater than 400. In particular this covers the case of non-existing accounts on social media sites as the failure will propagate to the main function which will exit with a non-zero code. --- diff --git a/src/Tweeper.php b/src/Tweeper.php index 4a32f56..12004cf 100644 --- a/src/Tweeper.php +++ b/src/Tweeper.php @@ -111,6 +111,17 @@ class Tweeper { } } while (curl_errno($ch) == CURLE_OPERATION_TIMEDOUT && ++$attempt < Tweeper::$maxConnectionRetries); + $response_code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE); + if (FALSE === $response_code) { + trigger_error(curl_error($ch), E_USER_WARNING); + return FALSE; + } + + if ($response_code >= 400) { + trigger_error("HTTP reponse code $response_code", E_USER_WARNING); + return FALSE; + } + return $ret; } @@ -336,6 +347,9 @@ class Tweeper { $get_xml_host_method = 'getXml' . Tweeper::toUpperCamelCase($host, '.'); if (method_exists($this, $get_xml_host_method)) { $xml_data = call_user_func_array([$this, $get_xml_host_method], [$html]); + if (NULL === $xml_data) { + return NULL; + } $xmlDoc->loadXML($xml_data); } else {