Skip to content

Commit da4ec5c

Browse files
committed
[Bugfix] Fix the cloudflare domain search when saving setting with more than 50 domains under one account
1 parent 3a1949c commit da4ec5c

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

litespeed-cache/inc/cdn.class.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,25 +677,41 @@ private function _cloudflare_zone()
677677
*/
678678
public function cloudflare_fetch_zone( $options )
679679
{
680+
$kw = $options[ LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE_NAME ] ;
681+
680682
$url = 'https://api.cloudflare.com/client/v4/zones?status=active&match=all' ;
681683

684+
// Try exact match first
685+
if ( $kw && strpos( $kw, '.' ) ) {
686+
$zones = $this->_cloudflare_call( $url . '&name=' . $kw, 'GET', false, $options, false ) ;
687+
if ( $zones ) {
688+
LiteSpeed_Cache_Log::debug( 'CDN: cloudflare_fetch_zone exact matched' ) ;
689+
return $zones[ 0 ] ;
690+
}
691+
}
692+
693+
// Can't find, try to get default one
682694
$zones = $this->_cloudflare_call( $url, 'GET', false, $options, false ) ;
683695

684696
if ( ! $zones ) {
697+
LiteSpeed_Cache_Log::debug( 'CDN: cloudflare_fetch_zone no zone' ) ;
685698
return false ;
686699
}
687700

688-
$kw = $options[ LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE_NAME ] ;
689701
if ( ! $kw ) {
702+
LiteSpeed_Cache_Log::debug( 'CDN: cloudflare_fetch_zone no set name, use first one by default' ) ;
690703
return $zones[ 0 ] ;
691704
}
692705

693706
foreach ( $zones as $v ) {
694707
if ( strpos( $v[ 'name' ], $kw ) !== false ) {
708+
LiteSpeed_Cache_Log::debug( 'CDN: cloudflare_fetch_zone matched ' . $kw . ' [name] ' . $v[ 'name' ] ) ;
695709
return $v ;
696710
}
697711
}
698712

713+
// Can't match current name, return default one
714+
LiteSpeed_Cache_Log::debug( 'CDN: cloudflare_fetch_zone failed match name, use first one by default' ) ;
699715
return $zones[ 0 ] ;
700716
}
701717

0 commit comments

Comments
 (0)