magdalena

Log | Files | Refs | README | LICENSE

commit 737207265c3f886fe87a06552f89cc7bdc1654db
parent 42bf945818946a95a481c92fb101235a2945396a
Author: mtmn <miro@haravara.org>
Date:   Wed, 10 Jun 2026 01:40:09 +0200

fix: consume newline on reading memcached response

Diffstat:
Msrc/memcached.zig | 6++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/memcached.zig b/src/memcached.zig @@ -90,12 +90,14 @@ pub const Memcached = struct { } fn readLine(self: *Memcached, buf: []u8) !?[]const u8 { - const line = self.r().takeDelimiterExclusive('\n') catch |err| switch (err) { + // Inclusive so the '\n' is consumed from the stream; exclusive would + // leave it buffered and desync the following `readExact`. + const line = self.r().takeDelimiterInclusive('\n') catch |err| switch (err) { error.EndOfStream => return null, error.StreamTooLong => return error.LineTooLong, else => |e| return e, }; - const trimmed = std.mem.trim(u8, line, "\r"); + const trimmed = std.mem.trim(u8, line, "\r\n"); if (buf.len < trimmed.len) return error.BufferTooSmall; @memcpy(buf[0..trimmed.len], trimmed); return buf[0..trimmed.len];