fix(tunnel): bound upstream clients and heartbeat deltas

This commit is contained in:
Entropy.Xu
2026-05-28 20:34:08 +08:00
parent bb2fc2ec00
commit eaabfb83ed
12 changed files with 273 additions and 37 deletions
@@ -810,11 +810,11 @@ pub(crate) async fn maybe_build_local_internal_proxy_response_impl(
node_id: node_id.clone(),
heartbeat_interval: payload.heartbeat_interval,
active_connections: payload.active_connections,
total_requests_delta: payload.total_requests,
total_requests_delta: payload.window_total_requests.or(payload.total_requests),
avg_latency_ms: payload.avg_latency_ms,
failed_requests_delta: payload.failed_requests,
dns_failures_delta: payload.dns_failures,
stream_errors_delta: payload.stream_errors,
failed_requests_delta: payload.window_failed_requests.or(payload.failed_requests),
dns_failures_delta: payload.window_dns_failures.or(payload.dns_failures),
stream_errors_delta: payload.window_stream_errors.or(payload.stream_errors),
proxy_metadata: payload.proxy_metadata,
proxy_version: payload.proxy_version,
};
@@ -402,10 +402,16 @@ pub(crate) fn parse_internal_tunnel_heartbeat_request(
.is_some_and(|value| !(5..=600).contains(&value))
|| payload.active_connections.is_some_and(|value| value < 0)
|| payload.total_requests.is_some_and(|value| value < 0)
|| payload.window_total_requests.is_some_and(|value| value < 0)
|| payload.avg_latency_ms.is_some_and(|value| value < 0.0)
|| payload.failed_requests.is_some_and(|value| value < 0)
|| payload
.window_failed_requests
.is_some_and(|value| value < 0)
|| payload.dns_failures.is_some_and(|value| value < 0)
|| payload.window_dns_failures.is_some_and(|value| value < 0)
|| payload.stream_errors.is_some_and(|value| value < 0)
|| payload.window_stream_errors.is_some_and(|value| value < 0)
|| payload
.proxy_version
.as_deref()