mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2025-03-14 20:21:14 +03:00
fix: bug in cloudflare response detection
The cloudflare server header was not recognized in some cases such as when the server header is "server" or when the header value is "Cloudflare".
This commit is contained in:
parent
7bdc53125c
commit
384790537b
1 changed files with 4 additions and 2 deletions
|
@ -228,6 +228,8 @@ function getContents($url, $header = array(), $opts = array(), $returnHeader = f
|
|||
curl_close($ch);
|
||||
}
|
||||
|
||||
$finalHeader = array_change_key_case($finalHeader, CASE_LOWER);
|
||||
|
||||
switch($errorCode) {
|
||||
case 200: // Contents OK
|
||||
case 201: // Contents Created
|
||||
|
@ -236,7 +238,7 @@ function getContents($url, $header = array(), $opts = array(), $returnHeader = f
|
|||
$data = substr($data, $headerSize);
|
||||
// Disable caching if the server responds with "Cache-Control: no-cache"
|
||||
// or "Cache-Control: no-store"
|
||||
$finalHeader = array_change_key_case($finalHeader, CASE_LOWER);
|
||||
|
||||
if(array_key_exists('cache-control', $finalHeader)) {
|
||||
Debug::log('Server responded with "Cache-Control" header');
|
||||
$directives = explode(',', $finalHeader['cache-control']);
|
||||
|
@ -257,7 +259,7 @@ function getContents($url, $header = array(), $opts = array(), $returnHeader = f
|
|||
$retVal['content'] = $cache->loadData();
|
||||
break;
|
||||
default:
|
||||
if(array_key_exists('Server', $finalHeader) && strpos($finalHeader['Server'], 'cloudflare') !== false) {
|
||||
if(array_key_exists('server', $finalHeader) && stripos($finalHeader['server'], 'cloudflare') !== false) {
|
||||
throw new CloudflareChallengeException($errorCode);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue