From dfe4a731bcf708a361fc2527554f17fa56216acc Mon Sep 17 00:00:00 2001 From: 0xhtml <34682885+0xhtml@users.noreply.github.com> Date: Sun, 7 Jun 2026 22:19:59 +0200 Subject: [PATCH] Parse cookies values containing equal sign --- src/http/cookie.zig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/http/cookie.zig b/src/http/cookie.zig index f4c513f..a8c39df 100644 --- a/src/http/cookie.zig +++ b/src/http/cookie.zig @@ -130,8 +130,7 @@ pub const CookieMap = struct { while (pairs.next()) |pair| { var kv = std.mem.splitScalar(u8, pair, '='); const key = kv.next() orelse continue; - const value = kv.next() orelse continue; - if (kv.next() != null) continue; + const value = kv.rest(); const key_dup = try self.allocator.dupe(u8, key); errdefer self.allocator.free(key_dup); @@ -150,9 +149,10 @@ test "Cookie: Header Parsing" { var cookie_map: CookieMap = .init(testing.allocator); defer cookie_map.deinit(); - try cookie_map.parse_from_header("sessionId=abc123; java=slop"); + try cookie_map.parse_from_header("sessionId=abc123; java=slop; foo=bar=baz"); try testing.expectEqualStrings("abc123", cookie_map.get("sessionId").?); try testing.expectEqualStrings("slop", cookie_map.get("java").?); + try testing.expectEqualStrings("bar=baz", cookie_map.get("foo").?); } test "Cookie: Response Formatting" {