aboutsummaryrefslogtreecommitdiff
path: root/lib/std/http/WebSocket.zig
diff options
context:
space:
mode:
authorKuwazy <70151472+Marzin-bot@users.noreply.github.com>2025-03-25 15:00:50 +0100
committerGitHub <noreply@github.com>2025-03-25 15:00:50 +0100
commit6b6dc1cd3ac2690490628e0fee276e143e431b39 (patch)
tree1c52f566d3d570046c487fa8b3372115138ef9ce /lib/std/http/WebSocket.zig
parente1c6af2840edc723db8f89522850b6f882f8234f (diff)
downloadzig-6b6dc1cd3ac2690490628e0fee276e143e431b39.tar.gz
zig-6b6dc1cd3ac2690490628e0fee276e143e431b39.zip
Added check for HTTP version and GET method when upgrading WebSocket to comply with RFC 6455. (#23332)
Diffstat (limited to 'lib/std/http/WebSocket.zig')
-rw-r--r--lib/std/http/WebSocket.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/std/http/WebSocket.zig b/lib/std/http/WebSocket.zig
index 08bc420b67..8ab434ceae 100644
--- a/lib/std/http/WebSocket.zig
+++ b/lib/std/http/WebSocket.zig
@@ -23,6 +23,11 @@ pub fn init(
send_buffer: []u8,
recv_buffer: []align(4) u8,
) InitError!bool {
+ switch (request.head.version) {
+ .@"HTTP/1.0" => return false,
+ .@"HTTP/1.1" => if (request.head.method != .GET) return false,
+ }
+
var sec_websocket_key: ?[]const u8 = null;
var upgrade_websocket: bool = false;
var it = request.iterateHeaders();