in pcap-cli/internal/transformer/json_translator.go [1205:1244]
func (t *JSONPcapTranslator) checkL3Address(
ctx context.Context,
json *gabs.Container,
data map[string]any,
ifaces netIfaceIndex,
iface *PcapIface,
srcIP, dstIP net.IP,
) {
if iface.Index != 0 {
return
}
// O(1) interface lookups by IP
_iface, ok := ifaces[srcIP.String()]
if !ok {
_iface, ok = ifaces[dstIP.String()]
}
if !ok {
// this should never happen
return
}
data["ifaceIndex"] = _iface.Index
data["ifaceName"] = _iface.Name
ifaceJSON := json.S("iface")
ifaceJSON.Set(_iface.Index, "index")
ifaceJSON.Set(_iface.Name, "name")
if sizeOfAddrs := _iface.Addrs.Cardinality(); sizeOfAddrs > 0 {
addrs, _ := ifaceJSON.ArrayOfSize(sizeOfAddrs, "addrs")
_iface.Addrs.Each(func(IP string) bool {
sizeOfAddrs -= 1
addrs.SetIndex(IP, sizeOfAddrs)
return false
})
}
}