Browse Source

use new extended conv stats in get_avg_delay_distributions

Jens Keim 5 years ago
parent
commit
62ff4d1aec
1 changed files with 18 additions and 9 deletions
  1. 18 9
      code/Core/Statistics.py

+ 18 - 9
code/Core/Statistics.py

@@ -856,26 +856,35 @@ class Statistics:
         else:
             return None
 
-    def get_avg_delay_distributions(self):
+    def get_avg_delay_distributions(self, input_pcap: bool=True):
         """
         :return: tuple consisting of avg delay distributions for local and external communication
         """
 
-        conv_delays = self.stats_db.process_user_defined_query(
+        if input_pcap:
+            delay_db = self.stats_db
+        else:
+            delay_db = statsDB.StatsDatabase(Util.get_botnet_pcap_db())
+
+        conv_delays = delay_db.process_user_defined_query(
             "SELECT ipAddressA, ipAddressB, avgDelay FROM conv_statistics")
+        conv_delays += delay_db.process_user_defined_query(
+            "SELECT ipAddressA, ipAddressB, avgDelay FROM conv_statistics_extended")
+
         if conv_delays:
             external_conv = []
             local_conv = []
 
             for conv in conv_delays:
-                ip_a = IPAddress.parse(conv[0])
-                ip_b = IPAddress.parse(conv[1])
+                if conv[2] is not None:
+                    ip_a = IPAddress.parse(conv[0])
+                    ip_b = IPAddress.parse(conv[1])
 
-                # split into local and external conversations
-                if not ip_a.is_private() or not ip_b.is_private():
-                    external_conv.append(conv)
-                else:
-                    local_conv.append(conv)
+                    # split into local and external conversations
+                    if not ip_a.is_private() or not ip_b.is_private():
+                        external_conv.append(conv)
+                    else:
+                        local_conv.append(conv)
 
             local_dist = []
             for conv in local_conv: