72935e7ee0
fix(rustproxy-http): implement vectored write support for backend streams
2026-03-16 13:54:56 +00:00
d165829022
fix(rustproxy-http): forward vectored write support in ShutdownOnDrop AsyncWrite wrapper
2026-03-16 13:44:56 +00:00
2b1a21c599
fix(rustproxy-http): remove hot-path debug logging from HTTP/1 connection pool hits
2026-03-16 13:17:02 +00:00
c65369540c
fix(rustproxy-http): remove connection pool hit logging and keep logging limited to actual failures
2026-03-16 13:12:24 +00:00
1e2ca68fc7
fix(rustproxy-http): improve HTTP/2 proxy error logging with warning-level connection failures and debug error details
2026-03-16 13:01:32 +00:00
8e76c42cea
fix(rustproxy-http): validate pooled HTTP/2 connections asynchronously before reuse and evict stale senders
2026-03-16 12:29:15 +00:00
a1b8d40011
fix(rustproxy-routing): reduce hot-path allocations in routing, metrics, and proxy protocol handling
2026-03-16 09:38:55 +00:00
b3d4949225
fix(rustproxy-http): prevent premature idle timeouts during streamed HTTP responses and ensure TLS close_notify is sent on dropped connections
2026-03-16 08:58:11 +00:00
8cdb95a853
fix(rustproxy): prevent TLS route reload certificate mismatches and tighten passthrough connection handling
2026-03-16 03:01:16 +00:00
d5e08c83fc
fix(rustproxy-http,rustproxy-passthrough): improve upstream connection cleanup and graceful tunnel shutdown
2026-03-16 02:05:47 +00:00
e3bae4c399
fix(repo): no changes to commit
2026-03-16 00:03:10 +00:00
aa9e6dfd94
fix(rustproxy-http): report streamed HTTP and WebSocket bytes per chunk for real-time throughput metrics
2026-03-15 21:44:32 +00:00
2ce1899337
fix(repo): no changes to commit
2026-03-15 17:00:33 +00:00
da26816af5
fix(rustproxy-http): avoid reusing HTTP/1 senders during streaming responses and relax HTTP/2 keep-alive timeouts
2026-03-15 16:58:41 +00:00
a9dbccfaff
fix(rustproxy-http): keep connection idle tracking alive during streaming and tune HTTP/2 connection lifetimes
2026-03-15 16:24:41 +00:00
2b58615d24
feat(rustproxy-http): add HTTP/2 Extended CONNECT WebSocket proxy support
2026-03-15 16:00:26 +00:00
c96a493fb6
fix(rustproxy-http): remove Host header from HTTP/2 upstream requests while preserving it for HTTP/1 retries
2026-03-12 22:41:20 +00:00
b3dc0a6db2
fix(rustproxy-http): use the requested domain as HTTP/2 authority instead of the backend host and port
2026-03-12 22:06:11 +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
fb0c0dcc31
fix(rustproxy-http): stabilize upstream HTTP/2 forwarding and fallback behavior
2026-03-12 21:41:54 +00:00
fc64f5a95e
fix(rustproxy-http): include request domain in backend proxy error and protocol detection logs
2026-03-12 21:04:58 +00:00
508621e231
fix(repo): no code changes to release
2026-03-12 20:11:55 +00:00
0acd907431
fix(repo): no changes to commit
2026-03-12 20:00:56 +00:00
0d4399d7f1
feat(metrics): add per-backend connection, error, protocol, and pool metrics with stale backend pruning
2026-03-12 15:16:11 +00:00
5271447264
fix(rustproxy-http): Evict stale HTTP/2 pooled senders and retry bodyless requests with fresh backend connections to avoid 502s
2026-03-11 11:28:57 +00:00
d4aa46aed7
fix(protocol-cache): Include requested_host in protocol detection cache key to avoid cache oscillation when multiple frontend domains share the same backend
2026-03-08 15:24:18 +00:00
d51b2c5890
fix(rustproxy): Cancel connections for routes removed/disabled by adding per-route cancellation tokens and make RouteManager swappable (ArcSwap) for runtime updates
2026-03-03 16:14:16 +00:00
c52128f12d
feat(rustproxy-http): add HTTP/2 auto-detection via ALPN with TTL-backed protocol cache and h1-only/h2 ALPN client configs
2026-03-03 11:04:01 +00:00
5126049ae6
fix(release): bump patch version (no source changes)
2026-02-26 21:31:38 +00:00
8db621657f
fix(proxy): close connection buildup vectors in HTTP idle, WebSocket, socket relay, and TLS forwarding paths
...
- Add HTTP keep-alive idle timeout (60s default) with periodic watchdog that
skips active requests (panic-safe via RAII ActiveRequestGuard)
- Make WebSocket inactivity/max-lifetime timeouts configurable from ConnectionConfig
instead of hardcoded 1h/24h
- Replace bare copy_bidirectional in socket handler relay with timeout+cancel-aware
split forwarding (inactivity, max lifetime, graceful shutdown)
- Add CancellationToken to forward_bidirectional_split_with_timeouts so TLS-terminated
TCP connections respond to graceful shutdown
- Fix graceful_stop to actually abort listener tasks that exceed the shutdown deadline
(previously they detached and ran forever)
- Add 10s metadata parsing timeout on TS socket-handler-server to prevent stuck sockets
2026-02-26 21:29:19 +00:00
cd7f3f7f75
fix(proxy): adjust default proxy timeouts and keep-alive behavior to shorter, more consistent values
2026-02-26 17:32:35 +00:00
bedecc6b6b
fix(smartproxy): no code or dependency changes detected; no version bump required
2026-02-26 17:01:57 +00:00
94266222fe
fix(connection): improve connection handling and timeouts
2026-02-26 16:58:30 +00:00
7e5fe2bec3
fix(allocator): switch global allocator from tikv-jemallocator to mimalloc
2026-02-25 00:12:41 +00:00
6114a00fb8
feat(rustproxy): use tikv-jemallocator as the global allocator to reduce glibc fragmentation and slow RSS growth; add allocator dependency and enable it in rustproxy, update lockfile, and run tsrust before tests
2026-02-24 23:22:49 +00:00
33cd5330c4
fix(rustproxy): Use cooperative cancellation for background tasks, prune stale caches and metric entries, and switch tests to dynamic port allocation to avoid port conflicts
2026-02-24 20:56:37 +00:00
9368226ce0
fix(tests): use high non-privileged ports in tests to avoid conflicts and CI failures
2026-02-21 13:27:55 +00:00
b8b7490d44
fix(no-changes): no changes detected; nothing to release
2026-02-19 14:21:05 +00:00
3514260316
fix(proxy): restrict PROXY protocol parsing to configured trusted proxy IPs and parse PROXY headers before metrics/fast-path so client IPs reflect the real source
2026-02-19 14:03:31 +00:00
c7722c30f3
fix(throughput): add tests for per-IP connection tracking and throughput history; assert per-IP eviction after connection close to prevent memory leak
2026-02-19 09:12:50 +00:00
53d73c7dc6
fix(rustproxy): prune stale per-route metrics, add per-route rate limiter caching and regex cache, and improve connection tracking cleanup to prevent memory growth
2026-02-19 08:48:46 +00:00
5ac44b898b
fix(smart-proxy): include proxy IPs in smart proxy configuration
2026-02-19 08:07:34 +00:00
02b4ed8018
fix(metrics): centralize connection-closed reporting via ConnectionGuard and remove duplicate explicit metrics.connection_closed calls
2026-02-16 14:35:26 +00:00
d361a21543
fix(rustproxy-http): preserve original Host header when proxying and add X-Forwarded-* headers; add TLS WebSocket echo backend helper and integration test for terminate-and-reencrypt websocket
2026-02-16 13:43:22 +00:00
101675b5f8
fix(proxy): use TLS to backends for terminate-and-reencrypt routes
2026-02-16 13:29:45 +00:00
2e3cf515a4
feat(routes): add protocol-based route matching and ensure terminate-and-reencrypt routes HTTP through the full HTTP proxy; update docs and tests
2026-02-16 12:11:49 +00:00
f0b7c27996
feat(rustproxy): add protocol-based routing and backend TLS re-encryption support
2026-02-16 12:02:36 +00:00
455d5bb757
feat(tls): add shared TLS acceptor with SNI resolver and session resumption; prefer shared acceptor and fall back to per-connection when routes specify custom TLS versions
2026-02-16 03:00:39 +00:00
7b2ccbdd11
feat(rustproxy): support dynamically loaded TLS certificates via loadCertificate IPC and include them in listener TLS configs for rebuilds and hot-swap
2026-02-16 01:37:43 +00:00
af10d189a3
fix(plugins): remove unused dependencies and simplify plugin exports
2026-02-15 15:05:03 +00:00