From 2e4c7ef093f747e21b709be6ac6f8941d7ea9d9a Mon Sep 17 00:00:00 2001 From: Pierre LALET 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 90cb1bb5f..40ce9a4b4 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 #### #########################