Bläddra i källkod

Fix regression cURL HTTP headers (#7403)

* Fix regression cURL HTTP headers
fix https://github.com/FreshRSS/FreshRSS/issues/6712#issuecomment-2697961491
We would sometimes wrongly override the default HTTP headers of SimplePie
https://github.com/FreshRSS/simplepie/pull/33
https://github.com/simplepie/simplepie/pull/912

* Sync SimplePie
https://github.com/FreshRSS/simplepie/pull/33
Alexandre Alapetite 1 år sedan
förälder
incheckning
ecdb63c335

+ 2 - 1
app/Controllers/feedController.php

@@ -211,8 +211,9 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
 					}
 				}
 			}
+
+			$headers = array_filter(array_map('trim', $headers));
 			if (!empty($headers)) {
-				$headers = array_filter(array_map('trim', $headers));
 				$opts[CURLOPT_HTTPHEADER] = array_merge($headers, $opts[CURLOPT_HTTPHEADER] ?? []);
 			}
 

+ 1 - 1
app/Controllers/subscriptionController.php

@@ -194,8 +194,8 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
 				}
 			}
 
+			$headers = array_filter(array_map('trim', $headers));
 			if (!empty($headers)) {
-				$headers = array_filter(array_map('trim', $headers));
 				$opts[CURLOPT_HTTPHEADER] = array_merge($headers, $opts[CURLOPT_HTTPHEADER] ?? []);
 			}
 

+ 1 - 1
lib/composer.json

@@ -14,7 +14,7 @@
         "marienfressinaud/lib_opml": "0.5.1",
         "phpgt/cssxpath": "v1.3.0",
         "phpmailer/phpmailer": "6.9.3",
-        "simplepie/simplepie": "dev-freshrss#dd86e5e9efb8d082ebd214b81cc5aa746f02fc26"
+        "simplepie/simplepie": "dev-freshrss#d7e513f3366b8f26fd32643544f839d0a789abe8"
     },
     "config": {
         "sort-packages": true,

+ 6 - 0
lib/simplepie/simplepie/src/File.php

@@ -115,6 +115,12 @@ class File implements Response
                 foreach ($headers as $key => $value) {
                     $headers2[] = "$key: $value";
                 }
+                if (isset($curl_options[CURLOPT_HTTPHEADER])) {
+                    if (is_array($curl_options[CURLOPT_HTTPHEADER])) {
+                        $headers2 = array_merge($headers2, $curl_options[CURLOPT_HTTPHEADER]);
+                    }
+                    unset($curl_options[CURLOPT_HTTPHEADER]);
+                }
                 if (version_compare(\SimplePie\Misc::get_curl_version(), '7.10.5', '>=')) {
                     curl_setopt($fp, CURLOPT_ENCODING, '');
                 }