Changeset 3412936
- Timestamp:
- 12/06/2025 11:54:41 AM (4 months ago)
- Location:
- dynamic-front-end-heartbeat-control
- Files:
-
- 2 edited
-
tags/1.2.996.2/heartbeat-async.php (modified) (1 diff)
-
trunk/heartbeat-async.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
dynamic-front-end-heartbeat-control/tags/1.2.996.2/heartbeat-async.php
r3412927 r3412936 144 144 return $load_pct; 145 145 } 146 147 function dfehc_get_server_load_ajax_handler(): void148 {149 $cap = apply_filters('dfehc_required_capability', DFEHC_CAPABILITY);150 $allow_public = (bool) apply_filters('dfehc_allow_public_server_load', false);151 if (!$allow_public) {152 $nonce_action = 'dfehc-get_server_load';153 $valid = function_exists('check_ajax_referer')154 ? check_ajax_referer($nonce_action, 'nonce', false)155 : wp_verify_nonce(isset($_REQUEST['nonce']) ? (string) $_REQUEST['nonce'] : '', $nonce_action);156 if (!$valid) {157 wp_send_json_error(['message' => 'dfehc/get_server_load: invalid nonce'], 403);158 }159 if (!current_user_can($cap)) {160 wp_send_json_error(['message' => 'dfehc/get_server_load: not authorized'], 403);161 }162 } else {163 $limit = absint(apply_filters('dfehc_public_rate_limit', 30));164 $window = absint(apply_filters('dfehc_public_rate_window', 60));165 $ip = dfehc_client_ip();166 $rl_key = dfehc_scoped_key('dfehc_rl_' . md5($ip));167 $cnt = (int) get_transient($rl_key);168 if ($cnt >= $limit) {169 wp_send_json_error(['message' => 'dfehc/get_server_load: rate limited'], 429);170 }171 dfehc_set_transient_noautoload($rl_key, $cnt + 1, $window);172 }173 $load = dfehc_get_or_calculate_server_load();174 if ($load === false) {175 wp_send_json_success(dfehc_fallback_interval());176 }177 $interval = dfehc_calculate_recommended_interval_user_activity((float) $load);178 if ($interval <= 0) {179 $interval = dfehc_fallback_interval();180 }181 wp_send_json_success($interval);182 }183 dfehc_register_ajax('get_server_load', 'dfehc_get_server_load_ajax_handler');184 146 185 147 function dfehc_calculate_server_load() -
dynamic-front-end-heartbeat-control/trunk/heartbeat-async.php
r3412927 r3412936 144 144 return $load_pct; 145 145 } 146 147 function dfehc_get_server_load_ajax_handler(): void148 {149 $cap = apply_filters('dfehc_required_capability', DFEHC_CAPABILITY);150 $allow_public = (bool) apply_filters('dfehc_allow_public_server_load', false);151 if (!$allow_public) {152 $nonce_action = 'dfehc-get_server_load';153 $valid = function_exists('check_ajax_referer')154 ? check_ajax_referer($nonce_action, 'nonce', false)155 : wp_verify_nonce(isset($_REQUEST['nonce']) ? (string) $_REQUEST['nonce'] : '', $nonce_action);156 if (!$valid) {157 wp_send_json_error(['message' => 'dfehc/get_server_load: invalid nonce'], 403);158 }159 if (!current_user_can($cap)) {160 wp_send_json_error(['message' => 'dfehc/get_server_load: not authorized'], 403);161 }162 } else {163 $limit = absint(apply_filters('dfehc_public_rate_limit', 30));164 $window = absint(apply_filters('dfehc_public_rate_window', 60));165 $ip = dfehc_client_ip();166 $rl_key = dfehc_scoped_key('dfehc_rl_' . md5($ip));167 $cnt = (int) get_transient($rl_key);168 if ($cnt >= $limit) {169 wp_send_json_error(['message' => 'dfehc/get_server_load: rate limited'], 429);170 }171 dfehc_set_transient_noautoload($rl_key, $cnt + 1, $window);172 }173 $load = dfehc_get_or_calculate_server_load();174 if ($load === false) {175 wp_send_json_success(dfehc_fallback_interval());176 }177 $interval = dfehc_calculate_recommended_interval_user_activity((float) $load);178 if ($interval <= 0) {179 $interval = dfehc_fallback_interval();180 }181 wp_send_json_success($interval);182 }183 dfehc_register_ajax('get_server_load', 'dfehc_get_server_load_ajax_handler');184 146 185 147 function dfehc_calculate_server_load()
Note: See TracChangeset
for help on using the changeset viewer.