src/Tweeper.php: make code more robust by properly check return values
authorAntonio Ospite <ao2@ao2.it>
Tue, 13 Nov 2018 16:56:44 +0000 (17:56 +0100)
committerAntonio Ospite <ao2@ao2.it>
Fri, 16 Nov 2018 09:28:16 +0000 (10:28 +0100)
Check return values to catch error earlier, and while at it also emit
more error messages in case of failures.

src/Tweeper.php

index cfa3812..22d16ab 100644 (file)
@@ -124,7 +124,14 @@ class Tweeper {
       CURLOPT_SSL_VERIFYPEER => FALSE,
       CURLOPT_USERAGENT => Tweeper::$userAgent,
     ));
       CURLOPT_SSL_VERIFYPEER => FALSE,
       CURLOPT_USERAGENT => Tweeper::$userAgent,
     ));
-    curl_exec($ch);
+
+    $ret = curl_exec($ch);
+    if (FALSE === $ret) {
+      trigger_error(curl_error($ch));
+      curl_close($ch);
+      return FALSE;
+    }
+
     $url_info = curl_getinfo($ch);
     if (FALSE === $url_info) {
       trigger_error(curl_error($ch));
     $url_info = curl_getinfo($ch);
     if (FALSE === $url_info) {
       trigger_error(curl_error($ch));
@@ -160,6 +167,10 @@ class Tweeper {
     );
 
     $url_info = Tweeper::getUrlInfo($url);
     );
 
     $url_info = Tweeper::getUrlInfo($url);
+    if (FALSE === $url_info) {
+      error_log("Failed to retrieve info for URL: " . $url);
+      return '';
+    }
 
     $supported = in_array($url_info['content_type'], $supported_content_types);
     if (!$supported) {
 
     $supported = in_array($url_info['content_type'], $supported_content_types);
     if (!$supported) {
@@ -320,6 +331,9 @@ class Tweeper {
     }
 
     $stylesheet_contents = Tweeper::getUrlContents($stylesheet);
     }
 
     $stylesheet_contents = Tweeper::getUrlContents($stylesheet);
+    if (FALSE === $stylesheet_contents) {
+      return NULL;
+    }
 
     $xslDoc = new DOMDocument();
     $xslDoc->loadXML($stylesheet_contents);
 
     $xslDoc = new DOMDocument();
     $xslDoc->loadXML($stylesheet_contents);