Review at  https://gerrit.osmocom.org/6834

fake_trx/trx_sniff.py: use DATADumpFile for capture writing

Since we have a separate class for DATA capture management now,
no need to implement the wheel - let's just use it!

Change-Id: I7c30bcea294ce7270bf905ae5420a06dbc2e46f1
---
M src/target/fake_trx/trx_sniff.py
1 file changed, 8 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/34/6834/1

diff --git a/src/target/fake_trx/trx_sniff.py b/src/target/fake_trx/trx_sniff.py
index 91c2c4a..f59e609 100755
--- a/src/target/fake_trx/trx_sniff.py
+++ b/src/target/fake_trx/trx_sniff.py
@@ -27,6 +27,7 @@
 
 import scapy.all
 
+from data_dump import DATADumpFile
 from data_msg import *
 
 COPYRIGHT = \
@@ -69,9 +70,9 @@
                print(COPYRIGHT)
                self.parse_argv()
 
-               # Open requested file for writing
+               # Open requested capture file
                if self.output_file is not None:
-                       self.output_file = open(self.output_file, "ab")
+                       self.ddf = DATADumpFile(self.output_file)
 
        def run(self):
                # Compose a packet filter
@@ -126,10 +127,8 @@
                print("[i] %s burst: %s" \
                        % ("L1 -> TRX" if l12trx else "TRX -> L1", 
msg.desc_hdr()))
 
-               # Poke burst handler
-               rc = self.burst_handle(l12trx, msg_raw, msg)
-               if rc is False:
-                       self.shutdown()
+               # Poke message handler
+               self.msg_handle(msg)
 
                # Poke burst counter
                rc = self.burst_count(msg.fn, msg.tn)
@@ -158,22 +157,13 @@
                # Burst passed ;)
                return True
 
-       def burst_handle(self, l12trx, msg_raw, msg):
+       def msg_handle(self, msg):
                if self.print_bursts:
                        print(msg.burst)
 
+               # Append a new message to the capture
                if self.output_file is not None:
-                       # TLV: tag defines burst direction (one byte, BE)
-                       self.output_file.write('\x01' if l12trx else '\x02')
-
-                       # TLV: length of value (one byte, BE)
-                       length = len(msg_raw)
-                       self.output_file.write(chr(length))
-
-                       # TLV: raw value
-                       self.output_file.write(msg_raw)
-
-               return True
+                       self.ddf.append_msg(msg)
 
        def burst_count(self, fn, tn):
                # Update frame counter
@@ -207,10 +197,6 @@
                # Print statistics
                print("[i] %u bursts handled, %u dropped" \
                        % (self.cnt_burst_num, self.cnt_burst_dropped_num))
-
-               # Close output file if opened
-               if self.output_file is not None:
-                       self.output_file.close()
 
                # Exit
                sys.exit(0)

-- 
To view, visit https://gerrit.osmocom.org/6834
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7c30bcea294ce7270bf905ae5420a06dbc2e46f1
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>

Reply via email to