From 01a144d69b5d6cacbdb902f79ccb26f098f80a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=B8=EF=B8=8F?= <29265684+buffermet@users.noreply.github.com> Date: Sat, 16 Nov 2024 10:19:30 +0100 Subject: [PATCH] Add IPv6 nil check for interface. --- packets/queue.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packets/queue.go b/packets/queue.go index 35e5602e..abfeca02 100644 --- a/packets/queue.go +++ b/packets/queue.go @@ -210,16 +210,16 @@ func (q *Queue) worker() { eth := leth.(*layers.Ethernet) // something coming from someone on the LAN - isFromMe := q.iface.IP.Equal(srcIP) || q.iface.IPv6.Equal(srcIP) - isFromLAN := q.iface.Net.Contains(srcIP) || q.iface.Net6.Contains(srcIP) + isFromMe := q.iface.IP.Equal(srcIP) || (q.iface.IPv6 != nil && q.iface.IPv6.Equal(srcIP)) + isFromLAN := q.iface.Net.Contains(srcIP) || (q.iface.Net6 != nil && q.iface.Net6.Contains(srcIP)) if !isFromMe && isFromLAN { meta := q.getPacketMeta(pkt) q.trackActivity(eth, srcIP, meta, pktSize, true) } // something going to someone on the LAN - isToMe := q.iface.IP.Equal(dstIP) || q.iface.IPv6.Equal(dstIP) - isToLAN := q.iface.Net.Contains(dstIP) || q.iface.Net6.Contains(dstIP) + isToMe := q.iface.IP.Equal(dstIP) || (q.iface.IPv6 != nil && q.iface.IPv6.Equal(dstIP)) + isToLAN := q.iface.Net.Contains(dstIP) || (q.iface.Net6 != nil && q.iface.Net6.Contains(dstIP)) if !isToMe && isToLAN { q.trackActivity(eth, dstIP, nil, pktSize, false) }