GRAYBYTE WORDPRESS FILE MANAGER2647

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/src/litespeed-wp-plugin/6.5.1/litespeed-cache/src/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/src/litespeed-wp-plugin/6.5.1/litespeed-cache/src//cdn-setup.cls.php
<?php

/**
 * CDN Setup service cls
 *
 * @since      3.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Cdn_Setup extends Base
{
	const LOG_TAG = '👷';

	const TYPE_LINK = 'link';
	const TYPE_NOLINK = 'nolink';
	const TYPE_RUN = 'setup';
	const TYPE_STATUS = 'status';
	const TYPE_RESET = 'reset';
	const TYPE_DELETE = 'delete';

	private $_setup_token;
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct()
	{
		$this->_setup_token = $this->conf(self::O_QC_TOKEN);
		$this->_summary = self::get_summary();
	}

	/**
	 * Update is_linked status if is a redirected back from QC
	 *
	 * @since  3.0
	 */
	public function maybe_extract_token()
	{
		$token = $this->cls('Cloud')->parse_qc_redir(true);

		if ($token) {
			$this->_setup_token = esc_html($token);
			$this->cls('Conf')->update_confs(array(self::O_QC_TOKEN => $this->_setup_token));
			unset($_GET['token']);
		}
	}

	/**
	 * Callback for updating Auto CDN Setup status after run
	 *
	 * @since  4.7
	 * @access public
	 */
	public function update_cdn_status()
	{
		if (empty($_POST['hash'])) {
			self::debug('Lack of hash param');
			return self::err('lack_of_param');
		}

		if ($_POST['hash'] !== md5(substr($this->conf(self::O_API_KEY), 3, 8))) {
			self::debug('token validate failed: token mismatch hash !== ' . $_POST['hash']);
			return self::err('callback_fail_hash');
		}

		if (!isset($_POST['success']) || !isset($_POST['result'])) {
			self::save_summary(array('cdn_setup_err' => __('Received invalid message from the cloud server. Please submit a ticket.', 'litespeed-cache')));
			return self::err('lack_of_param');
		}
		if (!$_POST['success'] && !empty($_POST['result']['_msg'])) {
			$msg = wp_kses_post($_POST['result']['_msg']);
			self::save_summary(array('cdn_setup_err' => $msg));
			Admin_Display::error(__('There was an error during QUIC.cloud CDN auto setup: ', 'litespeed-cache') . $msg);
		} else {
			$this->_process_cdn_status($_POST['result']);
		}

		return self::ok();
	}

	/**
	 * Request an update on Auto CDN Setup status
	 *
	 * @since  4.7
	 * @access private
	 */
	private function _qc_refresh()
	{
		$json = $this->cls('Cloud')->req_rest_api('/user/cdn/status');

		if (!$json) {
			return;
		} elseif (is_string($json)) {
			self::save_summary(array('cdn_setup_err' => $json));
			return;
		}

		$result = array();
		if (isset($json['info']['messages'])) {
			$result['_msg'] = implode('<br>', $json['info']['messages']);
		}
		$this->_process_cdn_status($result);
	}

	/**
	 * Process the returned Auto CDN Setup status
	 *
	 * @since  4.7
	 * @access private
	 */
	private function _process_cdn_status($result)
	{
		if (isset($result['nameservers'])) {
			if (isset($this->_summary['cdn_setup_err'])) {
				unset($this->_summary['cdn_setup_err']);
			}
			if (isset($result['summary'])) {
				$this->_summary['cdn_dns_summary'] = $result['summary'];
			}
			$this->cls('Cloud')->set_linked();
			$nameservers = esc_html($result['nameservers']);
			$this->cls('Conf')->update_confs(array(self::O_QC_NAMESERVERS => $nameservers, self::O_CDN_QUIC => true));
			Admin_Display::succeed(
				'🎊 ' . __('Congratulations, QUIC.cloud successfully set this domain up for the CDN. Please update your nameservers to:', 'litespeed-cache') . $nameservers
			);
		} elseif (isset($result['cname'])) {
			if (isset($this->_summary['cdn_setup_err'])) {
				unset($this->_summary['cdn_setup_err']);
			}
			if (isset($result['summary'])) {
				$this->_summary['cdn_dns_summary'] = $result['summary'];
			}
			$this->cls('Cloud')->set_linked();
			$cname = esc_html($result['cname']);
			$this->cls('Conf')->update_confs(array(self::O_QC_CNAME => $cname, self::O_CDN_QUIC => true));
			Admin_Display::succeed('🎊 ' . __('Congratulations, QUIC.cloud successfully set this domain up for the CDN. Please update your cname to:', 'litespeed-cache') . $cname);
		} elseif (isset($result['done'])) {
			if (isset($this->_summary['cdn_setup_err'])) {
				unset($this->_summary['cdn_setup_err']);
			}
			if (isset($this->_summary['cdn_verify_msg'])) {
				unset($this->_summary['cdn_verify_msg']);
			}
			$this->_summary['cdn_setup_done_ts'] = time();

			$this->_setup_token = '';
			$this->cls('Conf')->update_confs(array(self::O_QC_TOKEN => '', self::O_QC_NAMESERVERS => ''));
		} elseif (isset($result['_msg'])) {
			$notice = esc_html($result['_msg']);
			if ($this->conf(Base::O_QC_NAMESERVERS)) {
				$this->_summary['cdn_verify_msg'] = $notice;
				$notice = array('cdn_verify_msg' => $notice);
			}
			Admin_Display::succeed($notice);
		} else {
			Admin_Display::succeed(__('CDN Setup is running.', 'litespeed-cache'));
		}
		self::save_summary();
	}

	/**
	 * Process the returned Auto CDN Setup status
	 *
	 * @since  4.7
	 * @access private
	 */
	private function _qc_reset($delete)
	{
		$data = array(
			'site_url' => home_url(),
		);

		if ($delete) {
			$data['delete'] = 1;
		}

		if (!empty($this->_setup_token)) {
			$data['rest'] = function_exists('rest_get_url_prefix') ? rest_get_url_prefix() : apply_filters('rest_url_prefix', 'wp-json');

			$json = $this->cls('Cloud')->req_rest_api('/user/cdn/reset', $data);

			if (!$json) {
				return;
			} elseif (is_string($json) && $json != 'unauthorized access to REST API.') {
				self::save_summary(array('cdn_setup_err' => $json));
				return;
			}
		} elseif (!isset($this->_summary['cdn_setup_done_ts']) || !$this->_summary['cdn_setup_done_ts']) {
			Admin_Display::info(__('Notice: CDN Setup only reset locally.', 'litespeed-cache'));
		} elseif (!Cloud::get_summary('is_linked')) {
			Admin_Display::error(__('Cannot delete, site is not linked.', 'litespeed-cache'));
			return;
		} else {
			$json = Cloud::post(Cloud::SVC_D_DEL_CDN_DNS, $data);

			if (!is_array($json)) {
				return;
			}
		}

		if (isset($this->_summary['cdn_setup_ts'])) {
			unset($this->_summary['cdn_setup_ts']);
		}
		if (isset($this->_summary['cdn_setup_done_ts'])) {
			unset($this->_summary['cdn_setup_done_ts']);
		}
		if (isset($this->_summary['cdn_setup_err'])) {
			unset($this->_summary['cdn_setup_err']);
		}
		if (isset($this->_summary['cdn_verify_msg'])) {
			unset($this->_summary['cdn_verify_msg']);
		}
		if (isset($this->_summary['cdn_dns_summary'])) {
			unset($this->_summary['cdn_dns_summary']);
		}
		self::save_summary($this->_summary, false, true);

		$this->_setup_token = '';
		$this->cls('Conf')->update_confs(array(self::O_QC_TOKEN => '', self::O_QC_NAMESERVERS => '', self::O_CDN_QUIC => false));
		$msg = '';
		if ($delete) {
			$msg = __(
				'CDN Setup Token and DNS zone deleted. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately.',
				'litespeed-cache'
			);
		} else {
			$msg = __(
				'CDN Setup Token reset. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately.',
				'litespeed-cache'
			);
		}
		Admin_Display::succeed($msg);
		return self::ok();
	}

	/**
	 * If setup token already exists or not
	 *
	 * @since  4.7
	 */
	public function has_cdn_setup_token()
	{
		return !empty($this->_setup_token);
	}

	/**
	 * Get QC user setup token
	 *
	 * This method initiates a link to a QUIC.cloud account.
	 *
	 * @since  4.7
	 */
	private function _qc_link()
	{
		if ($this->has_cdn_setup_token()) {
			return;
		}

		$data = array(
			'site_url' => home_url(),
			'ref' => get_admin_url(null, 'admin.php?page=litespeed-cdn'),
			'nonce' => wp_create_nonce('litespeed_qc_link'),
		);
		$api_key = $this->conf(self::O_API_KEY);
		if ($api_key) {
			$data['domain_hash'] = md5(substr($api_key, 0, 8));
		}
		self::debug2('qc link created', $data);
		wp_redirect(Cloud::CLOUD_SERVER_DASH . '/u/wptoken?data=' . Utility::arr2str($data));
		exit();
	}

	/**
	 * Get QC user setup token
	 *
	 * This method is used when the installation is already linked to an account.
	 *
	 * @since  4.7
	 */
	private function _qc_nolink()
	{
		if ($this->has_cdn_setup_token()) {
			return;
		}

		$data = array(
			'site_url' => home_url(),
		);

		$json = Cloud::post(Cloud::SVC_D_SETUP_TOKEN, $data);

		if (isset($json['token'])) {
			self::save_summary(array('cdn_setup_ts' => time()));
			$this->_setup_token = $json['token'];
			$this->cls('Conf')->update_confs(array(self::O_QC_TOKEN => $this->_setup_token));
		}
	}

	/**
	 * Initiate or continue a QC CDN Setup.
	 *
	 * @since  4.7
	 */
	private function _qc_run()
	{
		$data = array(
			'site_url' => home_url(),
			'rest' => function_exists('rest_get_url_prefix') ? rest_get_url_prefix() : apply_filters('rest_url_prefix', 'wp-json'),
			'server_ip' => $this->conf(self::O_SERVER_IP),
		);

		$api_key = $this->conf(self::O_API_KEY);
		if ($api_key) {
			$data['domain_hash'] = md5(substr($api_key, 0, 8));
		}

		$__cloud = $this->cls('Cloud');
		$json = $__cloud->req_rest_api('/user/cdn/', $data);

		if (!$json) {
			return;
		} elseif (is_string($json)) {
			self::save_summary(array('cdn_setup_err' => $json));
			return;
		}

		$this->_summary['cdn_setup_ts'] = time();

		$msg = '';
		if (isset($json['info']['messages'])) {
			$msg = implode('<br>', $json['info']['messages']);
		}

		$json = $json['result'];

		if (isset($this->_summary['cdn_setup_err'])) {
			unset($this->_summary['cdn_setup_err']);
		}

		if (isset($this->_summary['cdn_verify_msg'])) {
			unset($this->_summary['cdn_verify_msg']);
		}
		self::save_summary();

		// Save token option
		if (!empty($json['token'])) {
			$__cloud->set_keygen_token($json['token']);
		}

		// This is a ok msg
		if (!empty($msg)) {
			self::debug('_msg: ' . $msg);

			$msg = __('Message from QUIC.cloud server', 'litespeed-cache') . ': ' . $msg;
			Admin_Display::info($msg);
			return;
		}

		self::debug('✅ Successfully start CDN setup.');
	}

	/**
	 * Return succeeded response
	 *
	 * @since  3.0
	 */
	public static function ok($data = array())
	{
		$data['_res'] = 'ok';
		return $data;
	}

	/**
	 * Return error
	 *
	 * @since  3.0
	 */
	public static function err($code)
	{
		return array('_res' => 'err', '_msg' => $code);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler()
	{
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_LINK:
				$this->_qc_link();
				break;

			case self::TYPE_NOLINK:
				$this->_qc_nolink();
				break;

			case self::TYPE_RUN:
				$this->_qc_run();
				break;

			case self::TYPE_STATUS:
				$this->_qc_refresh();
				break;

			case self::TYPE_RESET:
				$this->_qc_reset(false);
				break;

			case self::TYPE_DELETE:
				$this->_qc_reset(true);
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
January 01 1970 00:00:00
root / root
0
cdn
--
October 09 2024 22:02:44
root / root
0755
data_structure
--
October 09 2024 22:02:44
root / root
0755
activation.cls.php
14.991 KB
September 25 2024 22:06:38
root / root
0644
admin-display.cls.php
33.202 KB
September 25 2024 22:06:38
root / root
0644
admin-settings.cls.php
9.521 KB
September 25 2024 22:06:38
root / root
0644
admin.cls.php
4.441 KB
September 25 2024 22:06:38
root / root
0644
api.cls.php
11.076 KB
September 25 2024 22:06:38
root / root
0644
avatar.cls.php
6.063 KB
September 25 2024 22:06:38
root / root
0644
base.cls.php
30.233 KB
September 25 2024 22:06:38
root / root
0644
cdn-setup.cls.php
10.451 KB
September 25 2024 22:06:38
root / root
0644
cdn.cls.php
13.132 KB
September 25 2024 22:06:38
root / root
0644
cloud.cls.php
42.476 KB
September 25 2024 22:06:38
root / root
0644
conf.cls.php
18.579 KB
September 25 2024 22:06:38
root / root
0644
control.cls.php
21.746 KB
September 25 2024 22:06:38
root / root
0644
core.cls.php
20.05 KB
September 25 2024 22:06:38
root / root
0644
crawler-map.cls.php
13.999 KB
September 25 2024 22:06:38
root / root
0644
crawler.cls.php
34.634 KB
September 25 2024 22:06:38
root / root
0644
css.cls.php
13.104 KB
September 25 2024 22:06:38
root / root
0644
data.cls.php
17.406 KB
September 25 2024 22:06:38
root / root
0644
data.upgrade.func.php
21.372 KB
September 25 2024 22:06:38
root / root
0644
db-optm.cls.php
9.585 KB
September 25 2024 22:06:38
root / root
0644
debug2.cls.php
13.098 KB
September 25 2024 22:06:38
root / root
0644
doc.cls.php
4.737 KB
September 25 2024 22:06:38
root / root
0644
error.cls.php
6.905 KB
September 25 2024 22:06:38
root / root
0644
esi.cls.php
26.907 KB
September 25 2024 22:06:38
root / root
0644
file.cls.php
10.135 KB
September 25 2024 22:06:38
root / root
0644
gui.cls.php
27.449 KB
September 25 2024 22:06:38
root / root
0644
health.cls.php
2.893 KB
September 25 2024 22:06:38
root / root
0644
htaccess.cls.php
23.952 KB
September 25 2024 22:06:38
root / root
0644
img-optm.cls.php
60.243 KB
September 25 2024 22:06:38
root / root
0644
import.cls.php
4.15 KB
September 25 2024 22:06:38
root / root
0644
instance.cls.php
0.15 KB
September 25 2024 22:06:38
root / root
0644
lang.cls.php
15.473 KB
September 25 2024 22:06:38
root / root
0644
localization.cls.php
3.383 KB
September 25 2024 22:06:38
root / root
0644
media.cls.php
31.025 KB
September 25 2024 22:06:38
root / root
0644
metabox.cls.php
4.205 KB
September 25 2024 22:06:38
root / root
0644
object-cache.cls.php
15.917 KB
September 25 2024 22:06:38
root / root
0644
object.lib.php
33.969 KB
September 25 2024 22:06:38
root / root
0644
optimize.cls.php
36.525 KB
September 25 2024 22:06:38
root / root
0644
optimizer.cls.php
9.016 KB
September 25 2024 22:06:38
root / root
0644
placeholder.cls.php
14.115 KB
September 25 2024 22:06:38
root / root
0644
preset.cls.php
5.43 KB
September 25 2024 22:06:38
root / root
0644
purge.cls.php
29.785 KB
September 25 2024 22:06:38
root / root
0644
report.cls.php
5.328 KB
September 25 2024 22:06:38
root / root
0644
rest.cls.php
7.871 KB
September 25 2024 22:06:38
root / root
0644
root.cls.php
12.596 KB
September 25 2024 22:06:38
root / root
0644
router.cls.php
19.022 KB
September 25 2024 22:06:38
root / root
0644
str.cls.php
1.17 KB
September 25 2024 22:06:38
root / root
0644
tag.cls.php
8.619 KB
September 25 2024 22:06:38
root / root
0644
task.cls.php
5.825 KB
September 25 2024 22:06:38
root / root
0644
tool.cls.php
3.291 KB
September 25 2024 22:06:38
root / root
0644
ucss.cls.php
14.39 KB
September 25 2024 22:06:38
root / root
0644
utility.cls.php
20.634 KB
September 25 2024 22:06:38
root / root
0644
vary.cls.php
19.171 KB
September 25 2024 22:06:38
root / root
0644
vpi.cls.php
7.408 KB
September 25 2024 22:06:38
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF