diff options
| author | Robby Zambito <contact@robbyzambito.me> | 2026-01-14 18:58:13 -0500 |
|---|---|---|
| committer | Robby Zambito <contact@robbyzambito.me> | 2026-01-14 19:34:35 -0500 |
| commit | 0d9c0c33fa7c7e73e2e8448ca2e8071584bfaf39 (patch) | |
| tree | ae002275aea17b02d9769f30c51f496bb1215221 /src/RawSocketWriter.zig | |
| parent | b3f1b00510a6be9a4f792b6fbf7fd61797603eaa (diff) | |
Diffstat (limited to 'src/RawSocketWriter.zig')
| -rw-r--r-- | src/RawSocketWriter.zig | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/RawSocketWriter.zig b/src/RawSocketWriter.zig deleted file mode 100644 index cffe11a..0000000 --- a/src/RawSocketWriter.zig +++ /dev/null @@ -1,32 +0,0 @@ -const std = @import("std"); -const gcat = @import("gatorcat"); -const RawSocketWriter = @This(); -const Writer = std.Io.Writer; -const assert = std.debug.assert; - -interface: Writer, -socket: gcat.nic.RawSocket, - -fn drain(io_w: *std.Io.Writer, data: []const []const u8, splat: usize) Writer.Error!usize { - const w: *RawSocketWriter = @alignCast(@fieldParentPtr("interface", io_w)); - const rem_buf = io_w.unusedCapacitySlice(); - var rem_w = Writer.fixed(rem_buf); - const res = rem_w.writeSplat(data, splat) catch rem_buf.len; - io_w.advance(res); - const buffered = io_w.buffered(); - w.socket.linkLayer().send(buffered) catch return error.WriteFailed; - _ = io_w.consumeAll(); - - return res; -} - -pub fn init(interface_name: [:0]const u8, buffer: []u8) !RawSocketWriter { - std.debug.assert(buffer.len > 0); - return .{ - .interface = .{ - .vtable = &.{ .drain = drain }, - .buffer = buffer, - }, - .socket = try .init(interface_name), - }; -} |
