From 8c5752520ea067a50f44bca04db82606f456e3ae Mon Sep 17 00:00:00 2001 From: Daniel Collins Date: Tue, 17 Oct 2023 17:37:13 +0100 Subject: [PATCH] Ignore DNS/DHCP traffic in tests. --- tests/lib/IPXWrapper/Capture/IPXOverUDP.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/lib/IPXWrapper/Capture/IPXOverUDP.pm b/tests/lib/IPXWrapper/Capture/IPXOverUDP.pm index f95b730..7d2e59e 100644 --- a/tests/lib/IPXWrapper/Capture/IPXOverUDP.pm +++ b/tests/lib/IPXWrapper/Capture/IPXOverUDP.pm @@ -25,6 +25,8 @@ use NetPacket::IP; use NetPacket::UDP; use NetPacket::IPXWrapper; +my @IGNORE_PORTS = (53, 67, 68); # DNS and DHCP + sub new { my ($class, $dev) = @_; @@ -56,6 +58,12 @@ sub read_available my $udp = NetPacket::UDP->decode($ip->{data}); + # NetPacket::IPXWrapper tries to validate packets are in fact + # IPXWrapper packets, but I've seen it accept DNS packets that + # just happen to have the right bytes in places, so we ignore + # special ports we expect unrelated traffic on. + return if(grep { $udp->{src_port} == $_ || $udp->{dest_port} == $_ } @IGNORE_PORTS); + my $ipx = NetPacket::IPXWrapper->decode($udp->{data}); return unless(defined($ipx));