diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-09-20 18:45:21 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-09-20 18:45:21 +0000 |
commit | 414875011073c4ab890015852c53986284445885 (patch) | |
tree | e7048e845cc4511922e9a69a229f5e9c76cce2b0 /plugins/megaco | |
parent | 775906a73fe66774ca8a21126dc40261d3fae144 (diff) | |
download | wireshark-414875011073c4ab890015852c53986284445885.tar.gz wireshark-414875011073c4ab890015852c53986284445885.tar.bz2 wireshark-414875011073c4ab890015852c53986284445885.zip |
Fix bug #343 Parsing Problem - TransactionResponseAck (MEGACO).
svn path=/trunk/; revision=15902
Diffstat (limited to 'plugins/megaco')
-rw-r--r-- | plugins/megaco/packet-megaco.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/plugins/megaco/packet-megaco.c b/plugins/megaco/packet-megaco.c index f3d6ef7b1c..974f85e544 100644 --- a/plugins/megaco/packet-megaco.c +++ b/plugins/megaco/packet-megaco.c @@ -420,7 +420,11 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } return; break; - /* transactionResponseAck */ + /* transactionResponseAck + * transactionResponseAck = ResponseAckToken LBRKT transactionAck + * *(COMMA transactionAck) RBRKT + * transactionAck = transactionID / (transactionID "-" transactionID) + */ case 'K': tvb_offset = tvb_find_guint8(tvb, tvb_offset, tvb_len, '{'); tokenlen = tvb_offset - tvb_previous_offset; @@ -429,7 +433,8 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) "TransactionResponseAck" ); tvb_previous_offset = tvb_skip_wsp(tvb, tvb_offset+1); - tvb_current_offset = tvb_skip_wsp_return(tvb, tvb_len-1)-1; /* cut last RBRKT */ + tvb_current_offset = tvb_find_guint8(tvb, tvb_offset+1, tvb_len, '}'); + tvb_current_offset = tvb_skip_wsp_return(tvb, tvb_current_offset)-1; /* cut last RBRKT */ len = tvb_current_offset - tvb_previous_offset; if (check_col(pinfo->cinfo, COL_INFO) ) @@ -560,6 +565,10 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) len = tvb_len - tvb_previous_offset; proto_tree_add_text(megaco_tree, tvb, tvb_previous_offset, -1, "%s",tvb_format_text(tvb, tvb_previous_offset, len)); + + my_proto_tree_add_string(megaco_tree, hf_megaco_transid, tvb, + tvb_offset, (tvb_next_offset - tvb_offset), + tvb_format_text(tvb,tvb_offset,(tvb_next_offset - tvb_offset))); if(global_megaco_raw_text){ tvb_raw_text_add(tvb, megaco_tree); } |