aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ansi_tcap.c
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2009-12-02 20:16:21 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2009-12-02 20:16:21 +0000
commitb2b9e9747f931f7346c13274280b5d6630546e93 (patch)
tree37607cd20536fc705c30758147c4410153979732 /epan/dissectors/packet-ansi_tcap.c
parentdd1b19a39824120aa7ecead7d652d58dc08455fb (diff)
Make it possible to match transaction Id:s for Conversation where
both Originatingand Responding TID is present. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@31156 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-ansi_tcap.c')
-rw-r--r--epan/dissectors/packet-ansi_tcap.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index a0d919efd3..108f5d745c 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -502,9 +502,21 @@ guint8 len;
if(next_tvb) {
- if(tvb_length(next_tvb) !=0)
- ansi_tcap_private.TransactionID_str = tvb_bytes_to_str(next_tvb, 0,tvb_length(next_tvb));
len = tvb_length_remaining(next_tvb, 0);
+ if(len !=0){
+ /* 0 octets for the Unidirectional,
+ * 4 octets for Query, Response & Abort
+ * 8 octets for Conversation in the order Originating then Responding TID
+ *
+ * In order to match this it seems like we should only use the last 4 octets
+ * in the 8 octets case.
+ */
+ if (len > 4){
+ ansi_tcap_private.TransactionID_str = tvb_bytes_to_str(next_tvb, 4,len-4);
+ }else{
+ ansi_tcap_private.TransactionID_str = tvb_bytes_to_str(next_tvb, 0,len);
+ }
+ }
switch(len) {
case 1:
gp_tcapsrt_info->src_tid=tvb_get_guint8(next_tvb, 0);