diff options
author | Michael Mann <mmann78@netscape.net> | 2013-10-22 00:49:16 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-10-22 00:49:16 +0000 |
commit | 28b5926fe84efed7828340aa43bf6f4cf2b9ebf4 (patch) | |
tree | 6824bcca356df33f5e113c5f6faedea3177e4449 /epan | |
parent | 88b157d91cbd2d81bc629a518717f728307aacd6 (diff) |
Pass usb_data_t "private data" into subdissectors instead of using pinfo->private_data.
svn path=/trunk/; revision=52750
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-hci_usb.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-usb.c | 13 |
2 files changed, 6 insertions, 11 deletions
diff --git a/epan/dissectors/packet-hci_usb.c b/epan/dissectors/packet-hci_usb.c index ffedc46ea8..725b50c7e8 100644 --- a/epan/dissectors/packet-hci_usb.c +++ b/epan/dissectors/packet-hci_usb.c @@ -92,7 +92,7 @@ void proto_register_hci_usb(void); void proto_reg_handoff_hci_usb(void); static int -dissect_hci_usb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +dissect_hci_usb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { proto_item *ttree = NULL; proto_tree *titem = NULL; @@ -113,7 +113,7 @@ dissect_hci_usb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data col_clear(pinfo->cinfo, COL_INFO); - usb_data = (usb_data_t *) pinfo->private_data; + usb_data = (usb_data_t *)data; p2p_dir_save = pinfo->p2p_dir; pinfo->p2p_dir = usb_data->direction; diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c index 56ccbb3c21..546e35ea1f 100644 --- a/epan/dissectors/packet-usb.c +++ b/epan/dissectors/packet-usb.c @@ -2547,7 +2547,6 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, guint bus_id = 0; guint device_address = 0; usb_data_t *usb_data; - void *pd_save; tvbuff_t *next_tvb = NULL; col_set_str(pinfo->cinfo, COL_PROTOCOL, "USB"); @@ -2627,9 +2626,6 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, usb_data->direction = P2P_DIR_SENT; } - pd_save = pinfo->private_data; - pinfo->private_data = usb_data; - /* Set up addresses and ports. */ if (is_request) { src_addr.device = 0xffffffff; @@ -3297,7 +3293,7 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, next_tvb = tvb_new_subset_remaining(tvb, offset); - if (!dissector_try_uint(device_to_dissector, (guint32) (bus_id << 8 | device_address), next_tvb, pinfo, parent)) { + if (!dissector_try_uint_new(device_to_dissector, (guint32) (bus_id << 8 | device_address), next_tvb, pinfo, parent, FALSE, usb_data)) { wmem_tree_key_t key[4]; guint32 k_frame_number; guint32 k_device_address; @@ -3320,7 +3316,7 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, device_protocol_data = (device_protocol_data_t *)wmem_tree_lookup32_array_le(device_to_protocol_table, key); if (device_protocol_data && device_protocol_data->bus_id == bus_id && device_protocol_data->device_address == device_address && - dissector_try_uint(protocol_to_dissector, (guint32) device_protocol_data->protocol, next_tvb, pinfo, parent)) { + dissector_try_uint_new(protocol_to_dissector, (guint32) device_protocol_data->protocol, next_tvb, pinfo, parent, FALSE, usb_data)) { offset += tvb_length_remaining(tvb, offset); } else { device_product_data_t *device_product_data; @@ -3328,7 +3324,8 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, device_product_data = (device_product_data_t *)wmem_tree_lookup32_array_le(device_to_product_table, key); if (device_product_data && device_product_data->bus_id == bus_id && device_product_data->device_address == device_address && - dissector_try_uint(product_to_dissector, (guint32) (device_product_data->vendor << 16 | device_product_data->product), next_tvb, pinfo, parent)) { + dissector_try_uint_new(product_to_dissector, (guint32) (device_product_data->vendor << 16 | device_product_data->product), + next_tvb, pinfo, parent, FALSE, usb_data)) { offset += tvb_length_remaining(tvb, offset); } } @@ -3340,8 +3337,6 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, /* There is leftover capture data to add (padding?) */ proto_tree_add_item(parent, hf_usb_capdata, tvb, offset, -1, ENC_NA); } - - pinfo->private_data = pd_save; } static void |