From ad39a334af38e4a5d37e553e8ad81eac4d2cedaa Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Thu, 24 Dec 2020 10:10:55 +0100 Subject: [PATCH] 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. --- src/Tweeper.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 { -- 2.1.4