X7ROOT File Manager
Current Path:
/usr/src/litespeed-wp-plugin/7.8.0.1/litespeed-cache/src
usr
/
src
/
litespeed-wp-plugin
/
7.8.0.1
/
litespeed-cache
/
src
/
📁
..
📄
activation.cls.php
(17.31 KB)
📄
admin-display.cls.php
(48.47 KB)
📄
admin-settings.cls.php
(11.12 KB)
📄
admin.cls.php
(6.13 KB)
📄
api.cls.php
(10.36 KB)
📄
avatar.cls.php
(8.65 KB)
📄
base.cls.php
(37.66 KB)
📁
cdn
📄
cdn.cls.php
(15.92 KB)
📄
cloud-auth-callback.trait.php
(10.43 KB)
📄
cloud-auth-ip.trait.php
(4.33 KB)
📄
cloud-auth.trait.php
(9.38 KB)
📄
cloud-misc.trait.php
(10.32 KB)
📄
cloud-node.trait.php
(5.95 KB)
📄
cloud-request.trait.php
(19.68 KB)
📄
cloud.cls.php
(7.32 KB)
📄
conf.cls.php
(19.53 KB)
📄
control.cls.php
(24.35 KB)
📄
core.cls.php
(20.97 KB)
📄
crawler-map.cls.php
(19.41 KB)
📄
crawler.cls.php
(44.72 KB)
📄
css.cls.php
(17.77 KB)
📄
data.cls.php
(22.21 KB)
📄
data.upgrade.func.php
(5.72 KB)
📁
data_structure
📄
db-optm.cls.php
(15.35 KB)
📄
debug2.cls.php
(18.4 KB)
📄
doc.cls.php
(5.45 KB)
📄
error.cls.php
(7.35 KB)
📄
esi.cls.php
(27.18 KB)
📄
file.cls.php
(10.57 KB)
📄
guest.cls.php
(2.75 KB)
📄
gui.cls.php
(36.57 KB)
📄
health.cls.php
(2.83 KB)
📄
htaccess.cls.php
(29.81 KB)
📄
img-optm-manage.trait.php
(30.85 KB)
📄
img-optm-pull.trait.php
(22.1 KB)
📄
img-optm-send.trait.php
(21.9 KB)
📄
img-optm.cls.php
(5.26 KB)
📄
import.cls.php
(4.29 KB)
📄
import.preset.cls.php
(5.5 KB)
📄
lang.cls.php
(17.02 KB)
📄
localization.cls.php
(4.03 KB)
📄
media.cls.php
(44.08 KB)
📄
metabox.cls.php
(5.29 KB)
📄
object-cache-wp.cls.php
(18.82 KB)
📄
object-cache.cls.php
(20.95 KB)
📄
object.lib.php
(14.16 KB)
📄
optimize.cls.php
(38.64 KB)
📄
optimizer.cls.php
(10.5 KB)
📄
placeholder.cls.php
(17.93 KB)
📄
purge.cls.php
(34.41 KB)
📄
report.cls.php
(6.12 KB)
📄
rest.cls.php
(9.08 KB)
📄
root.cls.php
(14.29 KB)
📄
router.cls.php
(20.76 KB)
📄
str.cls.php
(3.08 KB)
📄
tag.cls.php
(9.26 KB)
📄
task.cls.php
(7.05 KB)
📄
tool.cls.php
(4.17 KB)
📄
ucss.cls.php
(16.35 KB)
📄
utility.cls.php
(26.01 KB)
📄
vary.cls.php
(21.33 KB)
📄
vpi.cls.php
(9.38 KB)
Editing: cloud-node.trait.php
<?php /** * Cloud node detection trait * * @package LiteSpeed * @since 7.8 */ namespace LiteSpeed; defined( 'WPINC' ) || exit(); /** * Trait Cloud_Node * * Handles cloud node detection and management. */ trait Cloud_Node { /** * Clear all existing cloud nodes for future reconnect * * @since 3.0 * @access public */ public function clear_cloud() { foreach ( self::$services as $service ) { if ( isset( $this->_summary[ 'server.' . $service ] ) ) { unset( $this->_summary[ 'server.' . $service ] ); } if ( isset( $this->_summary[ 'server_date.' . $service ] ) ) { unset( $this->_summary[ 'server_date.' . $service ] ); } } self::save_summary(); self::debug( 'Cleared all local service node caches' ); } /** * Ping clouds to find the fastest node * * @since 3.0 * @access public * * @param string $service Service. * @param bool $force Force redetect. * @return string|false */ public function detect_cloud( $service, $force = false ) { if ( in_array( $service, self::$center_svc_set, true ) ) { return $this->_cloud_server; } if ( in_array( $service, self::$wp_svc_set, true ) ) { return $this->_cloud_server_wp; } // Check if the stored server needs to be refreshed if ( ! $force ) { if ( ! empty( $this->_summary[ 'server.' . $service ] ) && ! empty( $this->_summary[ 'server_date.' . $service ] ) && (int) $this->_summary[ 'server_date.' . $service ] > time() - 86400 * self::TTL_NODE ) { $server = $this->_summary[ 'server.' . $service ]; if ( false === strpos( $this->_cloud_server, 'preview.' ) && false === strpos( $server, 'preview.' ) ) { return $server; } if ( false !== strpos( $this->_cloud_server, 'preview.' ) && false !== strpos( $server, 'preview.' ) ) { return $server; } } } if ( ! $service || ! in_array( $service, self::$services, true ) ) { $msg = __( 'Cloud Error', 'litespeed-cache' ) . ': ' . $service; Admin_Display::error( $msg ); return false; } // Send request to Quic Online Service $json = $this->_post( self::SVC_D_NODES, [ 'svc' => $this->_maybe_queue( $service ) ] ); // Check if get list correctly if ( empty( $json['list'] ) || ! is_array( $json['list'] ) ) { self::debug( 'request cloud list failed: ', $json ); if ( $json ) { $msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . wp_json_encode( $json ); Admin_Display::error( $msg ); } return false; } // Ping closest cloud $valid_clouds = false; if ( ! empty( $json['list_preferred'] ) ) { $valid_clouds = $this->_get_closest_nodes( $json['list_preferred'], $service ); } if ( ! $valid_clouds ) { $valid_clouds = $this->_get_closest_nodes( $json['list'], $service ); } if ( ! $valid_clouds ) { return false; } // Check server load if ( in_array( $service, self::$services_load_check, true ) ) { // TODO $valid_cloud_loads = []; foreach ( $valid_clouds as $v ) { $response = wp_safe_remote_get( $v, [ 'timeout' => 5 ] ); if ( is_wp_error( $response ) ) { $error_message = $response->get_error_message(); self::debug( 'failed to do load checker: ' . $error_message ); continue; } $curr_load = \json_decode( $response['body'], true ); if ( ! empty( $curr_load['_res'] ) && 'ok' === $curr_load['_res'] && isset( $curr_load['load'] ) ) { $valid_cloud_loads[ $v ] = $curr_load['load']; } } if ( ! $valid_cloud_loads ) { $msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . __( 'No available Cloud Node after checked server load.', 'litespeed-cache' ); Admin_Display::error( $msg ); return false; } self::debug( 'Closest nodes list after load check', $valid_cloud_loads ); $qualified_list = array_keys( $valid_cloud_loads, min( $valid_cloud_loads ), true ); } else { $qualified_list = $valid_clouds; } $closest = $qualified_list[ array_rand( $qualified_list ) ]; self::debug( 'Chose node: ' . $closest ); // store data into option locally $this->_summary[ 'server.' . $service ] = $closest; $this->_summary[ 'server_date.' . $service ] = time(); self::save_summary(); return $this->_summary[ 'server.' . $service ]; } /** * Ping to choose the closest nodes * * @since 7.0 * * @param array $nodes_list Node list. * @param string $service Service. * @return array|false */ private function _get_closest_nodes( $nodes_list, $service ) { $speed_list = []; foreach ( $nodes_list as $v ) { // Exclude possible failed 503 nodes if ( ! empty( $this->_summary['disabled_node'] ) && ! empty( $this->_summary['disabled_node'][ $v ] ) && time() - (int) $this->_summary['disabled_node'][ $v ] < 86400 ) { continue; } $speed_list[ $v ] = Utility::ping( $v ); } if ( ! $speed_list ) { self::debug( 'nodes are in 503 failed nodes' ); return false; } $min = min( $speed_list ); if ( 99999 === (int) $min ) { self::debug( 'failed to ping all clouds' ); return false; } // Random pick same time range ip (230ms 250ms) $range_len = strlen( $min ); $range_num = substr( $min, 0, 1 ); $valid_clouds = []; foreach ( $speed_list as $node => $speed ) { if ( strlen( $speed ) === $range_len && substr( $speed, 0, 1 ) === $range_num ) { $valid_clouds[] = $node; } elseif ( $speed < $min * 4 ) { // Append the lower speed ones $valid_clouds[] = $node; } } if ( ! $valid_clouds ) { $msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . __( 'No available Cloud Node.', 'litespeed-cache' ); Admin_Display::error( $msg ); return false; } self::debug( 'Closest nodes list', $valid_clouds ); return $valid_clouds; } /** * May need to convert to queue service * * @param string $service Service. * @return string */ private function _maybe_queue( $service ) { if ( in_array( $service, self::$_queue_svc_set, true ) ) { return self::SVC_QUEUE; } return $service; } }
Upload File
Create Folder