From 066b1d5d0dc7a8ca2c26ae75d8fc86c77fb262e7 Mon Sep 17 00:00:00 2001 From: Pierre LALET <pierre.lalet@cea.fr> Date: Fri, 8 Sep 2017 17:28:37 +0200 Subject: [PATCH] Make FlagValue objects hashable This will make them usable as set elements or dict or Counter keys. --- scapy/fields.py | 2 ++ test/regression.uts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/scapy/fields.py b/scapy/fields.py index ceabf1a9..28ff64d9 100644 --- a/scapy/fields.py +++ b/scapy/fields.py @@ -1039,6 +1039,8 @@ class FlagValue(object): self.multi = isinstance(names, list) self.names = names self.value = self._fixvalue(value) + def __hash__(self): + return hash(self.value) def __int__(self): return self.value def __eq__(self, other): diff --git a/test/regression.uts b/test/regression.uts index c0ed1b31..64397d93 100644 --- a/test/regression.uts +++ b/test/regression.uts @@ -8185,6 +8185,8 @@ assert pkt.flags.DF assert pkt.flags.evil assert repr(pkt.flags) == '<Flag 6 (DF+evil)>' +assert len({IP().flags, IP().flags}) == 1 + = TCP flags ~ TCP -- GitLab