[dts] [PATCH] framework: enhance the tcpdump direction option parsing Some tcpdump versions (such as 4.9.0-5.el7) is providing help message about direction option with both '-P' and '-Q': " [ -Q|-P in|out|inout ]". This format cause option parse fail. This patch can enhance the direction option parsing and fix it.

Herbert Guan herbert.guan at arm.com
Mon Nov 6 08:55:05 CET 2017


Signed-off-by: Herbert Guan <herbert.guan at arm.com>
---
 framework/packet.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/framework/packet.py b/framework/packet.py
index 1907612..4ee51dd 100755
--- a/framework/packet.py
+++ b/framework/packet.py
@@ -787,14 +787,20 @@ def sniff_packets(intf, count=0, timeout=5, filters=[]):
     sniff all packets for certain port in certain seconds
     """
     param = ""
-    direct_param = r"(\s+)\[ -(\w) in\|out\|inout \]"
+    direct_param = r"(\s+)\[ (\S+) in\|out\|inout \]"
     tcpdump_help = subprocess.check_output("tcpdump -h; echo 0",
                                            stderr=subprocess.STDOUT,
                                            shell=True)
     for line in tcpdump_help.split('\n'):
         m = re.match(direct_param, line)
         if m:
-            param = "-" + m.group(2) + " in"
+            opt = re.search("-Q", m.group(2));
+            if opt:
+                param = "-Q" + " in"
+            else:
+                opt = re.search("-P", m.group(2));
+                if opt:
+                    param = "-P" + " in"
 
     if len(param) == 0:
         print "tcpdump not support direction chioce!!!"
-- 
1.8.3.1



More information about the dts mailing list