aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-hci_h1.c
diff options
context:
space:
mode:
authorStephen Fisher <steve@stephen-fisher.com>2009-02-16 07:24:04 +0000
committerStephen Fisher <steve@stephen-fisher.com>2009-02-16 07:24:04 +0000
commit18f3436e85cd898995e4635c8de204d19d3aec86 (patch)
tree8c57e4d8da5544e0db05149a4119ebca4b7ffd0d /epan/dissectors/packet-hci_h1.c
parent5742ede54c6427d581c718ffd7c2e43cfe40bf56 (diff)
Add support for reading Apple's Bluetooth PacketLogger capture files to
wiretap. Modify various other locations to accommodate the fact that PacketLogger files do not specify the direction of packets. svn path=/trunk/; revision=27463
Diffstat (limited to 'epan/dissectors/packet-hci_h1.c')
-rw-r--r--epan/dissectors/packet-hci_h1.c35
1 files changed, 30 insertions, 5 deletions
diff --git a/epan/dissectors/packet-hci_h1.c b/epan/dissectors/packet-hci_h1.c
index 8d3bc07000..1596d8535a 100644
--- a/epan/dissectors/packet-hci_h1.c
+++ b/epan/dissectors/packet-hci_h1.c
@@ -48,6 +48,7 @@ static const value_string hci_h1_type_vals[] = {
{0, NULL }
};
static const value_string hci_h1_direction_vals[] = {
+ {-1, "Unknown"},
{0, "Sent"},
{1, "Rcvd"},
{0, NULL}
@@ -72,14 +73,38 @@ dissect_hci_h1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if(tree){
ti = proto_tree_add_item(tree, proto_hci_h1, tvb, 0, 1, FALSE);
hci_h1_tree = proto_item_add_subtree(ti, ett_hci_h1);
+
+ if(pinfo->p2p_dir == P2P_DIR_SENT ||
+ pinfo->p2p_dir == P2P_DIR_RECV)
+ proto_item_append_text(hci_h1_tree, " %s %s",
+ match_strval(pinfo->p2p_dir,
+ hci_h1_direction_vals),
+ val_to_str(type,
+ hci_h1_type_vals,
+ "Unknown 0x%02x"));
+ else
+ proto_item_append_text(hci_h1_tree, " %s",
+ val_to_str(type,
+ hci_h1_type_vals,
+ "Unknown 0x%02x"));
}
if(check_col(pinfo->cinfo, COL_INFO)){
- col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",pinfo->p2p_dir==P2P_DIR_SENT?"Sent":"Rcvd",val_to_str(type, hci_h1_type_vals, "Unknown 0x%02x"));
+ if(pinfo->p2p_dir == P2P_DIR_SENT ||
+ pinfo->p2p_dir == P2P_DIR_RECV)
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",
+ match_strval(pinfo->p2p_dir,
+ hci_h1_direction_vals),
+ val_to_str(type, hci_h1_type_vals,
+ "Unknown 0x%02x"));
+ else
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s",
+ val_to_str(type, hci_h1_type_vals,
+ "Unknown 0x%02x"));
}
- ti=proto_tree_add_uint(hci_h1_tree, hf_hci_h1_direction, tvb, 0, 0, pinfo->p2p_dir);
+
+ ti=proto_tree_add_int(hci_h1_tree, hf_hci_h1_direction, tvb, 0, 0, pinfo->p2p_dir);
PROTO_ITEM_SET_GENERATED(ti);
- proto_item_append_text(hci_h1_tree, " %s %s", val_to_str(pinfo->p2p_dir, hci_h1_direction_vals, "0x%02x"), val_to_str(type, hci_h1_type_vals, "Unknown 0x%02x"));
next_tvb = tvb_new_subset(tvb, 0, -1, -1);
if(!dissector_try_port(hci_h1_table, type, next_tvb, pinfo, tree)) {
@@ -99,8 +124,8 @@ proto_register_hci_h1(void)
{ &hf_hci_h1_direction,
{ "Direction", "hci_h1.direction",
- FT_UINT8, BASE_HEX, VALS(hci_h1_direction_vals), 0x0,
- "HCI Packet Direction Sent/Rcvd", HFILL }},
+ FT_INT8, BASE_DEC, VALS(hci_h1_direction_vals), 0x0,
+ "HCI Packet Direction Sent/Rcvd/Unknown", HFILL }},
};