Skip to content

Commit 97b02f8

Browse files
committed
Ignore critical layers from filter()
1 parent 15c632d commit 97b02f8

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

scapy/config.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,12 @@ def __repr__(self):
294294
def register(self, layer):
295295
# type: (Type[Packet]) -> None
296296
self.append(layer)
297+
298+
# Skip arch* modules
299+
if layer.__module__.startswith("scapy.arch."):
300+
return
301+
302+
# Register in module
297303
if layer.__module__ not in self.ldict:
298304
self.ldict[layer.__module__] = []
299305
self.ldict[layer.__module__].append(layer)

test/regression.uts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,9 @@ pkt = NetflowHeader()/NetflowHeaderV5()/NetflowRecordV5()
288288
conf.layers.filter([NetflowHeader, NetflowHeaderV5])
289289
assert NetflowRecordV5 not in NetflowHeader(bytes(pkt))
290290

291+
# Conf.ifaces.reload() should still work (arch/* is exempt)
292+
conf.ifaces.reload()
293+
291294
conf.layers.unfilter()
292295
assert NetflowRecordV5 in NetflowHeader(bytes(pkt))
293296

0 commit comments

Comments
 (0)