summaryrefslogtreecommitdiff
path: root/src/server/Client.zig
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2026-01-05 00:23:43 -0500
committerRobby Zambito <contact@robbyzambito.me>2026-01-05 10:34:31 -0500
commite50d53ee7ee044df88fa0b31a998ef17eb7e7efa (patch)
tree9b036dd6d38bf6d0ca0f6329db326858fd738270 /src/server/Client.zig
parentca43a12b9b754d5a3c7e89b9bb8d622358db3795 (diff)
Add Payload type
stores short message buffers in a colocated array, overflowing to an allocated slice when needed.
Diffstat (limited to 'src/server/Client.zig')
-rw-r--r--src/server/Client.zig10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/Client.zig b/src/server/Client.zig
index 8ff92e8..4eceb89 100644
--- a/src/server/Client.zig
+++ b/src/server/Client.zig
@@ -72,25 +72,27 @@ pub fn start(self: *Client, io: std.Io, alloc: std.mem.Allocator) !void {
switch (msg) {
.MSG => |m| {
try self.to_client.print(
- "MSG {s} {s} {s} {d}\r\n{s}\r\n",
+ "MSG {s} {s} {s} {d}\r\n",
.{
m.subject,
m.sid,
m.reply_to orelse "",
m.payload.len,
- m.payload,
},
);
+ try m.payload.write(self.to_client);
+ try self.to_client.print("\r\n", .{});
},
.HMSG => |hmsg| {
- try self.to_client.print("HMSG {s} {s} {s} {d} {d}\r\n{s}\r\n", .{
+ try self.to_client.print("HMSG {s} {s} {s} {d} {d}\r\n", .{
hmsg.msg.subject,
hmsg.msg.sid,
hmsg.msg.reply_to orelse "",
hmsg.header_bytes,
hmsg.msg.payload.len,
- hmsg.msg.payload,
});
+ try hmsg.msg.payload.write(self.to_client);
+ try self.to_client.print("\r\n", .{});
},
}
}