Diff between 72e9f247eb2ec452568f89076699ae8f6c0c078f and 8ef121cdbb0a78ec0beacdd1913b0451429b4fed

Changed Files

File Additions Deletions Status
tools/hcidump.1 +3 -0 modified
tools/parser/hci.c +16 -4 modified

Full Patch

diff --git a/tools/hcidump.1 b/tools/hcidump.1
index e7ce4c2..6a7c512 100644
--- a/tools/hcidump.1
+++ b/tools/hcidump.1
@@ -96,6 +96,9 @@ Use the BTSnoop file format.
 .TP
 .BR -V ", " "\-\^\-verbose"
 Enables a more verbose decoding of every packet.
+.TP
+.BR -Y ", " "\-\^\-novendor"
+Don't display any vendor commands or events and don't show any pin code or link key in plain text.
 .SH FILTERS
 .B
 filter
diff --git a/tools/parser/hci.c b/tools/parser/hci.c
index 2951780..d14f8c5 100644
--- a/tools/parser/hci.c
+++ b/tools/parser/hci.c
@@ -630,7 +630,10 @@ static inline void pin_code_reply_dump(int level, struct frame *frm)
 	p_indent(level, frm);
 	ba2str(&cp->bdaddr, addr);
 	memset(pin, 0, sizeof(pin));
-	memcpy(pin, cp->pin_code, cp->pin_len);
+	if (parser.flags & DUMP_NOVENDOR)
+		memset(pin, '*', cp->pin_len);
+	else
+		memcpy(pin, cp->pin_code, cp->pin_len);
 	printf("bdaddr %s len %d pin \'%s\'\n", addr, cp->pin_len, pin);
 }
 
@@ -644,7 +647,10 @@ static inline void link_key_reply_dump(int level, struct frame *frm)
 	ba2str(&cp->bdaddr, addr);
 	printf("bdaddr %s key ", addr);
 	for (i = 0; i < 16; i++)
-		printf("%2.2X", cp->link_key[i]);
+		if (parser.flags & DUMP_NOVENDOR)
+			printf("**");
+		else
+			printf("%2.2X", cp->link_key[i]);
 	printf("\n");
 }
 
@@ -830,7 +836,10 @@ static inline void return_link_keys_dump(int level, struct frame *frm)
 		p_indent(level, frm);
 		printf("bdaddr %s key ", addr);
 		for (i = 0; i < 16; i++)
-			printf("%2.2X", key[i]);
+			if (parser.flags & DUMP_NOVENDOR)
+				printf("**");
+			else
+				printf("%2.2X", key[i]);
 		printf("\n");
 
 		frm->ptr += 2;
@@ -2154,7 +2163,10 @@ static inline void link_key_notify_dump(int level, struct frame *frm)
 	ba2str(&evt->bdaddr, addr);
 	printf("bdaddr %s key ", addr);
 	for (i = 0; i < 16; i++)
-		printf("%2.2X", evt->link_key[i]);
+		if (parser.flags & DUMP_NOVENDOR)
+			printf("**");
+		else
+			printf("%2.2X", evt->link_key[i]);
 	printf(" type %d\n", evt->key_type);
 }