aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/megaco
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2005-09-20 18:45:21 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2005-09-20 18:45:21 +0000
commit06073223b63b085785d445345c365da8098c65ca (patch)
treee7048e845cc4511922e9a69a229f5e9c76cce2b0 /plugins/megaco
parent4680914215af36304f6495f796e89a0b00c8e469 (diff)
Fix bug #343 Parsing Problem - TransactionResponseAck (MEGACO).
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@15902 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'plugins/megaco')
-rw-r--r--plugins/megaco/packet-megaco.c13
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);
}