fix(rustproxy-http): configure HTTP/2 client builders with a Tokio timer for keep-alive handling

This commit is contained in:
2026-03-12 21:53:04 +00:00
parent b106db932b
commit 75089ec975
3 changed files with 10 additions and 1 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # Changelog
## 2026-03-12 - 25.10.5 - fix(rustproxy-http)
configure HTTP/2 client builders with a Tokio timer for keep-alive handling
- Adds TokioTimer to all HTTP/2 client builder instances in proxy_service.
- Ensures configured HTTP/2 keep-alive interval and timeout settings have the required timer runtime support.
## 2026-03-12 - 25.10.4 - fix(rustproxy-http) ## 2026-03-12 - 25.10.4 - fix(rustproxy-http)
stabilize upstream HTTP/2 forwarding and fallback behavior stabilize upstream HTTP/2 forwarding and fallback behavior

View File

@@ -912,6 +912,7 @@ impl HttpProxyService {
let exec = hyper_util::rt::TokioExecutor::new(); let exec = hyper_util::rt::TokioExecutor::new();
let mut h2_builder = hyper::client::conn::http2::Builder::new(exec); let mut h2_builder = hyper::client::conn::http2::Builder::new(exec);
h2_builder h2_builder
.timer(hyper_util::rt::TokioTimer::new())
.keep_alive_interval(std::time::Duration::from_secs(10)) .keep_alive_interval(std::time::Duration::from_secs(10))
.keep_alive_timeout(std::time::Duration::from_secs(5)) .keep_alive_timeout(std::time::Duration::from_secs(5))
.adaptive_window(true) .adaptive_window(true)
@@ -1052,6 +1053,7 @@ impl HttpProxyService {
let exec = hyper_util::rt::TokioExecutor::new(); let exec = hyper_util::rt::TokioExecutor::new();
let mut h2_builder = hyper::client::conn::http2::Builder::new(exec); let mut h2_builder = hyper::client::conn::http2::Builder::new(exec);
h2_builder h2_builder
.timer(hyper_util::rt::TokioTimer::new())
.keep_alive_interval(std::time::Duration::from_secs(10)) .keep_alive_interval(std::time::Duration::from_secs(10))
.keep_alive_timeout(std::time::Duration::from_secs(5)) .keep_alive_timeout(std::time::Duration::from_secs(5))
.adaptive_window(true) .adaptive_window(true)
@@ -1142,6 +1144,7 @@ impl HttpProxyService {
let exec = hyper_util::rt::TokioExecutor::new(); let exec = hyper_util::rt::TokioExecutor::new();
let mut h2_builder = hyper::client::conn::http2::Builder::new(exec); let mut h2_builder = hyper::client::conn::http2::Builder::new(exec);
h2_builder h2_builder
.timer(hyper_util::rt::TokioTimer::new())
.keep_alive_interval(std::time::Duration::from_secs(10)) .keep_alive_interval(std::time::Duration::from_secs(10))
.keep_alive_timeout(std::time::Duration::from_secs(5)) .keep_alive_timeout(std::time::Duration::from_secs(5))
.adaptive_window(true) .adaptive_window(true)

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/smartproxy', name: '@push.rocks/smartproxy',
version: '25.10.4', version: '25.10.5',
description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.' description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.'
} }