mirror of
https://git.robbyzambito.me/zaprus/
synced 2026-02-04 03:34:48 +00:00
Cleanup and use random mac
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
const base64Enc = std.base64.Base64Encoder.init(std.base64.standard_alphabet_chars, '=');
|
||||
const base64Dec = std.base64.Base64Decoder.init(std.base64.standard_alphabet_chars, '=');
|
||||
|
||||
const native_endian = @import("builtin").cpu.arch.endian();
|
||||
|
||||
rand: Random,
|
||||
writer: *std.Io.Writer,
|
||||
|
||||
@@ -33,26 +31,24 @@ pub fn deinit(self: *Self) void {
|
||||
fn broadcastInitialInterestMessage(self: *Self, msg_bytes: []u8) !void {
|
||||
const writer = self.writer;
|
||||
|
||||
const total_len = ((@bitSizeOf(EthernetHeaders) + @bitSizeOf(IpHeaders) + @bitSizeOf(UdpHeaders)) / 8) + msg_bytes.len;
|
||||
const total_len = @sizeOf(EthernetHeaders) + @sizeOf(IpHeaders) + @sizeOf(UdpHeaders) + msg_bytes.len;
|
||||
|
||||
// Ensure the writer is in a valid state
|
||||
std.debug.assert(writer.buffer.len >= total_len);
|
||||
_ = writer.consumeAll();
|
||||
|
||||
const ether_headers: EthernetHeaders = .{
|
||||
.dest_mac = .{ 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff },
|
||||
.src_mac = .{ 0xee, 0xee, 0xee, 0xee, 0xee, 0xee },
|
||||
// .src_mac = blk: {
|
||||
// var output_bytes: [6]u8 = undefined;
|
||||
// // const r_bytes = try writer.writableArray(6);
|
||||
// self.rand.bytes(&output_bytes);
|
||||
// break :blk output_bytes;
|
||||
// },
|
||||
.src_mac = blk: {
|
||||
var output_bytes: [6]u8 = undefined;
|
||||
output_bytes[0] = 0xee;
|
||||
self.rand.bytes(output_bytes[1..]);
|
||||
break :blk output_bytes;
|
||||
},
|
||||
.ether_type = 0x0800,
|
||||
};
|
||||
|
||||
// @compileLog((@bitSizeOf(EthernetHeaders) / 8));
|
||||
const ip_headers: IpHeaders = .{
|
||||
// .ip_version = 0x4,
|
||||
// .header_length = 0x5,
|
||||
.total_length = @intCast(total_len - 92),
|
||||
.ttl = 0x64,
|
||||
.protocol = 0x11,
|
||||
@@ -75,13 +71,10 @@ fn broadcastInitialInterestMessage(self: *Self, msg_bytes: []u8) !void {
|
||||
@memcpy(msg_target_bytes, msg_bytes);
|
||||
var msg_target: *align(1) SaprusMessage = try .bytesAsValue(msg_target_bytes);
|
||||
try msg_target.networkFromNativeEndian();
|
||||
|
||||
std.debug.print("bytes: {x}\n", .{writer.buffer[0..writer.end]});
|
||||
std.debug.print("{x}\n", .{writer.buffer[0..writer.end]});
|
||||
try writer.flush();
|
||||
}
|
||||
|
||||
// fn broadcastSaprusMessage(msg_bytes: []align(@alignOf(SaprusMessage)) u8) !void {}
|
||||
|
||||
fn broadcastSaprusMessage(msg_bytes: []u8, udp_port: u16) !void {
|
||||
const msg: *align(1) SaprusMessage = try .bytesAsValue(msg_bytes);
|
||||
try msg.networkFromNativeEndian();
|
||||
|
||||
Reference in New Issue
Block a user