Diff between 132fbb280e5213675600791b720a4d91ec8dd359 and d3393028e6464f4ddaca0d3bb08d58aefd83d5bf

Changed Files

File Additions Deletions Status
monitor/btsnoop.c +11 -2 modified
monitor/btsnoop.h +1 -1 modified
monitor/main.c +1 -1 modified

Full Patch

diff --git a/monitor/btsnoop.c b/monitor/btsnoop.c
index 9cd5282..f59ec99 100644
--- a/monitor/btsnoop.c
+++ b/monitor/btsnoop.c
@@ -77,7 +77,7 @@ static uint32_t btsnoop_type = 0;
 static int btsnoop_fd = -1;
 static uint16_t btsnoop_index = 0xffff;
 
-void btsnoop_create(const char *path)
+void btsnoop_create(const char *path, uint32_t type)
 {
 	struct btsnoop_hdr hdr;
 	ssize_t written;
@@ -85,12 +85,21 @@ void btsnoop_create(const char *path)
 	if (btsnoop_fd >= 0)
 		return;
 
+	switch (type) {
+	case BTSNOOP_TYPE_HCI:
+	case BTSNOOP_TYPE_EXTENDED_HCI:
+		break;
+
+	default:
+		return;
+	}
+
 	btsnoop_fd = open(path, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC,
 				S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
 	if (btsnoop_fd < 0)
 		return;
 
-	btsnoop_type = BTSNOOP_TYPE_EXTENDED_HCI;
+	btsnoop_type = type;
 
 	memcpy(hdr.id, btsnoop_id, sizeof(btsnoop_id));
 	hdr.version = htonl(btsnoop_version);
diff --git a/monitor/btsnoop.h b/monitor/btsnoop.h
index de0bd9a..3165090 100644
--- a/monitor/btsnoop.h
+++ b/monitor/btsnoop.h
@@ -31,7 +31,7 @@
 
 #define BTSNOOP_TYPE_EXTENDED_HCI	2001
 
-void btsnoop_create(const char *path);
+void btsnoop_create(const char *path, uint32_t type);
 void btsnoop_write(struct timeval *tv, uint16_t index, uint16_t opcode,
 					const void *data, uint16_t size);
 int btsnoop_open(const char *path, uint32_t *type);
diff --git a/monitor/main.c b/monitor/main.c
index 8285a48..85e618d 100644
--- a/monitor/main.c
+++ b/monitor/main.c
@@ -99,7 +99,7 @@ int main(int argc, char *argv[])
 			reader_path = optarg;
 			break;
 		case 'w':
-			btsnoop_create(optarg);
+			btsnoop_create(optarg, BTSNOOP_TYPE_EXTENDED_HCI);
 			break;
 		case 's':
 			control_server(optarg);