zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit e17dfb9da0bee4c1f118e0a72b88f29f43365f61 (tree)
parent 54611e32d76e97c1f3145f4a14221668e70d52fb
Author: Linus Groh <mail@linusgroh.de>
Date:   Thu, 12 Sep 2024 18:42:21 +0100

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:
Mlib/std/http/WebSocket.zig | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 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; }