From 4681f9733be5399e505bf268390e18ed2e453dbe Mon Sep 17 00:00:00 2001
From: Phil <phil@secdev.org>
Date: Thu, 8 Oct 2009 18:30:43 +0200
Subject: [PATCH] Added StrFixedLenEnumField

---
 scapy/fields.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/scapy/fields.py b/scapy/fields.py
index f2787ee9..71b0422a 100644
--- a/scapy/fields.py
+++ b/scapy/fields.py
@@ -459,6 +459,19 @@ class StrFixedLenField(StrField):
             l = RandNum(0,200)
         return RandBin(l)
 
+class StrFixedLenEnumField(StrFixedLenField):
+    def __init__(self, name, default, length=None, enum=None, length_from=None):
+        StrFixedLenField.__init__(self, name, default, length=length, length_from=length_from)
+        self.enum = enum
+    def i2repr(self, pkt, v):
+        r = v.rstrip("\0")
+        rr = repr(r)
+        if v in self.enum:
+            rr = "%s (%s)" % (rr, self.enum[v])
+        elif r in self.enum:
+            rr = "%s (%s)" % (rr, self.enum[r])
+        return rr
+
 class NetBIOSNameField(StrFixedLenField):
     def __init__(self, name, default, length=31):
         StrFixedLenField.__init__(self, name, default, length)
-- 
GitLab