Skip to content
Snippets Groups Projects
Commit cb081c79 authored by Pierre LALET's avatar Pierre LALET
Browse files

Handle dynamic Packet().name

parent 5bcea64d
No related branches found
No related tags found
No related merge requests found
......@@ -178,6 +178,8 @@ class Packet_metaclass(type):
if "__slots__" not in dct:
dct["__slots__"] = []
if "name" in dct:
dct["_name"] = dct.pop("name")
newcls = super(Packet_metaclass, cls).__new__(cls, name, bases, dct)
if hasattr(newcls, "aliastypes"):
newcls.aliastypes = [newcls] + newcls.aliastypes
......
......@@ -40,6 +40,7 @@ class Packet(BasePacket):
"raw_packet_cache_fields", "_pkt", "post_transforms",
# then payload and underlayer
"payload", "underlayer",
"name",
]
__metaclass__ = Packet_metaclass
name = None
......@@ -65,6 +66,9 @@ class Packet(BasePacket):
def __init__(self, _pkt="", post_transform=None, _internal=0, _underlayer=None, **fields):
self.time = time.time()
self.sent_time = None
self.name = (self.__class__.__name__
if self._name is None else
self._name)
self.default_fields = {}
self.overloaded_fields = {}
self.fields = {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment