1
0
mirror of https://github.com/halleysfifthinc/Toyota-AVC-LAN synced 2025-06-08 08:26:09 +00:00

47 lines
1.1 KiB
Julia

# NOTE: Not using @enum because it craps out when displaying unknown values
const LINKTYPE_NULL = UInt32(0)
const LINKTYPE_ETHERNET = UInt32(1)
struct PcapHeader
magic::UInt32
version_major::UInt16
version_minor::UInt16
thiszone::Int32
sigfigs::UInt32
snaplen::UInt32
linktype::UInt32
end
function Base.bswap(x::PcapHeader)
PcapHeader(
bswap(x.magic),
bswap(x.version_major),
bswap(x.version_minor),
bswap(x.thiszone),
bswap(x.sigfigs),
bswap(x.snaplen),
bswap(x.linktype))
end
function process_header(x::PcapHeader)
if x.magic == 0xa1b2c3d4
bswapped = false
nanotime = false
elseif x.magic == 0xd4c3b2a1
bswapped = true
nanotime = false
elseif x.magic == 0xa1b23c4d
bswapped = false
nanotime = true
elseif x.magic == 0x4d3cb2a1
bswapped = true
nanotime = true
else
throw(ArgumentError("Invalid pcap header"))
end
if bswapped
x = bswap(x)
end
x, bswapped, nanotime
end