From ea0a81b7e85159130f8aeadd1b40c443c0d13fb8 Mon Sep 17 00:00:00 2001
From: Haim Daniel <haimdaniel@gmail.com>
Date: Wed, 4 Jan 2017 19:52:19 +0200
Subject: [PATCH] Add dot11 block ack support (#440)

Add missing addr2 to block ack packet, improve addr2 validation performance.
---
 scapy/layers/dot11.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scapy/layers/dot11.py b/scapy/layers/dot11.py
index 27e84dbc..fccaae65 100644
--- a/scapy/layers/dot11.py
+++ b/scapy/layers/dot11.py
@@ -43,10 +43,10 @@ class Dot11AddrMACField(MACField):
             return s,None
 
 class Dot11Addr2MACField(Dot11AddrMACField):
+    # Block-Ack, RTS, PS-Poll, CF-End, CF-End+CF-Ack
+    subtypes = {0x9, 0xb, 0xa, 0xe, 0xf}
     def is_applicable(self, pkt):
-        if pkt.type == 1:
-            return pkt.subtype in [ 0xb, 0xa, 0xe, 0xf] # RTS, PS-Poll, CF-End, CF-End+CF-Ack
-        return 1
+        return pkt.type != 1 or pkt.subtype in self.subtypes
 
 class Dot11Addr3MACField(Dot11AddrMACField):
     def is_applicable(self, pkt):
-- 
GitLab