diff options
author | Anders Broman <anders.broman@ericsson.com> | 2013-05-21 05:47:20 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2013-05-21 05:47:20 +0000 |
commit | 51723864c1a24c629b271ce990f4f317629488ad (patch) | |
tree | 4e1db1030630d818e6340b54b332c2f94a2d9501 /epan/dissectors/packet-diameter.c | |
parent | b8618947bd5a66b7966591042b732c4e25d8de6e (diff) |
- Move the export_pdu tap outside of if(tree)
- Have the diameter tap request a tree.
svn path=/trunk/; revision=49475
Diffstat (limited to 'epan/dissectors/packet-diameter.c')
-rw-r--r-- | epan/dissectors/packet-diameter.c | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c index f57420a2cc..fe9fec1d96 100644 --- a/epan/dissectors/packet-diameter.c +++ b/epan/dissectors/packet-diameter.c @@ -1079,45 +1079,45 @@ dissect_diameter_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } diameter_pair->processing_request=(flags_bits & DIAM_FLAGS_R)!=0; - if (!tree) return; - - /* print state tracking info in the tree */ - if (flags_bits & DIAM_FLAGS_R) { - /* This is a request */ - if (diameter_pair->ans_frame) { - it = proto_tree_add_uint(diam_tree, hf_diameter_answer_in, - tvb, 0, 0, diameter_pair->ans_frame); - PROTO_ITEM_SET_GENERATED(it); - } - } else { - /* This is an answer */ - if (diameter_pair->req_frame) { - it = proto_tree_add_uint(diam_tree, hf_diameter_answer_to, - tvb, 0, 0, diameter_pair->req_frame); - PROTO_ITEM_SET_GENERATED(it); - - nstime_delta(&ns, &pinfo->fd->abs_ts, &diameter_pair->req_time); - diameter_pair->srt_time = ns; - it = proto_tree_add_time(diam_tree, hf_diameter_answer_time, tvb, 0, 0, &ns); - PROTO_ITEM_SET_GENERATED(it); - /* TODO: Populate result_code in tap record from AVP 268 */ + if (tree){ + /* print state tracking info in the tree */ + if (flags_bits & DIAM_FLAGS_R) { + /* This is a request */ + if (diameter_pair->ans_frame) { + it = proto_tree_add_uint(diam_tree, hf_diameter_answer_in, + tvb, 0, 0, diameter_pair->ans_frame); + PROTO_ITEM_SET_GENERATED(it); + } + } else { + /* This is an answer */ + if (diameter_pair->req_frame) { + it = proto_tree_add_uint(diam_tree, hf_diameter_answer_to, + tvb, 0, 0, diameter_pair->req_frame); + PROTO_ITEM_SET_GENERATED(it); + + nstime_delta(&ns, &pinfo->fd->abs_ts, &diameter_pair->req_time); + diameter_pair->srt_time = ns; + it = proto_tree_add_time(diam_tree, hf_diameter_answer_time, tvb, 0, 0, &ns); + PROTO_ITEM_SET_GENERATED(it); + /* TODO: Populate result_code in tap record from AVP 268 */ + } } - } - offset = 20; + offset = 20; - /* Dissect AVPs until the end of the packet is reached */ - while (offset < packet_len) { - offset += dissect_diameter_avp(c, tvb, offset); - } + /* Dissect AVPs until the end of the packet is reached */ + while (offset < packet_len) { + offset += dissect_diameter_avp(c, tvb, offset); + } - /* Handle requests for which no answers were found and - * anawers for which no requests were found in the tap listener. - * In case if you don't need unpaired requests/answers use: - * if(diameter_pair->processing_request || !diameter_pair->req_frame) - * return; - */ - tap_queue_packet(diameter_tap, pinfo, diameter_pair); + /* Handle requests for which no answers were found and + * anawers for which no requests were found in the tap listener. + * In case if you don't need unpaired requests/answers use: + * if(diameter_pair->processing_request || !diameter_pair->req_frame) + * return; + */ + tap_queue_packet(diameter_tap, pinfo, diameter_pair); + } if(have_tap_listener(exported_pdu_tap)){ export_diameter_pdu(pinfo,tvb); |