diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2008-10-06 15:24:20 +0000 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2008-10-06 15:24:20 +0000 |
commit | 81633df2db463846cdfe23314eba8f53bbc95a0b (patch) | |
tree | 92af4db7fbec01b1652d422e1043a75ca22320da /epan/dissectors/packet-ositp.c | |
parent | a7e61da1b35f3b34549960eaaf6929e8c7fe8044 (diff) |
Also use conversation index in the generated dst_ref.
svn path=/trunk/; revision=26357
Diffstat (limited to 'epan/dissectors/packet-ositp.c')
-rwxr-xr-x | epan/dissectors/packet-ositp.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/epan/dissectors/packet-ositp.c b/epan/dissectors/packet-ositp.c index d62a42d74c..36a63ed1f2 100755 --- a/epan/dissectors/packet-ositp.c +++ b/epan/dissectors/packet-ositp.c @@ -34,6 +34,7 @@ #include <epan/prefs.h> #include <epan/packet.h> #include <epan/reassemble.h> +#include <epan/conversation.h> #include <epan/emem.h> #include "packet-frame.h" #include "packet-osi.h" @@ -773,13 +774,14 @@ static int ositp_decode_DT(tvbuff_t *tvb, int offset, guint8 li, guint8 tpdu, proto_item *ti; gboolean is_extended; gboolean is_class_234; - guint16 dst_ref; - guint16 *prev_dst_ref; + guint32 dst_ref; + guint32 *prev_dst_ref; guint tpdu_nr; gboolean fragment = FALSE; guint32 fragment_length = 0; tvbuff_t *next_tvb; fragment_data *fd_head; + conversation_t *conv; /* VP_CHECKSUM is the only parameter allowed in the variable part. (This means we may misdissect this if the packet is bad and @@ -838,6 +840,12 @@ static int ositp_decode_DT(tvbuff_t *tvb, int offset, guint8 li, guint8 tpdu, cotp_frame_reset = FALSE; cotp_last_fragment = fragment; dst_ref = cotp_dst_ref; + conv = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, + pinfo->ptype, pinfo->srcport, pinfo->destport, 0); + if (conv) { + /* Found a conversation, also use index for the generated dst_ref */ + dst_ref += (conv->index << 16); + } if (!fragment) { cotp_dst_ref++; register_frame_end_routine(cotp_frame_end); |