diff options
| author | Linus Groh <mail@linusgroh.de> | 2024-09-12 18:42:21 +0100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-09-12 20:02:19 -0700 |
| commit | e17dfb9da0bee4c1f118e0a72b88f29f43365f61 (patch) | |
| tree | ab03fa52330f81c8a5069df9bb2b615282f4687d /lib/std | |
| parent | 54611e32d76e97c1f3145f4a14221668e70d52fb (diff) | |
| download | zig-e17dfb9da0bee4c1f118e0a72b88f29f43365f61.tar.gz zig-e17dfb9da0bee4c1f118e0a72b88f29f43365f61.zip | |
std.http.WebSocket: Make 'upgrade: websocket' check case-insensitive
I've seen implementations in the wild that send 'Upgrade: WebSocket',
which currently fails the handshake.
From https://datatracker.ietf.org/doc/html/rfc6455:
"If the response lacks an |Upgrade| header field or the |Upgrade| header
field contains a value that is not an ASCII case-insensitive match for
the value "websocket", the client MUST _Fail the WebSocket Connection_."
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/http/WebSocket.zig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/std/http/WebSocket.zig b/lib/std/http/WebSocket.zig index ad513fddf8..08bc420b67 100644 --- a/lib/std/http/WebSocket.zig +++ b/lib/std/http/WebSocket.zig @@ -30,7 +30,7 @@ pub fn init( if (std.ascii.eqlIgnoreCase(header.name, "sec-websocket-key")) { sec_websocket_key = header.value; } else if (std.ascii.eqlIgnoreCase(header.name, "upgrade")) { - if (!std.mem.eql(u8, header.value, "websocket")) + if (!std.ascii.eqlIgnoreCase(header.value, "websocket")) return false; upgrade_websocket = true; } |
