From 9cb94c0d0753a2250e15c1a7d3b1f598731d9ab2 Mon Sep 17 00:00:00 2001 From: Pierre LALET <pierre.lalet@cea.fr> Date: Fri, 29 Jan 2016 13:38:02 +0100 Subject: [PATCH] Return Raw() when an exception occurs in .dispatch_hook() ... if not conf.debug_dissector Idea from @paaguti in pull request #10. --- scapy/base_classes.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scapy/base_classes.py b/scapy/base_classes.py index 1d499653..83f8bff1 100644 --- a/scapy/base_classes.py +++ b/scapy/base_classes.py @@ -210,7 +210,12 @@ class Packet_metaclass(type): def __call__(cls, *args, **kargs): if "dispatch_hook" in cls.__dict__: - cls = cls.dispatch_hook(*args, **kargs) + try: + cls = cls.dispatch_hook(*args, **kargs) + except: + if conf.debug_dissector: + raise + cls = Raw i = cls.__new__(cls, cls.__name__, cls.__bases__, cls.__dict__) i.__init__(*args, **kargs) return i -- GitLab