Diff between 868a9f11a77a49dd3384d03b8f12c18fc5b01683 and dc5a91ceb9a306ed9b18cc051b0c4b0931b7e1c4

Changed Files

File Additions Deletions Status
android/bluetoothd-snoop.c +1 -1 modified
monitor/control.c +2 -2 modified
src/shared/btsnoop.c +7 -6 modified
src/shared/btsnoop.h +4 -4 modified

Full Patch

diff --git a/android/bluetoothd-snoop.c b/android/bluetoothd-snoop.c
index 7526782..4b09663 100644
--- a/android/bluetoothd-snoop.c
+++ b/android/bluetoothd-snoop.c
@@ -139,7 +139,7 @@ static void data_callback(int fd, uint32_t events, void *user_data)
 
 		flags = get_flags_from_opcode(opcode);
 		if (flags != 0xff)
-			btsnoop_write(snoop, tv, flags, monitor_buf, pktlen);
+			btsnoop_write(snoop, tv, flags, 0, monitor_buf, pktlen);
 	}
 }
 
diff --git a/monitor/control.c b/monitor/control.c
index a89c0ce..d25f4d5 100644
--- a/monitor/control.c
+++ b/monitor/control.c
@@ -970,7 +970,7 @@ static void data_callback(int fd, uint32_t events, void *user_data)
 							data->buf, pktlen);
 			break;
 		case HCI_CHANNEL_MONITOR:
-			btsnoop_write_hci(btsnoop_file, tv, index, opcode,
+			btsnoop_write_hci(btsnoop_file, tv, index, opcode, 0,
 							data->buf, pktlen);
 			ellisys_inject_hci(tv, index, opcode,
 							data->buf, pktlen);
@@ -1290,7 +1290,7 @@ static void tty_callback(int fd, uint32_t events, void *user_data)
 		opcode = le16_to_cpu(hdr->opcode);
 		pktlen = data_len - 4 - hdr->hdr_len;
 
-		btsnoop_write_hci(btsnoop_file, tv, 0, opcode,
+		btsnoop_write_hci(btsnoop_file, tv, 0, opcode, 0,
 					hdr->ext_hdr + hdr->hdr_len, pktlen);
 		packet_monitor(tv, NULL, 0, opcode,
 					hdr->ext_hdr + hdr->hdr_len, pktlen);
diff --git a/src/shared/btsnoop.c b/src/shared/btsnoop.c
index cec1b21..e20d1b3 100644
--- a/src/shared/btsnoop.c
+++ b/src/shared/btsnoop.c
@@ -198,7 +198,8 @@ uint32_t btsnoop_get_format(struct btsnoop *btsnoop)
 }
 
 bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv,
-			uint32_t flags, const void *data, uint16_t size)
+			uint32_t flags, uint32_t drops, const void *data,
+			uint16_t size)
 {
 	struct btsnoop_pkt pkt;
 	uint64_t ts;
@@ -212,7 +213,7 @@ bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv,
 	pkt.size  = htobe32(size);
 	pkt.len   = htobe32(size);
 	pkt.flags = htobe32(flags);
-	pkt.drops = htobe32(0);
+	pkt.drops = htobe32(drops);
 	pkt.ts    = htobe64(ts + 0x00E03AB44A676000ll);
 
 	written = write(btsnoop->fd, &pkt, BTSNOOP_PKT_SIZE);
@@ -254,8 +255,8 @@ static uint32_t get_flags_from_opcode(uint16_t opcode)
 }
 
 bool btsnoop_write_hci(struct btsnoop *btsnoop, struct timeval *tv,
-					uint16_t index, uint16_t opcode,
-					const void *data, uint16_t size)
+			uint16_t index, uint16_t opcode, uint32_t drops,
+			const void *data, uint16_t size)
 {
 	uint32_t flags;
 
@@ -283,7 +284,7 @@ bool btsnoop_write_hci(struct btsnoop *btsnoop, struct timeval *tv,
 		return false;
 	}
 
-	return btsnoop_write(btsnoop, tv, flags, data, size);
+	return btsnoop_write(btsnoop, tv, flags, drops, data, size);
 }
 
 bool btsnoop_write_phy(struct btsnoop *btsnoop, struct timeval *tv,
@@ -303,7 +304,7 @@ bool btsnoop_write_phy(struct btsnoop *btsnoop, struct timeval *tv,
 		return false;
 	}
 
-	return btsnoop_write(btsnoop, tv, flags, data, size);
+	return btsnoop_write(btsnoop, tv, flags, 0, data, size);
 }
 
 static bool pklg_read_hci(struct btsnoop *btsnoop, struct timeval *tv,
diff --git a/src/shared/btsnoop.h b/src/shared/btsnoop.h
index 06a1c1b..dab2b2f 100644
--- a/src/shared/btsnoop.h
+++ b/src/shared/btsnoop.h
@@ -101,11 +101,11 @@ void btsnoop_unref(struct btsnoop *btsnoop);
 
 uint32_t btsnoop_get_format(struct btsnoop *btsnoop);
 
-bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv,
-			uint32_t flags, const void *data, uint16_t size);
+bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv, uint32_t flags,
+			uint32_t drops, const void *data, uint16_t size);
 bool btsnoop_write_hci(struct btsnoop *btsnoop, struct timeval *tv,
-					uint16_t index, uint16_t opcode,
-					const void *data, uint16_t size);
+			uint16_t index, uint16_t opcode, uint32_t drops,
+			const void *data, uint16_t size);
 bool btsnoop_write_phy(struct btsnoop *btsnoop, struct timeval *tv,
 			uint16_t frequency, const void *data, uint16_t size);