summaryrefslogtreecommitdiff
path: root/src/RawSocketWriter.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/RawSocketWriter.zig')
-rw-r--r--src/RawSocketWriter.zig32
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),
- };
-}