From 81713f20a6635c6905e81daa0a061e43c85db277 Mon Sep 17 00:00:00 2001 From: Nameless Date: Mon, 26 Feb 2024 09:53:48 -0600 Subject: [PATCH] std.http: header whitespace is optional, and not part of value --- lib/std/http/Client.zig | 4 ++-- lib/std/http/HeaderIterator.zig | 4 ++-- lib/std/http/Server.zig | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/std/http/Client.zig b/lib/std/http/Client.zig index 49843fb405905afc43beaa3867f533cad2f902ea..430af8a1d827db4d087c20494b305c6b90dd6838 100644 --- a/lib/std/http/Client.zig +++ b/lib/std/http/Client.zig @@ -489,9 +489,9 @@ pub const Response = struct { else => {}, } - var line_it = mem.splitSequence(u8, line, ": "); + var line_it = mem.splitScalar(u8, line, ':'); const header_name = line_it.next().?; - const header_value = line_it.rest(); + const header_value = mem.trim(u8, line_it.rest(), " \t"); if (header_name.len == 0) return error.HttpHeadersInvalid; if (std.ascii.eqlIgnoreCase(header_name, "connection")) { diff --git a/lib/std/http/HeaderIterator.zig b/lib/std/http/HeaderIterator.zig index 943883d7e20de6b6c495ae7205dcb99f30f12711..518950a9ab39710ccc400213f0d5a64aaa67c44f 100644 --- a/lib/std/http/HeaderIterator.zig +++ b/lib/std/http/HeaderIterator.zig @@ -48,7 +48,7 @@ pub fn next(it: *HeaderIterator) ?std.http.Header { } test next { - var it = HeaderIterator.init("200 OK\r\na: b\r\nc: \r\nd: e\r\n\r\nf: g\r\n\r\n"); + var it = HeaderIterator.init("200 OK\r\na: b\r\nc: \r\nd:e\r\n\r\nf: g\r\n\r\n"); try std.testing.expect(!it.is_trailer); { const header = it.next().?; @@ -80,7 +80,7 @@ test next { try std.testing.expect(!it.is_trailer); try std.testing.expectEqual(null, it.next()); - it = HeaderIterator.init("200 OK\r\na: b\r\n\r\n: ss\r\n\r\n"); + it = HeaderIterator.init("200 OK\r\na:b\r\n\r\n: ss\r\n\r\n"); try std.testing.expect(!it.is_trailer); { const header = it.next().?; diff --git a/lib/std/http/Server.zig b/lib/std/http/Server.zig index bfc97157f639e4da3d2cdbcd8c449b425d2aee07..0d7c0fdd79dc33081ebc505c7d420a100b99bbb0 100644 --- a/lib/std/http/Server.zig +++ b/lib/std/http/Server.zig @@ -211,9 +211,9 @@ pub const Request = struct { else => {}, } - var line_it = mem.splitSequence(u8, line, ": "); + var line_it = mem.splitScalar(u8, line, ':'); const header_name = line_it.next().?; - const header_value = line_it.rest(); + const header_value = mem.trim(u8, line_it.rest(), " \t"); if (header_name.len == 0) return error.HttpHeadersInvalid; if (std.ascii.eqlIgnoreCase(header_name, "connection")) { -- 2.54.0