diff --git a/src/docker_client.zig b/src/docker_client.zig index 8ad664f..b222fb9 100644 --- a/src/docker_client.zig +++ b/src/docker_client.zig @@ -186,10 +186,13 @@ fn parseResponseHead(reader: *HttpReader) !ResponseMeta { } /// Read the full response body according to the parsed metadata. +/// Per RFC 7230 ยง3.3.3, Transfer-Encoding takes precedence over Content-Length +/// when both are present. fn readResponseBody(reader: *HttpReader, meta: ResponseMeta, allocator: std.mem.Allocator) ![]const u8 { if (meta.chunked) { return readChunkedBody(reader, allocator); } + if (meta.content_length) |cl| { if (cl == 0) return allocator.dupe(u8, ""); const body_buf = try allocator.alloc(u8, cl);