diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-12-02 20:16:21 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-12-02 20:16:21 +0000 |
commit | b2b9e9747f931f7346c13274280b5d6630546e93 (patch) | |
tree | 37607cd20536fc705c30758147c4410153979732 /epan/dissectors/packet-ansi_tcap.c | |
parent | dd1b19a39824120aa7ecead7d652d58dc08455fb (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.c | 16 |
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); |