Compare commits

...

2 Commits

Author SHA1 Message Date
de3b8d3f58 v25.10.5
Some checks failed
Default (tags) / security (push) Successful in 1m12s
Default (tags) / test (push) Failing after 4m5s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-03-12 21:53:04 +00:00
75089ec975 fix(rustproxy-http): configure HTTP/2 client builders with a Tokio timer for keep-alive handling 2026-03-12 21:53:04 +00:00
4 changed files with 11 additions and 2 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

@@ -1,6 +1,6 @@
{ {
"name": "@push.rocks/smartproxy", "name": "@push.rocks/smartproxy",
"version": "25.10.4", "version": "25.10.5",
"private": false, "private": false,
"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.",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",

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.'
} }