Current File : /home/quantums/alhidayamaintenance.com/wp-content/plugins/litespeed-cache/src/cdn/quic.cls.php |
<?php
/**
* The quic.cloud class.
*
* @since 2.4.1
* @package LiteSpeed
* @subpackage LiteSpeed/src/cdn
* @author LiteSpeed Technologies <info@litespeedtech.com>
*/
namespace LiteSpeed\CDN;
use LiteSpeed\Cloud;
use LiteSpeed\Base;
defined( 'WPINC' ) || exit;
class Quic extends Base {
const LOG_TAG = '☁️';
const TYPE_REG = 'reg';
protected $_summary;
public function __construct() {
$this->_summary = self::get_summary();
}
/**
* Notify CDN new config updated
*
* @access public
*/
public static function try_sync_config() {
self::cls()->try_sync_conf();
}
public function try_sync_conf() {
$options = $this->get_options();
if ( ! $options[ self::O_CDN_QUIC ] ) {
return false;
}
// Security: Remove cf key in report
$secure_fields = array(
self::O_CDN_CLOUDFLARE_KEY,
self::O_OBJECT_PSWD,
);
foreach ( $secure_fields as $v ) {
if ( ! empty( $options[ $v ] ) ) {
$options[ $v ] = str_repeat( '*', strlen( $options[ $v ] ) );
}
}
unset( $options[ self::O_MEDIA_LQIP_EXC ] );
// Rest url
$options[ '_rest' ] = function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' );
$options[ '_home_url' ] = home_url( '/' );
// Add server env vars
$options[ '_server' ] = $this->server_vars();
// Append hooks
$options[ '_tp_cookies' ] = apply_filters( 'litespeed_vary_cookies', array() );
$conf_md5 = md5( json_encode( $options ) );
if ( ! empty( $this->_summary[ 'conf_md5' ] ) && $conf_md5 == $this->_summary[ 'conf_md5' ] ) {
self::debug( 'Bypass sync conf to QC due to same md5', $conf_md5 );
return;
}
self::save_summary( array( 'conf_md5' => $conf_md5 ) );
self::debug('sync conf to QC', $options);
Cloud::post( Cloud::SVC_D_SYNC_CONF, $options );
}
}