diff options
author | Michael Mann <mmann78@netscape.net> | 2014-01-12 00:50:41 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-01-12 00:50:41 +0000 |
commit | c071a1c7286eb9789dc5c96bb45ab75c75c3ecb4 (patch) | |
tree | 39717e01eed5f1ad45d3276c820938e3c0ee7d4d /wiretap/btsnoop.c | |
parent | 4210311b6985f957ad4073b410678685f0494865 (diff) |
Bluetooth/Ubertooth improvements. Bug 9606 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9606)
From Michal Labedski
1. add support for new btsnoop "format" introduced by BlueZ team in "btmon" tool
2. Bluetooth: Make EIR, AD and COD more generic
3. Bluetooth: HCI/LL: Update Error Codes to Core 4.1 Specification
4. Ubertooth: Fix response command handling
5. Ubertooth: Update to support firmware version
6. Ubertooth: Dissect by Vendor Id/Product Id
svn path=/trunk/; revision=54699
Diffstat (limited to 'wiretap/btsnoop.c')
-rw-r--r-- | wiretap/btsnoop.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/wiretap/btsnoop.c b/wiretap/btsnoop.c index 69aaf1d108..9fc2cb06f4 100644 --- a/wiretap/btsnoop.c +++ b/wiretap/btsnoop.c @@ -63,8 +63,8 @@ struct btsnooprec_hdr { #define KHciLoggerDatalinkTypeBCSP 1003 /* H5 is the official three wire serial protocol derived from BCSP*/ #define KHciLoggerDatalinkTypeH5 1004 -/* BlueZ 5 Monitor */ -#define KHciLoggerDatalinkBlueZ5Monitor 2001 +/* Linux Monitor */ +#define KHciLoggerDatalinkLinuxMonitor 2001 /* BlueZ 5 Simulator */ #define KHciLoggerDatalinkBlueZ5Simulator 2002 @@ -140,10 +140,9 @@ int btsnoop_open(wtap *wth, int *err, gchar **err_info) *err = WTAP_ERR_UNSUPPORTED; *err_info = g_strdup_printf("btsnoop: H5 capture logs unsupported"); return -1; - case KHciLoggerDatalinkBlueZ5Monitor: - *err = WTAP_ERR_UNSUPPORTED; - *err_info = g_strdup_printf("btsnoop: BlueZ 5 Monitor capture logs unsupported"); - return -1; + case KHciLoggerDatalinkLinuxMonitor: + file_encap=WTAP_ENCAP_BLUETOOTH_LINUX_MONITOR; + break; case KHciLoggerDatalinkBlueZ5Simulator: *err = WTAP_ERR_UNSUPPORTED; *err_info = g_strdup_printf("btsnoop: BlueZ 5 Simulator capture logs unsupported"); @@ -227,9 +226,7 @@ static gboolean btsnoop_read_record(wtap *wth, FILE_T fh, if(wth->file_encap == WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR) { phdr->pseudo_header.p2p.sent = (flags & KHciLoggerControllerToHost) ? FALSE : TRUE; - } - else if(wth->file_encap == WTAP_ENCAP_BLUETOOTH_HCI) - { + } else if(wth->file_encap == WTAP_ENCAP_BLUETOOTH_HCI) { phdr->pseudo_header.bthci.sent = (flags & KHciLoggerControllerToHost) ? FALSE : TRUE; if(flags & KHciLoggerCommandOrEvent) { @@ -246,6 +243,9 @@ static gboolean btsnoop_read_record(wtap *wth, FILE_T fh, { phdr->pseudo_header.bthci.channel = BTHCI_CHANNEL_ACL; } + } else if (wth->file_encap == WTAP_ENCAP_BLUETOOTH_LINUX_MONITOR) { + phdr->pseudo_header.btmon.opcode = flags & 0xFFFF; + phdr->pseudo_header.btmon.adapter_id = flags >> 16; } @@ -261,8 +261,8 @@ int btsnoop_dump_can_write_encap(int encap) if (encap == WTAP_ENCAP_PER_PACKET) return WTAP_ERR_ENCAP_PER_PACKET_UNSUPPORTED; - /* XXX - for now we only support WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR */ - if (encap != WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR) + /* XXX - for now we only support WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR and WTAP_ENCAP_BLUETOOTH_LINUX_MONITOR */ + if (encap != WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR && encap != WTAP_ENCAP_BLUETOOTH_LINUX_MONITOR) return WTAP_ERR_UNSUPPORTED_ENCAP; return 0; |