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?hp=357d7a4955830d690a16d52a6f91e351c813ab48 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 {