From 2e4c7ef093f747e21b709be6ac6f8941d7ea9d9a Mon Sep 17 00:00:00 2001
From: Pierre LALET <pierre.lalet@cea.fr>
Date: Wed, 24 Feb 2016 11:08:55 +0100
Subject: [PATCH] Implement a binrepr() function working with both Python 2.5
 and 2.6+

---
 scapy/utils.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/scapy/utils.py b/scapy/utils.py
index 90cb1bb5..40ce9a4b 100644
--- a/scapy/utils.py
+++ b/scapy/utils.py
@@ -426,6 +426,22 @@ def incremental_label(label="tag%05i", start=0):
         yield label % start
         start += 1
 
+
+# Python <= 2.5 do not provide bin() built-in function
+try:
+    bin(0)
+except NameError:
+    def _binrepr(val):
+        while val:
+            yield val & 1
+            val >>= 1
+
+    binrepr = lambda val: "".join(reversed([str(bit) for bit in
+                                            _binrepr(val)])) or "0"
+else:
+    binrepr = lambda val: bin(val)[2:]
+
+
 #########################
 #### Enum management ####
 #########################
-- 
GitLab