caddy/modules
SapirBaruch 8ccfcbc571 reverseproxy: re-apply WebSocket header normalization after header ops
When transport or user header ops are configured, proxyLoopIteration
rebuilds r.Header from scratch using copyHeader. copyHeader calls
http.Header.Add internally which canonicalizes header names via
CanonicalHeaderKey — this lowercases the 'S' in WebSocket, turning
"Sec-WebSocket-Key" into "Sec-Websocket-Key".

normalizeWebsocketHeaders was already called in prepareRequest to fix
this, but the subsequent header rebuild in proxyLoopIteration undoes
it. Calling normalizeWebsocketHeaders again after the rebuild restores
the RFC 6455-compliant casing for all Sec-WebSocket-* headers.

Fixes #7784
2026-06-01 21:33:30 +03:00
..
caddyevents refactor: replace HasPrefix+TrimPrefix with CutPrefix (#7095) 2025-06-27 22:04:09 +03:00
caddyfs events: Refactor; move Event into core, so core can emit events (#6930) 2025-03-29 08:15:43 -06:00
caddyhttp reverseproxy: re-apply WebSocket header normalization after header ops 2026-06-01 21:33:30 +03:00
caddypki tls: Add tls_resolvers global option for DNS challenge configuration (#7297) 2026-03-01 15:32:04 -05:00
caddytls caddytls: skip idna.ToASCII for pure ASCII SNI values (#7770) 2026-05-28 11:18:09 +10:00
filestorage caddyfile: Normalize & flatten all unmarshalers (#6037) 2024-01-23 19:36:59 -05:00
internal/network core: add modular network_proxy support (#6399) 2025-03-21 17:06:15 +00:00
logging chore: clean up wording and typo fixes (#7745) 2026-05-20 16:36:30 +10:00
metrics metrics: scope metrics to active config, add optional per-host metrics (#6531) 2024-10-02 08:23:26 -06:00
standard filesystem: Globally declared filesystems, fs directive (#5833) 2024-01-13 20:12:43 +00:00