src/Tweeper.php: do not disable CURLOPT_SSL_VERIFYHOST and CURLOPT_SSL_VERIFYPEER
[tweeper.git] / src / Tweeper.php
index 8fda9b1..7e277cf 100644 (file)
@@ -36,7 +36,7 @@ date_default_timezone_set('UTC');
  */
 class Tweeper {
 
-  private static $userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0";
+  private static $userAgent = "Mozilla/5.0";
   private static $maxConnectionTimeout = 5;
   private static $maxConnectionRetries = 5;
 
@@ -121,9 +121,8 @@ class Tweeper {
       CURLOPT_CONNECTTIMEOUT => Tweeper::$maxConnectionTimeout,
       // Follow http redirects to get the real URL.
       CURLOPT_FOLLOWLOCATION => TRUE,
+      CURLOPT_COOKIEFILE => "",
       CURLOPT_RETURNTRANSFER => TRUE,
-      CURLOPT_SSL_VERIFYHOST => FALSE,
-      CURLOPT_SSL_VERIFYPEER => FALSE,
       CURLOPT_HTTPHEADER => array('Accept-language: en'),
       CURLOPT_USERAGENT => Tweeper::$userAgent,
     ));
@@ -145,8 +144,6 @@ class Tweeper {
       // Follow http redirects to get the real URL.
       CURLOPT_FOLLOWLOCATION => TRUE,
       CURLOPT_RETURNTRANSFER => TRUE,
-      CURLOPT_SSL_VERIFYHOST => FALSE,
-      CURLOPT_SSL_VERIFYPEER => FALSE,
       CURLOPT_USERAGENT => Tweeper::$userAgent,
     ));
 
@@ -206,10 +203,17 @@ class Tweeper {
     // See http://sourceforge.net/p/feedvalidator/bugs/72/
     $http_url = preg_replace("/^https/", "http", $url_info['url']);
 
+    // When the server does not provide a Content-Length header,
+    // curl_getinfo() would return a negative value for
+    // "download_content_length", however RSS recommends to use 0 when the
+    // enclosure's size cannot be determined.
+    // See: https://www.feedvalidator.org/docs/error/UseZeroForUnknown.html
+    $length = max($url_info['download_content_length'], 0);
+
     $dom = new DOMDocument();
     $enc = $dom->createElement('enclosure');
     $enc->setAttribute('url', $http_url);
-    $enc->setAttribute('length', $url_info['download_content_length']);
+    $enc->setAttribute('length', $length);
     $enc->setAttribute('type', $url_info['content_type']);
 
     return $enc;