aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2024-09-12 18:42:21 +0100
committerAndrew Kelley <andrew@ziglang.org>2024-09-12 20:02:19 -0700
commite17dfb9da0bee4c1f118e0a72b88f29f43365f61 (patch)
treeab03fa52330f81c8a5069df9bb2b615282f4687d /lib/std
parent54611e32d76e97c1f3145f4a14221668e70d52fb (diff)
downloadzig-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.zig2
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;
}