summaryrefslogtreecommitdiff
path: root/monitor/analyze.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2014-02-11 11:53:00 -0800
committerMarcel Holtmann <marcel@holtmann.org>2014-02-11 11:53:00 -0800
commit6d30d42da25c945d7b0c164869a1da719d9ddf52 (patch)
treec1a9ee6d9e4fae75f4009358fabe1ddce4a0b72e /monitor/analyze.c
parentb1e20ea79a5c7cd52931cffd315a25f527a07400 (diff)
downloadbluez-6d30d42da25c945d7b0c164869a1da719d9ddf52.tar.gz
monitor: Use shared btsnoop for reading and writing trace files
Diffstat (limited to 'monitor/analyze.c')
-rw-r--r--monitor/analyze.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/monitor/analyze.c b/monitor/analyze.c
index afb6dee13..2d994e3c1 100644
--- a/monitor/analyze.c
+++ b/monitor/analyze.c
@@ -31,7 +31,7 @@
#include "src/shared/util.h"
#include "src/shared/queue.h"
-#include "monitor/btsnoop.h"
+#include "src/shared/btsnoop.h"
#include "monitor/bt.h"
#include "analyze.h"
@@ -255,12 +255,16 @@ static void sco_pkt(struct timeval *tv, uint16_t index,
void analyze_trace(const char *path)
{
+ struct btsnoop *btsnoop_file;
unsigned long num_packets = 0;
uint32_t type;
- if (btsnoop_open(path, &type) < 0)
+ btsnoop_file = btsnoop_open(path);
+ if (!btsnoop_file)
return;
+ type = btsnoop_get_type(btsnoop_file);
+
switch (type) {
case BTSNOOP_TYPE_HCI:
case BTSNOOP_TYPE_UART:
@@ -282,7 +286,8 @@ void analyze_trace(const char *path)
struct timeval tv;
uint16_t index, opcode, pktlen;
- if (btsnoop_read_hci(&tv, &index, &opcode, buf, &pktlen) < 0)
+ if (btsnoop_read_hci(btsnoop_file, &tv, &index, &opcode,
+ buf, &pktlen) < 0)
break;
switch (opcode) {
@@ -316,5 +321,5 @@ void analyze_trace(const char *path)
queue_destroy(dev_list, dev_destroy);
done:
- btsnoop_close();
+ btsnoop_unref(btsnoop_file);
}