diff --git a/changelog.md b/changelog.md index 7cbd4d9..9bc711d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +## 2026-03-20 - 25.17.6 - fix(rustproxy-http) +disable HTTP/3 GREASE for client and server connections + +- Switch the HTTP/3 server connection setup to use the builder API with send_grease(false) +- Switch the HTTP/3 client handshake to use the builder API with send_grease(false) to improve compatibility + ## 2026-03-20 - 25.17.5 - fix(rustproxy) add HTTP/3 integration test for QUIC response stream FIN handling diff --git a/rust/crates/rustproxy-http/src/h3_service.rs b/rust/crates/rustproxy-http/src/h3_service.rs index 932434c..a73fb79 100644 --- a/rust/crates/rustproxy-http/src/h3_service.rs +++ b/rust/crates/rustproxy-http/src/h3_service.rs @@ -75,7 +75,9 @@ impl H3ProxyService { debug!("HTTP/3 connection from {} on port {}", remote_addr, port); let mut h3_conn: h3::server::Connection = - h3::server::Connection::new(h3_quinn::Connection::new(connection)) + h3::server::builder() + .send_grease(false) + .build(h3_quinn::Connection::new(connection)) .await .map_err(|e| anyhow::anyhow!("H3 connection setup failed: {}", e))?; diff --git a/rust/crates/rustproxy-http/src/proxy_service.rs b/rust/crates/rustproxy-http/src/proxy_service.rs index c3e5135..3ceb18e 100644 --- a/rust/crates/rustproxy-http/src/proxy_service.rs +++ b/rust/crates/rustproxy-http/src/proxy_service.rs @@ -2550,7 +2550,11 @@ impl HttpProxyService { backend_key: &str, ) -> Result>, hyper::Error> { let h3_quinn_conn = h3_quinn::Connection::new(quic_conn.clone()); - let (mut driver, mut send_request) = match h3::client::new(h3_quinn_conn).await { + let (mut driver, mut send_request) = match h3::client::builder() + .send_grease(false) + .build(h3_quinn_conn) + .await + { Ok(pair) => pair, Err(e) => { error!(backend = %backend_key, domain = %domain, error = %e, "H3 client handshake failed"); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index ab4fb51..fce79e6 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartproxy', - version: '25.17.5', + version: '25.17.6', 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.' }