From Jon Ringle:
authorAnders Broman <anders.broman@ericsson.com>
Wed, 2 Feb 2005 20:07:03 +0000 (20:07 -0000)
committerAnders Broman <anders.broman@ericsson.com>
Wed, 2 Feb 2005 20:07:03 +0000 (20:07 -0000)
 1) Added a setup_frame parameter to conversation_t
2) Used the conversation_t next to maintain a list of conversations with the
same src/dest tuple but different setup_frame number.
3) Changed the signature of find_conversation() and conversation_new() to pass
in the frame number.
4) Adjusted packet-sdp to select RTP conversation if both m=audio and m=image
are present, and T.38 conversation if only m=image is present. I expect that
RTP/T.38 dissecting to be better, but I don't have a way to generate T.38
packets.

svn path=/trunk/; revision=13243

60 files changed:
epan/dissectors/packet-afp.c
epan/dissectors/packet-afs.c
epan/dissectors/packet-ajp13.c
epan/dissectors/packet-aoe.c
epan/dissectors/packet-atalk.c
epan/dissectors/packet-beep.c
epan/dissectors/packet-bittorrent.c
epan/dissectors/packet-dcerpc.c
epan/dissectors/packet-dcm.c
epan/dissectors/packet-eap.c
epan/dissectors/packet-fc.c
epan/dissectors/packet-fcdns.c
epan/dissectors/packet-fcels.c
epan/dissectors/packet-fcfcs.c
epan/dissectors/packet-fcfzs.c
epan/dissectors/packet-fcp.c
epan/dissectors/packet-fcsb3.c
epan/dissectors/packet-fcswils.c
epan/dissectors/packet-ftp.c
epan/dissectors/packet-gssapi.c
epan/dissectors/packet-h225.c
epan/dissectors/packet-h225.h
epan/dissectors/packet-ipx.c
epan/dissectors/packet-iscsi.c
epan/dissectors/packet-isns.c
epan/dissectors/packet-kerberos.c
epan/dissectors/packet-ldap.c
epan/dissectors/packet-mq.c
epan/dissectors/packet-msproxy.c
epan/dissectors/packet-mysql.c
epan/dissectors/packet-ncp.c
epan/dissectors/packet-ncp2222.inc
epan/dissectors/packet-ndmp.c
epan/dissectors/packet-ndps.c
epan/dissectors/packet-ntlmssp.c
epan/dissectors/packet-pgsql.c
epan/dissectors/packet-portmap.c
epan/dissectors/packet-quake.c
epan/dissectors/packet-rlogin.c
epan/dissectors/packet-rpc.c
epan/dissectors/packet-rsync.c
epan/dissectors/packet-rtcp.c
epan/dissectors/packet-rtp.c
epan/dissectors/packet-rtsp.c
epan/dissectors/packet-sdp.c
epan/dissectors/packet-smb.c
epan/dissectors/packet-smtp.c
epan/dissectors/packet-snmp.c
epan/dissectors/packet-socks.c
epan/dissectors/packet-spnego.c
epan/dissectors/packet-ssh.c
epan/dissectors/packet-ssl.c
epan/dissectors/packet-t38.c
epan/dissectors/packet-tcp.c
epan/dissectors/packet-tds.c
epan/dissectors/packet-tftp.c
epan/dissectors/packet-tuxedo.c
epan/dissectors/packet-wsp.c
epan/dissectors/packet-x11.c
epan/dissectors/packet-xyplex.c

index e0e50c48b44aa919b0e7e71a83b22f41becd89d6..c1e15333108cfb387442332a79e6744734b1ddca 100644 (file)
@@ -3313,12 +3313,12 @@ dissect_afp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        if (col_info)
                col_clear(pinfo->cinfo, COL_INFO);
 
-       conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
        if (conversation == NULL)
        {
-               conversation = conversation_new(&pinfo->src, &pinfo->dst,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
 
index 0fa26d72affb78703a639fa17785ceb1a1e985e2..bce4527e6ec9cf6385bed9eb7946957741487858 100644 (file)
@@ -216,11 +216,11 @@ dissect_afs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         * packets from A:X to B:Y as being part of the same conversation as
         * packets from B:Y to A:X.
         */
-       conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
            pinfo->srcport, pinfo->destport, 0);
        if (conversation == NULL) {
                /* It's not part of any conversation - create a new one. */
-               conversation = conversation_new(&pinfo->src, &pinfo->dst,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
 
index 3fe267b0da7498c2d6e4bf093d26754847de9c00..8683f7e1aa7e556601c9e385df8ac14b83beda66 100644 (file)
@@ -640,10 +640,10 @@ dissect_ajp13_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
   /* conversational state really only does us good during the first
    * in-order traversal
    */
-  conv = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+  conv = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                            pinfo->srcport, pinfo->destport, 0);
   if (!conv) {
-    conv = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conv = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                             pinfo->srcport, pinfo->destport, 0);
   }
   cd = (ajp13_conv_data*)conversation_get_proto_data(conv, proto_ajp13);
index 4efeaac4bba449b77262df5570befda0be8d0d7b..4605b7b1c38320126fea7f848e66fa472fb26eba 100644 (file)
@@ -226,12 +226,12 @@ dissect_ata_pdu(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset,
   conversation_t *conversation;
 
   /* only create a conversation for ATA commands */
-  conversation = find_conversation(&pinfo->src, &pinfo->dst,
+  conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                    pinfo->ptype, pinfo->srcport,
                                    pinfo->destport, 0);
   if (conversation == NULL) {
     /* We don't yet have a conversation, so create one. */
-    conversation = conversation_new(&pinfo->src, &pinfo->dst,
+    conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                     pinfo->ptype, pinfo->srcport,
                                     pinfo->destport, 0);
   }
index c37d4f1b8aa73289cb65ff412fbec7f1acf6c51c..3204e7e79ab753db7093685d075aba9e3e376821 100644 (file)
@@ -759,12 +759,12 @@ dissect_atp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
   aspinfo.code = 0;
   query = (!aspinfo.reply && !aspinfo.release);
 
-  conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+  conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
   if (conversation == NULL)
   {
-       conversation = conversation_new(&pinfo->src, &pinfo->dst,
+       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
   }
 
@@ -1117,12 +1117,12 @@ get_transaction(tvbuff_t *tvb, packet_info *pinfo)
   asp_request_val *request_val;
   guint8 fn;
 
-  conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+  conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
   if (conversation == NULL)
   {
-       conversation = conversation_new(&pinfo->src, &pinfo->dst,
+       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
   }
 
index c45f7c0a3682e98f5eba53cb01260e2db5168b65..7e9a38dbeed2d28ab006bfcae990970fa890bb89 100644 (file)
@@ -870,10 +870,10 @@ dissect_beep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
   if (!frame_data) {
 
-    conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                       pinfo->srcport, pinfo->destport, 0);
     if (conversation == NULL) { /* No conversation, create one */
-       conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                        pinfo->srcport, pinfo->destport, 0);
 
       }
index aeff6622ec1d6a692089200e8a02874413004ce2..1bf7c977601969d62ddf2a58c8bdbf579cc92353 100644 (file)
@@ -221,7 +221,7 @@ static gboolean test_bittorrent_packet (tvbuff_t *tvb, packet_info *pinfo,
                return FALSE;
        }
 
-       conversation = conversation_new (&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+       conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
 
        g_assert(find_dissector("bittorrent"));
 
index b2a7304c8811d679be3e36913e526a78718cde15..75584a16f0a61ff80e03ecdf3c8d5d542c6bde0b 100644 (file)
@@ -2412,10 +2412,10 @@ dissect_dcerpc_cn_bind (tvbuff_t *tvb, gint offset, packet_info *pinfo,
       }
 
       if (!saw_ctx_item) {
-        conv = find_conversation (&pinfo->src, &pinfo->dst, pinfo->ptype,
+        conv = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                   pinfo->srcport, pinfo->destport, 0);
         if (conv == NULL) {
-            conv = conversation_new (&pinfo->src, &pinfo->dst, pinfo->ptype,
+            conv = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                      pinfo->srcport, pinfo->destport, 0);
         }
 
@@ -2930,6 +2930,7 @@ dcerpc_add_conv_to_bind_table(decode_dcerpc_bind_values_t *binding)
     conversation_t *conv;
 
     conv = find_conversation (
+        0, 
         &binding->addr_a, 
         &binding->addr_b, 
         binding->ptype, 
@@ -2939,6 +2940,7 @@ dcerpc_add_conv_to_bind_table(decode_dcerpc_bind_values_t *binding)
 
     if (!conv) {
         conv = conversation_new (
+            0, 
             &binding->addr_a, 
             &binding->addr_b, 
             binding->ptype, 
@@ -3030,7 +3032,7 @@ dissect_dcerpc_cn_rqst (tvbuff_t *tvb, gint offset, packet_info *pinfo,
      */
     dissect_dcerpc_cn_auth (tvb, offset, pinfo, dcerpc_tree, hdr, FALSE, &auth_info);
 
-    conv = find_conversation (&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conv = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                               pinfo->srcport, pinfo->destport, 0);
     if (!conv)
         show_stub_data (tvb, offset, dcerpc_tree, &auth_info, TRUE);
@@ -3175,7 +3177,7 @@ dissect_dcerpc_cn_resp (tvbuff_t *tvb, gint offset, packet_info *pinfo,
      */
     dissect_dcerpc_cn_auth (tvb, offset, pinfo, dcerpc_tree, hdr, FALSE, &auth_info);
 
-    conv = find_conversation (&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conv = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                               pinfo->srcport, pinfo->destport, 0);
 
     if (!conv) {
@@ -3296,7 +3298,7 @@ dissect_dcerpc_cn_fault (tvbuff_t *tvb, gint offset, packet_info *pinfo,
      */
     dissect_dcerpc_cn_auth (tvb, offset, pinfo, dcerpc_tree, hdr, FALSE, &auth_info);
 
-    conv = find_conversation (&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conv = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                               pinfo->srcport, pinfo->destport, 0);
     if (!conv) {
         /* no point in creating one here, really */
@@ -4522,10 +4524,10 @@ dissect_dcerpc_dg (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
      * activity_id and seqnum.  I haven't seen anywhere that it would
      * make a difference, but for future reference...
      */
-    conv = find_conversation (&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conv = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                               pinfo->srcport, pinfo->destport, 0);
     if (!conv) {
-        conv = conversation_new (&pinfo->src, &pinfo->dst, pinfo->ptype,
+        conv = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                  pinfo->srcport, pinfo->destport, 0);
     }
 
index 9f06251440368930371b422cd1dc8fc4826396aa..f9ea6f8e17adec300331405def75050f0ba9a30f 100644 (file)
@@ -898,14 +898,14 @@ dissect_dcm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     guint32 len, tlen;
     dcmState_t *dcm_data = NULL;
 
-    conv = find_conversation(&pinfo->src, &pinfo->dst,
+    conv = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
 
     if (NULL != conv)  /* conversation exists */
                        /* do we have any data for this conversation ? */
        dcm_data = conversation_get_proto_data(conv, proto_dcm);
     else
-       conv = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conv = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
            pinfo->srcport, pinfo->destport, 0);
 
     if (NULL == dcm_data) {
@@ -950,7 +950,7 @@ dissect_dcm_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     char *buf;
     int offset = 0;
 
-    if (NULL == (conv = find_conversation(&pinfo->src, &pinfo->dst,
+    if (NULL == (conv = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
        pinfo->ptype, pinfo->srcport, pinfo->destport, 0)))
        return;  /* OOPS */
 
index 6499a34bbae80999478d85bdec9893cdf7221509..72389f65b97446d4a5daf5e14f1fb7d19ecd1770 100644 (file)
@@ -647,21 +647,21 @@ dissect_eap_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
    * keep them separate?  (Or is that not going to happen?)
    */
   if (pinfo->destport == pinfo->match_port) {
-    conversation = find_conversation(&pinfo->dst, &pinfo->src,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->dst, &pinfo->src,
                                     pinfo->ptype, pinfo->destport,
                                     0, NO_PORT_B);
   } else {
-    conversation = find_conversation(&pinfo->src, &pinfo->dst,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                     pinfo->ptype, pinfo->srcport,
                                     0, NO_PORT_B);
   }
   if (conversation == NULL) {
     if (pinfo->destport == pinfo->match_port) {
-      conversation = conversation_new(&pinfo->dst, &pinfo->src,
+      conversation = conversation_new(pinfo->fd->num, &pinfo->dst, &pinfo->src,
                                      pinfo->ptype, pinfo->destport,
                                      0, NO_PORT2);
     } else {
-      conversation = conversation_new(&pinfo->src, &pinfo->dst,
+      conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                      pinfo->ptype, pinfo->srcport,
                                      0, NO_PORT2);
     }
index 00d51d8b0ee8880d680fdc144610dbea73850eca..73acfb07e24e5a0ba9eb6573175b6424656bd3db 100644 (file)
@@ -1165,11 +1165,11 @@ dissect_fc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
          * SEQ_CNT of the first frame in sequence and use this value to
          * determine the actual offset into a frame.
          */
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         if (!conversation) {
-            conversation = conversation_new (&pinfo->src, &pinfo->dst,
+            conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                              pinfo->ptype, pinfo->oxid,
                                              pinfo->rxid, NO_PORT2);
         }
index 1bdda592c8cf611e457bd58fc31abfa1cd2d42f5..7261410b1fc0943b5042e8ac38bcdd4a4233bee8 100644 (file)
@@ -1509,11 +1509,11 @@ dissect_fcdns (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
 
     if ((opcode != FCCT_MSG_ACC) && (opcode != FCCT_MSG_RJT)) {
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         if (!conversation) {
-            conversation = conversation_new (&pinfo->src, &pinfo->dst,
+            conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                              pinfo->ptype, pinfo->oxid,
                                              pinfo->rxid, NO_PORT2);
         }
@@ -1545,7 +1545,7 @@ dissect_fcdns (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
     else {
         /* Opcode is ACC or RJT */
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         isreq = 0;
index d3c54c296015d2d1e8c82bb5d8e3b1efa2abd99a..8b1ae55c37debf62bd1e8e00c480f63c91d1ed52 100644 (file)
@@ -1531,12 +1531,12 @@ dissect_fcels (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         else {
             options = NO_PORT2;
         }
-        conversation = find_conversation (&pinfo->dst, &pinfo->src,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->dst, &pinfo->src,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, options);
             
         if (!conversation) {
-            conversation = conversation_new (&pinfo->dst, &pinfo->src,
+            conversation = conversation_new (pinfo->fd->num, &pinfo->dst, &pinfo->src,
                                              pinfo->ptype, pinfo->oxid,
                                              pinfo->rxid, options);
         }
@@ -1566,7 +1566,7 @@ dissect_fcels (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         isreq = FC_ELS_RPLY;
 
         options = NO_PORT2;
-        conversation = find_conversation (&pinfo->dst, &pinfo->src,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->dst, &pinfo->src,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, options);
         if (!conversation) {
@@ -1576,7 +1576,7 @@ dissect_fcels (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
             addrdata[0] = addrdata[1] = 0;
             addrdata[2] = pinfo->dst.data[2];
             SET_ADDRESS (&dstaddr, AT_FC, 3, addrdata);
-            conversation = find_conversation (&dstaddr, &pinfo->src,
+            conversation = find_conversation (pinfo->fd->num, &dstaddr, &pinfo->src,
                                               pinfo->ptype, pinfo->oxid,
                                               pinfo->rxid, options);
         }
@@ -1584,7 +1584,7 @@ dissect_fcels (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         if (!conversation) {
             /* Finally check for FLOGI with both NO_PORT2 and NO_ADDR2 set */
             options = NO_ADDR2 | NO_PORT2;
-            conversation = find_conversation (&pinfo->src, &pinfo->dst,
+            conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                               pinfo->ptype, pinfo->oxid,
                                               pinfo->rxid, options);
             if (!conversation) {
index 09384be15c48bda6248be6255980512df1d305a1..e0e00ead82f558df2ac2dd992c9877286935a816 100644 (file)
@@ -843,11 +843,11 @@ dissect_fcfcs (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     cthdr.maxres_size = ntohs (cthdr.maxres_size);
 
     if ((opcode != FCCT_MSG_ACC) && (opcode != FCCT_MSG_RJT)) {
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         if (!conversation) {
-            conversation = conversation_new (&pinfo->src, &pinfo->dst,
+            conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                              pinfo->ptype, pinfo->oxid,
                                              pinfo->rxid, NO_PORT2);
         }
@@ -879,7 +879,7 @@ dissect_fcfcs (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
     else {
         /* Opcode is ACC or RJT */
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         isreq = 0;
index 00807a8d7529a03db40f8fa7e1148c06e5f5e36f..d38761a18a1de3409caf663339fe442a08389e49 100644 (file)
@@ -664,11 +664,11 @@ dissect_fcfzs (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
     
     if ((opcode != FCCT_MSG_ACC) && (opcode != FCCT_MSG_RJT)) {
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         if (!conversation) {
-            conversation = conversation_new (&pinfo->src, &pinfo->dst,
+            conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                              pinfo->ptype, pinfo->oxid,
                                              pinfo->rxid, NO_PORT2);
         }
@@ -700,7 +700,7 @@ dissect_fcfzs (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
     else {
         /* Opcode is ACC or RJT */
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         isreq = 0;
index fb9282b771b9b5671fe4967424779f4bc34cfb3d..41f16147217f2630abe30268aff8c72ecb7f41ed 100644 (file)
@@ -262,11 +262,11 @@ dissect_fcp_cmnd (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     /* by the data that is sent back or sent next by the initiator as part */
     /* of this command. The state is destroyed in the response dissector */
     
-    conversation = find_conversation (&pinfo->src, &pinfo->dst,
+    conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                       pinfo->ptype, pinfo->oxid,
                                       pinfo->rxid, NO_PORT2);
     if (!conversation) {
-        conversation = conversation_new (&pinfo->src, &pinfo->dst,
+        conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                          pinfo->ptype, pinfo->oxid,
                                          pinfo->rxid, NO_PORT2);
     }
@@ -353,7 +353,7 @@ dissect_fcp_data (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     scsi_task_id_t task_key;
 
     /* Retrieve conversation state to determine expected payload */
-    conversation = find_conversation (&pinfo->src, &pinfo->dst,
+    conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                       pinfo->ptype, pinfo->oxid,
                                       pinfo->rxid, NO_PORT2);
     if (conversation) {
@@ -410,7 +410,7 @@ dissect_fcp_rsp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
 
     /* Response marks the end of the conversation. So destroy state */
-    conversation = find_conversation (&pinfo->src, &pinfo->dst,
+    conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                       pinfo->ptype, pinfo->oxid,
                                       pinfo->rxid, NO_PORT2);
     if (conversation) {
@@ -494,11 +494,11 @@ dissect_fcp_xfer_rdy (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     fcp_conv_key_t ckey, *req_key;
 
     /* Retrieve conversation state to determine expected payload */
-    conversation = find_conversation (&pinfo->src, &pinfo->dst,
+    conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                       pinfo->ptype, pinfo->oxid,
                                       pinfo->rxid, NO_PORT2);
     if (!conversation) {
-        conversation = conversation_new (&pinfo->src, &pinfo->dst,
+        conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                          pinfo->ptype, pinfo->oxid,
                                          pinfo->rxid, NO_PORT2);
     }
index 363046fa175f54b74d8a1b05ddfcf39f2497273b..2c538a64a77c5b76b0583984160adc13b4719fc1 100644 (file)
@@ -780,7 +780,7 @@ static void dissect_fc_sbccs (tvbuff_t *tvb, packet_info *pinfo,
     }
     
     /* Retrieve conversation state to determine expected payload */
-    conversation = find_conversation (&pinfo->src, &pinfo->dst,
+    conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                       PT_SBCCS, ch_cu_id, dev_addr, 0);
                                       
     if (conversation) {
@@ -791,7 +791,7 @@ static void dissect_fc_sbccs (tvbuff_t *tvb, packet_info *pinfo,
     }
     else if ((type == FC_SBCCS_IU_CMD_HDR) || 
              (type != FC_SBCCS_IU_CMD_DATA)) {
-        conversation = conversation_new (&pinfo->src, &pinfo->dst,
+        conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                          PT_SBCCS, ch_cu_id, dev_addr, 0);
         task_key.conv_id = conversation->index;
         task_key.task_id = ccw;
index 61c02bf870c20f7de2ddaba08f6942875ea2254d..66027427d7343c8e73c812d647bc3646110eeceb 100644 (file)
@@ -1476,11 +1476,11 @@ dissect_fcswils (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
     /* Register conversation if this is not a response */
     if ((opcode != FC_SWILS_SWACC) && (opcode != FC_SWILS_SWRJT)) {
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         if (!conversation) {
-            conversation = conversation_new (&pinfo->src, &pinfo->dst,
+            conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                              pinfo->ptype, pinfo->oxid,
                                              pinfo->rxid, NO_PORT2);
         }
@@ -1508,7 +1508,7 @@ dissect_fcswils (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
     else {
         /* Opcode is ACC or RJT */
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->oxid,
                                           pinfo->rxid, NO_PORT2);
         isreq = FC_SWILS_RPLY;
index 1084e0572015fe821761d6683aad6c4b805ffb2b..a9989406250f6879250753cd8ee5402c42927e1c 100644 (file)
@@ -462,7 +462,7 @@ dissect_ftp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                 * "ftp_ip_address" and "server_port", and
                                 * wildcard everything else?
                                 */
-                               conversation = find_conversation(&ftp_ip_address,
+                               conversation = find_conversation(pinfo->fd->num, &ftp_ip_address,
                                    &pinfo->dst, PT_TCP, ftp_port, 0,
                                    NO_PORT_B);
                                if (conversation == NULL) {
@@ -489,7 +489,7 @@ dissect_ftp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                         * and a new one was opened?
                                         */
                                        conversation = conversation_new(
-                                           &ftp_ip_address, &pinfo->dst,
+                                           pinfo->fd->num, &ftp_ip_address, &pinfo->dst,
                                            PT_TCP, ftp_port, 0, NO_PORT2);
                                        conversation_set_dissector(conversation,
                                            ftpdata_handle);
index e89eb78c30bfdde57b7627c5a54ab48691d1f417..5356ba024c1c4b214c7c0d32b48a58fc724be746 100644 (file)
@@ -167,7 +167,7 @@ dissect_gssapi_work(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
         * We need this later, so lets get it now ...
         */
 
-       conversation = find_conversation(&pinfo->src, &pinfo->dst,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                         pinfo->ptype, pinfo->srcport,
                                         pinfo->destport, 0);
 
@@ -334,7 +334,7 @@ dissect_gssapi_work(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                 */
 
                if (!conversation) { /* Create one */
-                 conversation = conversation_new(&pinfo->src,
+                 conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                                  &pinfo->dst, 
                                                  pinfo->ptype, 
                                                  pinfo->srcport, 
index bd09350bccb50b2f02411d2f2e13d26fc38e8825..ac79a8f94ae5ba9c589280dcb6ea1b61140e04c6 100644 (file)
@@ -1,6 +1,6 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
-/* ./packet-h225.c                                                            */
+/* .\packet-h225.c                                                            */
 /* ../../tools/asn2eth.py -X -e -p h225 -c h225.cnf -s packet-h225-template h225.asn */
 
 /* Input file: packet-h225-template.c */
@@ -171,7 +171,7 @@ static int hf_h225_serviceControl_item = -1;      /* ServiceControlSession */
 static int hf_h225_capacity = -1;                 /* CallCapacity */
 static int hf_h225_featureSet = -1;               /* FeatureSet */
 static int hf_h225_conferenceID = -1;             /* ConferenceIdentifier */
-static int hf_h225_language = -1;                 /* T_language */
+static int hf_h225_language = -1;                 /* Language */
 static int hf_h225_language_item = -1;            /* IA5String_SIZE_1_32 */
 static int hf_h225_connectedAddress = -1;         /* SEQUENCE_OF_AliasAddress */
 static int hf_h225_connectedAddress_item = -1;    /* AliasAddress */
@@ -234,7 +234,6 @@ static int hf_h225_connectionParameters = -1;     /* T_connectionParameters */
 static int hf_h225_connectionType = -1;           /* ScnConnectionType */
 static int hf_h225_numberOfScnConnections = -1;   /* INTEGER_0_65535 */
 static int hf_h225_connectionAggregation = -1;    /* ScnConnectionAggregation */
-static int hf_h225_language1 = -1;                /* T_language1 */
 static int hf_h225_symmetricOperationRequired = -1;  /* NULL */
 static int hf_h225_desiredProtocols = -1;         /* SEQUENCE_OF_SupportedProtocols */
 static int hf_h225_desiredProtocols_item = -1;    /* SupportedProtocols */
@@ -758,7 +757,6 @@ static int hf_h225_noControl = -1;                /* NULL */
 static int hf_h225_irrFrequency = -1;             /* INTEGER_1_65535 */
 static int hf_h225_destinationType = -1;          /* EndpointType */
 static int hf_h225_uuiesRequested = -1;           /* UUIEsRequested */
-static int hf_h225_language2 = -1;                /* T_language2 */
 static int hf_h225_supportedProtocols = -1;       /* SEQUENCE_OF_SupportedProtocols */
 static int hf_h225_supportedProtocols_item = -1;  /* SupportedProtocols */
 static int hf_h225_modifiedSrcInfo = -1;          /* SEQUENCE_OF_AliasAddress */
@@ -885,7 +883,7 @@ static gint ett_h225_SEQUENCE_OF_AliasAddress = -1;
 static gint ett_h225_SEQUENCE_OF_ServiceControlSession = -1;
 static gint ett_h225_CallProceeding_UUIE = -1;
 static gint ett_h225_Connect_UUIE = -1;
-static gint ett_h225_T_language = -1;
+static gint ett_h225_Language = -1;
 static gint ett_h225_Information_UUIE = -1;
 static gint ett_h225_ReleaseComplete_UUIE = -1;
 static gint ett_h225_ReleaseCompleteReason = -1;
@@ -894,7 +892,6 @@ static gint ett_h225_SEQUENCE_OF_CallReferenceValue = -1;
 static gint ett_h225_T_conferenceGoal = -1;
 static gint ett_h225_SEQUENCE_OF_H245Security = -1;
 static gint ett_h225_T_connectionParameters = -1;
-static gint ett_h225_T_language1 = -1;
 static gint ett_h225_SEQUENCE_OF_SupportedProtocols = -1;
 static gint ett_h225_SEQUENCE_OF_FeatureDescriptor = -1;
 static gint ett_h225_SEQUENCE_OF_ExtendedAliasAddress = -1;
@@ -1059,7 +1056,6 @@ static gint ett_h225_CallType = -1;
 static gint ett_h225_CallModel = -1;
 static gint ett_h225_TransportQOS = -1;
 static gint ett_h225_AdmissionConfirm = -1;
-static gint ett_h225_T_language2 = -1;
 static gint ett_h225_UUIEsRequested = -1;
 static gint ett_h225_AdmissionReject = -1;
 static gint ett_h225_AdmissionRejectReason = -1;
@@ -2224,9 +2220,9 @@ dissect_h225_H245TransportAddress(tvbuff_t *tvb, int offset, packet_info *pinfo
                src_addr.len=4;
                src_addr.data=(const guint8 *)&ipv4_address;
 
-               conv=find_conversation(&src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
+               conv=find_conversation(pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
                if(!conv){
-                       conv=conversation_new(&src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR2|NO_PORT2);
+                       conv=conversation_new(pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR2|NO_PORT2);
                        conversation_set_dissector(conv, h245_handle);
                }
        }
@@ -4389,14 +4385,14 @@ static int dissect_language_item(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static int
-dissect_h225_T_language1(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_h225_Language(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
   offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
-                                   ett_h225_T_language1, dissect_language_item);
+                                   ett_h225_Language, dissect_language_item);
 
   return offset;
 }
-static int dissect_language1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
-  return dissect_h225_T_language1(tvb, offset, pinfo, tree, hf_h225_language1);
+static int dissect_language(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+  return dissect_h225_Language(tvb, offset, pinfo, tree, hf_h225_language);
 }
 
 
@@ -5319,7 +5315,7 @@ static const per_sequence_t Setup_UUIE_sequence[] = {
   { "multipleCalls"               , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_multipleCalls },
   { "maintainConnection"          , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_maintainConnection },
   { "connectionParameters"        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_connectionParameters },
-  { "language"                    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_language1 },
+  { "language"                    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_language },
   { "presentationIndicator"       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_presentationIndicator },
   { "screeningIndicator"          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_screeningIndicator },
   { "serviceControl"              , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_serviceControl },
@@ -5406,18 +5402,6 @@ static int dissect_callProceeding(tvbuff_t *tvb, int offset, packet_info *pinfo,
   return dissect_h225_CallProceeding_UUIE(tvb, offset, pinfo, tree, hf_h225_callProceeding);
 }
 
-
-static int
-dissect_h225_T_language(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
-                                   ett_h225_T_language, dissect_language_item);
-
-  return offset;
-}
-static int dissect_language(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
-  return dissect_h225_T_language(tvb, offset, pinfo, tree, hf_h225_language);
-}
-
 static const per_sequence_t Connect_UUIE_sequence[] = {
   { "protocolIdentifier"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_protocolIdentifier },
   { "h245Address"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h245Address },
@@ -7704,18 +7688,6 @@ static int dissect_uuiesRequested(tvbuff_t *tvb, int offset, packet_info *pinfo,
   return dissect_h225_UUIEsRequested(tvb, offset, pinfo, tree, hf_h225_uuiesRequested);
 }
 
-
-static int
-dissect_h225_T_language2(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
-                                   ett_h225_T_language2, dissect_language_item);
-
-  return offset;
-}
-static int dissect_language2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
-  return dissect_h225_T_language2(tvb, offset, pinfo, tree, hf_h225_language2);
-}
-
 static const per_sequence_t AdmissionConfirm_sequence[] = {
   { "requestSeqNum"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_requestSeqNum },
   { "bandWidth"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_bandWidth },
@@ -7734,7 +7706,7 @@ static const per_sequence_t AdmissionConfirm_sequence[] = {
   { "transportQOS"                , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_transportQOS },
   { "willRespondToIRR"            , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_willRespondToIRR },
   { "uuiesRequested"              , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_uuiesRequested },
-  { "language"                    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_language2 },
+  { "language"                    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_language },
   { "alternateTransportAddresses" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_alternateTransportAddresses },
   { "useSpecifiedTransport"       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_useSpecifiedTransport },
   { "circuitInfo"                 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_circuitInfo },
@@ -9240,7 +9212,7 @@ void proto_register_h225(void) {
     { &hf_h225_language,
       { "language", "h225.language",
         FT_NONE, BASE_NONE, NULL, 0,
-        "Connect-UUIE/language", HFILL }},
+        "", HFILL }},
     { &hf_h225_language_item,
       { "Item", "h225.language_item",
         FT_STRING, BASE_NONE, NULL, 0,
@@ -9489,10 +9461,6 @@ void proto_register_h225(void) {
       { "connectionAggregation", "h225.connectionAggregation",
         FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionAggregation_vals), 0,
         "Setup-UUIE/connectionParameters/connectionAggregation", HFILL }},
-    { &hf_h225_language1,
-      { "language", "h225.language",
-        FT_NONE, BASE_NONE, NULL, 0,
-        "Setup-UUIE/language", HFILL }},
     { &hf_h225_symmetricOperationRequired,
       { "symmetricOperationRequired", "h225.symmetricOperationRequired",
         FT_NONE, BASE_NONE, NULL, 0,
@@ -11585,10 +11553,6 @@ void proto_register_h225(void) {
       { "uuiesRequested", "h225.uuiesRequested",
         FT_NONE, BASE_NONE, NULL, 0,
         "", HFILL }},
-    { &hf_h225_language2,
-      { "language", "h225.language",
-        FT_NONE, BASE_NONE, NULL, 0,
-        "AdmissionConfirm/language", HFILL }},
     { &hf_h225_supportedProtocols,
       { "supportedProtocols", "h225.supportedProtocols",
         FT_NONE, BASE_NONE, NULL, 0,
@@ -12014,7 +11978,7 @@ void proto_register_h225(void) {
     &ett_h225_SEQUENCE_OF_ServiceControlSession,
     &ett_h225_CallProceeding_UUIE,
     &ett_h225_Connect_UUIE,
-    &ett_h225_T_language,
+    &ett_h225_Language,
     &ett_h225_Information_UUIE,
     &ett_h225_ReleaseComplete_UUIE,
     &ett_h225_ReleaseCompleteReason,
@@ -12023,7 +11987,6 @@ void proto_register_h225(void) {
     &ett_h225_T_conferenceGoal,
     &ett_h225_SEQUENCE_OF_H245Security,
     &ett_h225_T_connectionParameters,
-    &ett_h225_T_language1,
     &ett_h225_SEQUENCE_OF_SupportedProtocols,
     &ett_h225_SEQUENCE_OF_FeatureDescriptor,
     &ett_h225_SEQUENCE_OF_ExtendedAliasAddress,
@@ -12188,7 +12151,6 @@ void proto_register_h225(void) {
     &ett_h225_CallModel,
     &ett_h225_TransportQOS,
     &ett_h225_AdmissionConfirm,
-    &ett_h225_T_language2,
     &ett_h225_UUIEsRequested,
     &ett_h225_AdmissionReject,
     &ett_h225_AdmissionRejectReason,
@@ -12344,13 +12306,13 @@ static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
 
                msg_category = pi->msg_tag / 3;
                if(pi->msg_tag % 3 == 0) {              /* Request Message */
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                                &pinfo->dst, pinfo->ptype, pinfo->srcport,
                                pinfo->destport, 0);
 
                        if (conversation == NULL) {
                                /* It's not part of any conversation - create a new one. */
-                               conversation = conversation_new(&pinfo->src,
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                    &pinfo->dst, pinfo->ptype, pinfo->srcport,
                                    pinfo->destport, 0);
 
@@ -12417,7 +12379,7 @@ static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
                /* end of request message handling*/
                }
                else {                                  /* Confirm or Reject Message */
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                                &pinfo->dst, pinfo->ptype, pinfo->srcport,
                                pinfo->destport, 0);
                        if (conversation != NULL) {
index 68855914bc13db7a071b9c2582d8d451188ff9d3..4315ced88a839a71d2f9671af275dd4151566dfa 100644 (file)
@@ -1,6 +1,6 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
-/* ./packet-h225.h                                                            */
+/* .\packet-h225.h                                                            */
 /* ../../tools/asn2eth.py -X -e -p h225 -c h225.cnf -s packet-h225-template h225.asn */
 
 /* Input file: packet-h225-template.h */
index db3fabeec5fe57efa8a75ba6074bc89456c9a672..0a80d146d83e68f3b9a34e75a0c571f64682de91 100644 (file)
@@ -716,7 +716,7 @@ dissect_spx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                 * Not a system packet - check for retransmissions.
                 */
                if (!pinfo->fd->flags.visited) {
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                            &pinfo->dst, PT_NCP, pinfo->srcport,
                            pinfo->srcport, 0);
                        if (conversation == NULL) {
@@ -724,7 +724,7 @@ dissect_spx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                 * It's not part of any conversation - create
                                 * a new one.
                                 */
-                               conversation = conversation_new(&pinfo->src,
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                    &pinfo->dst, PT_NCP, pinfo->srcport,
                                    pinfo->srcport, 0);
                        }
index 6831c2803c38e33a515aaaa121e4c6af5605aa22..0a5b47214c1344ebd2bb44ad2737de328e31dc13 100644 (file)
@@ -1794,11 +1794,11 @@ dissect_iscsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean chec
        }
 
        /* make sure we have a conversation for this session */
-        conversation = find_conversation (&pinfo->src, &pinfo->dst,
+        conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                           pinfo->ptype, pinfo->srcport,
                                           pinfo->destport, 0);
         if (!conversation) {
-            conversation = conversation_new (&pinfo->src, &pinfo->dst,
+            conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                              pinfo->ptype, pinfo->srcport,
                                              pinfo->destport, 0);
             iscsi_session=g_mem_chunk_alloc(iscsi_sessions);
index e8a38af72163e531b1c24996acaf6419c6d91c79..fc41e4f75fbd1a33ac0a0342e6ba6bdf2f7e4a5c 100644 (file)
@@ -942,19 +942,19 @@ dissect_isns_attr_port(tvbuff_t *tvb, guint offset, proto_tree *parent_tree, int
 
         if ((port_type == ISNS_ESI_PORT) || (port_type == ISNS_SCN_PORT)) {
             if (isudp) {
-                conversation = find_conversation (&pinfo->src, &pinfo->dst, PT_UDP,
+                conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP,
                                                   port, 0, NO_PORT_B);
                 if (conversation == NULL) {
-                    conversation = conversation_new (&pinfo->src, &pinfo->dst,
+                    conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                                      PT_UDP, port, 0, NO_PORT2_FORCE);
                     conversation_set_dissector (conversation, isns_udp_handle);
                 }
             }
             else {
-                conversation = find_conversation (&pinfo->src, &pinfo->dst, PT_TCP,
+                conversation = find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_TCP,
                                                   port, 0, NO_PORT_B);
                 if (conversation == NULL) {
-                    conversation = conversation_new (&pinfo->src, &pinfo->dst,
+                    conversation = conversation_new (pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                                      PT_TCP, port, 0, NO_PORT2_FORCE);
                     conversation_set_dissector (conversation, isns_tcp_handle);
                 }
index ecd2de7678221ef07b6e0ce80cf7ac4a9cac79b1..afa3dfe7d4d7941653111f3fb7d92b56915e7944 100644 (file)
@@ -3044,10 +3044,10 @@ dissect_krb5_KDC_REQ_BODY(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, i
         * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-kerberos-clarifications-07.txt
         */
        if (pinfo->destport == UDP_PORT_KERBEROS && pinfo->ptype == PT_UDP) {
-               conversation = find_conversation(&pinfo->src, &pinfo->dst, PT_UDP,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP,
                        pinfo->srcport, 0, NO_PORT_B);
                if (conversation == NULL) {
-                       conversation = conversation_new(&pinfo->src, &pinfo->dst, PT_UDP,
+                       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP,
                                pinfo->srcport, 0, NO_PORT2);
                        conversation_set_dissector(conversation, kerberos_handle_udp);
                }
index c712a998fca32f29110546edfbed56c91e7e294a..19eb208d18168ec06a9275528a7bb2b3da7410b1 100644 (file)
@@ -2374,12 +2374,12 @@ dissect_ldap_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean i
   /*
    * Do we have a conversation for this connection?
    */
-  conversation = find_conversation(&pinfo->src, &pinfo->dst,
+  conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                    pinfo->ptype, pinfo->srcport,
                                    pinfo->destport, 0);
   if (conversation == NULL) {
     /* We don't yet have a conversation, so create one. */
-    conversation = conversation_new(&pinfo->src, &pinfo->dst,
+    conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                     pinfo->ptype, pinfo->srcport,
                                     pinfo->destport, 0);
   }
index 5571c520322dfd5bb3c7d01d519c30c7941662b6..fdea9d0121af1598649c5c856a081790834e152f 100644 (file)
@@ -2433,10 +2433,10 @@ dissect_mq_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint iProto
                {
                        /* Register this dissector for this conversation */
                        conversation_t  *conversation = NULL;
-                       conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
                        if (conversation == NULL) 
                        {
-                               conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
                        }
                        if (iProto == MQ_XPT_TCP) conversation_set_dissector(conversation, mq_tcp_handle); 
 
index ee8585af4f64a5d6070398f2c521d7afa7e33e0a..c69edf9e687d224de866f05d0018118d6d37aef1 100644 (file)
@@ -203,7 +203,7 @@ static void msproxy_sub_dissector( tvbuff_t *tvb, packet_info *pinfo,
        proto_tree      *msp_tree;
        proto_item      *ti;
 
-       conversation = find_conversation( &pinfo->src, &pinfo->dst,
+       conversation = find_conversation( pinfo->fd->num, &pinfo->src, &pinfo->dst,
                pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
 
        g_assert( conversation);        /* should always find a conversation */
@@ -279,12 +279,12 @@ static void add_msproxy_conversation( packet_info *pinfo,
                return;
        }
 
-       conversation = find_conversation( &pinfo->src,
+       conversation = find_conversation( pinfo->fd->num, &pinfo->src,
                &pinfo->dst, hash_info->proto, hash_info->server_int_port,
                hash_info->clnt_port, 0);
 
        if ( !conversation) {
-               conversation = conversation_new( &pinfo->src, &pinfo->dst,
+               conversation = conversation_new( pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        hash_info->proto, hash_info->server_int_port,
                        hash_info->clnt_port, 0);
        }
@@ -1099,11 +1099,11 @@ static void dissect_msproxy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        if (check_col(pinfo->cinfo, COL_INFO))
                col_clear(pinfo->cinfo, COL_INFO);
 
-       conversation = find_conversation( &pinfo->src, &pinfo->dst,
+       conversation = find_conversation( pinfo->fd->num, &pinfo->src, &pinfo->dst,
                pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
 
        if ( !conversation) {
-               conversation = conversation_new( &pinfo->src, &pinfo->dst,
+               conversation = conversation_new( pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
        hash_info = conversation_get_proto_data(conversation, proto_msproxy);
index b148dd24af25dec48e7e81ffb3803fb344d9686e..73f45389bf7f014d6459a4c9a7f2551b3d68f724 100644 (file)
@@ -251,12 +251,12 @@ dissect_mysql_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        gboolean        is_response;
 
-       conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
        if (!conversation) {
                /* create a new conversation */
-               conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                pinfo->srcport, pinfo->destport, 0);
        }
 
index 0bf817fe49572e9c75e90de1ac1a29537371a12e..e3d453b9fdca4a9d026046d469958e2c779db50a 100644 (file)
@@ -355,7 +355,7 @@ dissect_ncp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                 * packets we will be able to determine if we need 
                 * to also dissect with a signature.
                 */
-               conversation = find_conversation(&pinfo->src, &pinfo->dst,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                    PT_NCP, (guint32) pinfo->srcport, (guint32) pinfo->destport,
                    0);
                if ((ncpiph.length & 0x80000000) ||
@@ -382,7 +382,7 @@ dissect_ncp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                                        /* It's not part of any conversation
                                         * - create a new one.
                                         */
-                                       conversation = conversation_new(&pinfo->src,
+                                       conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                            &pinfo->dst, PT_NCP,
                                            (guint32) pinfo->srcport,
                                            (guint32) pinfo->destport, 0);
@@ -443,7 +443,7 @@ dissect_ncp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                                        /* It's not part of any conversation
                                         * - create a new one.
                                         */
-                                       conversation = conversation_new(&pinfo->src,
+                                       conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                            &pinfo->dst, PT_NCP,
                                            (guint32) pinfo->srcport,
                                            (guint32) pinfo->destport, 0);
index dc85c8f57abf4f96d16b11243d5422a0d6b4afa0..f2373dbfd4a7651da714f3e53617b3b52daa8ba5 100644 (file)
@@ -4129,7 +4129,7 @@ nds_defrag(tvbuff_t *tvb, packet_info *pinfo, guint16 nw_connection, guint8 sequ
     /* Has this already been dissected? */
     if (!pinfo->fd->flags.visited) {
        /* Find the conversation whence the request would have come. */
-               conversation = find_conversation(&pinfo->src, &pinfo->dst,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                            PT_NCP, nw_connection, nw_connection, 0);
                if (conversation != NULL) {
                        /* find the record telling us the request made that caused
@@ -4438,12 +4438,12 @@ dissect_ncp_request(tvbuff_t *tvb, packet_info *pinfo,
                   to have all packets over the same connection treated
                   as being part of a single conversation so that we can
                   let the user select that conversation to be displayed.) */
-               conversation = find_conversation(&pinfo->src, &pinfo->dst,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                    PT_NCP, nw_connection, nw_connection, 0);
 
                if (conversation == NULL) {
                        /* It's not part of any conversation - create a new one. */
-                       conversation = conversation_new(&pinfo->src, &pinfo->dst,
+                       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                            PT_NCP, nw_connection, nw_connection, 0);
                }
                request_value = ncp_hash_insert(conversation, sequence, ncp_rec);
@@ -4596,7 +4596,7 @@ dissect_ncp_request(tvbuff_t *tvb, packet_info *pinfo,
                         
                         if (!request_value)
                         {
-                               conversation = find_conversation(&pinfo->src, &pinfo->dst,
+                               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                    PT_NCP, nw_connection, nw_connection, 0);
                                if (conversation != NULL) {
                                        /* find the record telling us the request made that caused
@@ -4736,7 +4736,7 @@ dissect_ncp_reply(tvbuff_t *tvb, packet_info *pinfo,
        
        if (!pinfo->fd->flags.visited) {
                /* Find the conversation whence the request would have come. */
-               conversation = find_conversation(&pinfo->src, &pinfo->dst,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                            PT_NCP, nw_connection, nw_connection, 0);
                if (conversation != NULL) {
                        /* find the record telling us the request made that caused
@@ -8198,11 +8198,11 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
            as being part of a single conversation so that we can
            let the user select that conversation to be displayed.) */
 
-        conversation = find_conversation(&pinfo->src, &pinfo->dst,
+        conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                    PT_NCP, nw_connection, nw_connection, 0);
                if (conversation == NULL) {
                        /* It's not part of any conversation - create a new one. */
-                       conversation = conversation_new(&pinfo->src, &pinfo->dst,
+                       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                            PT_NCP, nw_connection, nw_connection, 0);
        }
                 
@@ -8471,13 +8471,13 @@ dissect_ping_req(tvbuff_t *tvb, packet_info *pinfo,
                as being part of a single conversation so that we can
                let the user select that conversation to be displayed.) */
                 
-                       conversation = find_conversation(&pinfo->src, &pinfo->dst,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                            PT_NCP, nw_connection, nw_connection, 0);
         
                        if (conversation == NULL) 
                 {
                                /* It's not part of any conversation - create a new one. */
-                               conversation = conversation_new(&pinfo->src, &pinfo->dst,
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                    PT_NCP, nw_connection, nw_connection, 0);
                        }
                 
index 7e80d2a314203a220fb680292abdaf86a7e984e4..535b9d11ec996cb395b17827a2d75d0da4fd091c 100644 (file)
@@ -1166,10 +1166,10 @@ dissect_execute_cdb_request(tvbuff_t *tvb, int offset, packet_info *pinfo,
         * sequence number in requests and the reply sequence
         * number in replies to identify SCSI tasks.
         */
-       conversation = find_conversation(&pinfo->src, &pinfo->dst,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
            pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        if (conversation == NULL) {
-               conversation = conversation_new(&pinfo->src, &pinfo->dst,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                    pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
        task_key.conv_id = conversation->index;
@@ -1255,7 +1255,7 @@ dissect_execute_cdb_reply(tvbuff_t *tvb, int offset, packet_info *pinfo,
         * sequence number in requests and the reply sequence
         * number in replies to identify SCSI tasks.
         */
-       conversation = find_conversation(&pinfo->src, &pinfo->dst,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
            pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        if (conversation != NULL) {
                task_key.conv_id = conversation->index;
index 67a21fe96c48e6e81fe429cc730470d378bf4819..a35961ebbf122d3b61d844dadf1f57b10d33e974 100644 (file)
@@ -3818,13 +3818,13 @@ ndps_defrag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     if (!pinfo->fd->flags.visited) 
     {
         /* Lets see if this is a new conversation */
-        conversation = find_conversation(&pinfo->src, &pinfo->dst,
+        conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
             PT_NCP, (guint32) pinfo->srcport, (guint32) pinfo->srcport, 0);
     
         if (conversation == NULL) 
         {
             /* It's not part of any conversation - create a new one. */
-            conversation = conversation_new(&pinfo->src, &pinfo->dst,
+            conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                 PT_NCP, (guint32) pinfo->srcport, (guint32) pinfo->srcport, 0);
             /* Create new request value hash */
             request_value = ndps_hash_insert(conversation, (guint32) pinfo->srcport);
@@ -4015,13 +4015,13 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
         as being part of a single conversation so that we can
         let the user select that conversation to be displayed.) */
         
-        conversation = find_conversation(&pinfo->src, &pinfo->dst,
+        conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
             PT_NCP, (guint32) pinfo->srcport, (guint32) pinfo->srcport, 0);
 
         if (conversation == NULL) 
         {
             /* It's not part of any conversation - create a new one. */
-            conversation = conversation_new(&pinfo->src, &pinfo->dst,
+            conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                 PT_NCP, (guint32) pinfo->srcport, (guint32) pinfo->srcport, 0);
         }
 
@@ -6247,7 +6247,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
     
     if (!pinfo->fd->flags.visited) {
         /* Find the conversation whence the request would have come. */
-        conversation = find_conversation(&pinfo->src, &pinfo->dst,
+        conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
             PT_NCP, (guint32) pinfo->destport, (guint32) pinfo->destport, 0);
         if (conversation != NULL) {
             /* find the record telling us the request made that caused
index 0dedbb50df2e171ede51cdef410cfec445476652..1b5790c4121fa927667cea0434e43da40c0a3212 100644 (file)
@@ -926,11 +926,11 @@ dissect_ntlmssp_challenge (tvbuff_t *tvb, packet_info *pinfo, int offset,
    * Store the flags and the RC4 state information with the conversation,
    * as they're needed in order to dissect subsequent messages.
    */
-  conversation = find_conversation(&pinfo->src, &pinfo->dst,
+  conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                   pinfo->ptype, pinfo->srcport,
                                   pinfo->destport, 0);
   if (!conversation) { /* Create one */
-    conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype, 
+    conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, 
                                    pinfo->srcport, pinfo->destport, 0);
   }
 
@@ -1019,7 +1019,7 @@ dissect_ntlmssp_auth (tvbuff_t *tvb, packet_info *pinfo, int offset,
      * it means this is the first time we've dissected this frame, so
      * we should give it flag info.
      */
-    conversation = find_conversation(&pinfo->src, &pinfo->dst,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                     pinfo->ptype, pinfo->srcport,
                                     pinfo->destport, 0);
     if (conversation != NULL) {
@@ -1203,7 +1203,7 @@ get_encrypted_state(packet_info *pinfo, int cryptpeer)
   conversation_t *conversation;
   ntlmssp_info *conv_ntlmssp_info;
 
-  conversation = find_conversation(&pinfo->src, &pinfo->dst,
+  conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                   pinfo->ptype, pinfo->srcport,
                                   pinfo->destport, 0);
   if (conversation == NULL) {
@@ -1258,7 +1258,7 @@ decrypt_verifier(tvbuff_t *tvb, int offset, guint32 encrypted_block_length,
     return;
   }
   if (!packet_ntlmssp_info->verifier_decrypted) {
-    conversation = find_conversation(&pinfo->src, &pinfo->dst,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                     pinfo->ptype, pinfo->srcport,
                                     pinfo->destport, 0);
     if (conversation == NULL) {
@@ -1437,7 +1437,7 @@ dissect_ntlmssp_encrypted_payload(tvbuff_t *tvb, int offset,
   
   if (!packet_ntlmssp_info->payload_decrypted) {
     /* Pull the challenge info from the conversation */
-    conversation = find_conversation(&pinfo->src, &pinfo->dst,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                     pinfo->ptype, pinfo->srcport,
                                     pinfo->destport, 0);
     if (conversation == NULL) {
index 3dc31d7518c95f442054d3e25ab0ce84eef1a8ed..ee3727e291f4e4a4a9bdfc2f3995c46b91099218 100644 (file)
@@ -321,10 +321,10 @@ dissect_pgsql(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     first_message = TRUE;
 
     /* We don't use conversation data yet, but... */
-    cv = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+    cv = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                            pinfo->srcport, pinfo->destport, 0);
     if (!cv) {
-        cv = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+        cv = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                               pinfo->srcport, pinfo->destport, 0);
     }
 
index 4834a5842b43ec35dbd16e7f12fdfafab8f7b830..487296497e981a4b637e9817fb00ccb8a79642de 100644 (file)
@@ -123,9 +123,9 @@ dissect_getport_reply(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
                        port=tvb_get_ntohl(tvb, offset);
                        if(port){
                                conversation_t *conv;
-                               conv=find_conversation(&pinfo->src, &pinfo->dst, (port_type)rpc_call->private_data, port, 0, NO_ADDR_B|NO_PORT_B);
+                               conv=find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, (port_type)rpc_call->private_data, port, 0, NO_ADDR_B|NO_PORT_B);
                                if(!conv){
-                                       conv=conversation_new(&pinfo->src, &pinfo->dst, (port_type)rpc_call->private_data, port, 0, NO_ADDR2|NO_PORT2);
+                                       conv=conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, (port_type)rpc_call->private_data, port, 0, NO_ADDR2|NO_PORT2);
                                }
                                conversation_set_dissector(conv, rpc_handle);
                        }
index f9a47237043e92a0bf3acccee1602c5dcf57b7e3..51fbb5751f44419a6d8fa87d62631c51793a8d44 100644 (file)
@@ -220,7 +220,7 @@ dissect_quake_CCREP_ACCEPT
        conversation_t *c;
 
        port = tvb_get_letohl(tvb, 0);
-       c = conversation_new( &pinfo->src, &pinfo->dst, PT_UDP, port,
+       c = conversation_new( pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP, port,
            pinfo->destport, 0);
        if (c) {
                conversation_set_dissector(c, quake_handle);
index 29e44d29a202bd39982aa50441f3c838bbf43917..1a460fd69c8faf46587544dfdc4e03fb35534eb7 100644 (file)
@@ -338,11 +338,11 @@ dissect_rlogin(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        gint ti_offset;
 
                                                /* Lookup this connection*/
-       conversation = find_conversation( &pinfo->src, &pinfo->dst,
+       conversation = find_conversation( pinfo->fd->num, &pinfo->src, &pinfo->dst,
                pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
 
        if ( !conversation) {
-               conversation = conversation_new( &pinfo->src, &pinfo->dst,
+               conversation = conversation_new( pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
        hash_info = conversation_get_proto_data(conversation, proto_rlogin);
index 6ecda01d96ae9f65097c8a44f089c5dec4498787..c6c56d0d50f230557cde2625e53df9202fd9d6f2 100644 (file)
@@ -1391,7 +1391,7 @@ dissect_rpc_indir_call(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                   NFS client *cough) might send retransmissions from a
                   different port from the original request. */
                if (pinfo->ptype == PT_TCP) {
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                            &pinfo->dst, pinfo->ptype, pinfo->srcport,
                            pinfo->destport, 0);
                } else {
@@ -1400,7 +1400,7 @@ dissect_rpc_indir_call(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                         * pointer for the second address argument even
                         * if you use NO_ADDR_B.
                         */
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                            &null_address, pinfo->ptype, pinfo->destport,
                            0, NO_ADDR_B|NO_PORT_B);
                }
@@ -1412,11 +1412,11 @@ dissect_rpc_indir_call(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                           created a conversation for it in the RPC
                           dissector. */
                        if (pinfo->ptype == PT_TCP) {
-                               conversation = conversation_new(&pinfo->src,
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                    &pinfo->dst, pinfo->ptype, pinfo->srcport,
                                    pinfo->destport, 0);
                        } else {
-                               conversation = conversation_new(&pinfo->src,
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                    &null_address, pinfo->ptype, pinfo->destport,
                                    0, NO_ADDR2|NO_PORT2);
                        }
@@ -1528,7 +1528,7 @@ dissect_rpc_indir_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
           NFS client *cough) might send retransmissions from a
           different port from the original request. */
        if (pinfo->ptype == PT_TCP) {
-               conversation = find_conversation(&pinfo->src, &pinfo->dst,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                    pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        } else {
                /*
@@ -1536,7 +1536,7 @@ dissect_rpc_indir_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                 * pointer for the second address argument even
                 * if you use NO_ADDR_B.
                 */
-               conversation = find_conversation(&pinfo->dst, &null_address,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->dst, &null_address,
                    pinfo->ptype, pinfo->srcport, 0, NO_ADDR_B|NO_PORT_B);
        }
        if (conversation == NULL) {
@@ -1804,7 +1804,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                   NFS client *cough) might send retransmissions from a
                   different port from the original request. */
                if (pinfo->ptype == PT_TCP) {
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                            &pinfo->dst, pinfo->ptype, pinfo->srcport,
                            pinfo->destport, 0);
                } else {
@@ -1813,7 +1813,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                         * pointer for the second address argument even
                         * if you use NO_ADDR_B.
                         */
-                       conversation = find_conversation(&pinfo->dst,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->dst,
                            &null_address, pinfo->ptype, pinfo->srcport,
                            0, NO_ADDR_B|NO_PORT_B);
                }
@@ -2039,7 +2039,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                   NFS client *cough) might send retransmissions from a
                   different port from the original request. */
                if (pinfo->ptype == PT_TCP) {
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                            &pinfo->dst, pinfo->ptype, pinfo->srcport,
                            pinfo->destport, 0);
                } else {
@@ -2048,7 +2048,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                         * pointer for the second address argument even
                         * if you use NO_ADDR_B.
                         */
-                       conversation = find_conversation(&pinfo->src,
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
                            &null_address, pinfo->ptype, pinfo->destport,
                            0, NO_ADDR_B|NO_PORT_B);
                }
@@ -2056,11 +2056,11 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                        /* It's not part of any conversation - create a new
                           one. */
                        if (pinfo->ptype == PT_TCP) {
-                               conversation = conversation_new(&pinfo->src,
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                    &pinfo->dst, pinfo->ptype, pinfo->srcport,
                                    pinfo->destport, 0);
                        } else {
-                               conversation = conversation_new(&pinfo->src,
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                                    &null_address, pinfo->ptype, pinfo->destport,
                                    0, NO_ADDR2|NO_PORT2);
                        }
@@ -2920,13 +2920,13 @@ dissect_rpc_fragment(tvbuff_t *tvb, int offset, packet_info *pinfo,
         * one, create it.  We know this is running over TCP, so the
         * conversation should not wildcard either address or port.
         */
-       conversation = find_conversation(&pinfo->src, &pinfo->dst,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
            pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        if (conversation == NULL) {
                /*
                 * It's not part of any conversation - create a new one.
                 */
-               conversation = conversation_new(&pinfo->src, &pinfo->dst,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                    pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
        old_rfk.conv_id = conversation->index;
index 3fe9210cc7dbb1ba466d047832f6cc8126942861..96b81c28745f4c056e9200ceeb848be3761435f1 100644 (file)
@@ -106,10 +106,10 @@ dissect_rsync_encap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
     if (check_col(pinfo->cinfo, COL_INFO))
         col_clear(pinfo->cinfo, COL_INFO);
 
-    conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                     pinfo->srcport, pinfo->destport, 0);
     if (conversation == NULL) {
-       conversation = conversation_new(&pinfo->src, &pinfo->dst,
+       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                        pinfo->ptype, pinfo->srcport,
                                        pinfo->destport, 0);
     }
index 963423f3af50c65bbd042f8fdf27b6fc7c1b3f97..5cc05ce40da51661b38898782ea1a8f755e8fd1a 100644 (file)
@@ -284,14 +284,14 @@ void rtcp_add_address( packet_info *pinfo,
         * Check if the ip address and port combination is not
         * already registered as a conversation.
         */
-       p_conv = find_conversation( addr, &null_addr, PT_UDP, port, other_port,
+       p_conv = find_conversation( pinfo->fd->num, addr, &null_addr, PT_UDP, port, other_port,
                                    NO_ADDR_B | (!other_port ? NO_PORT_B : 0));
 
        /*
         * If not, create a new conversation.
         */
        if ( ! p_conv ) {
-               p_conv = conversation_new( addr, &null_addr, PT_UDP,
+               p_conv = conversation_new( pinfo->fd->num, addr, &null_addr, PT_UDP,
                                           (guint32)port, (guint32)other_port,
                                           NO_ADDR2 | (!other_port ? NO_PORT2 : 0));
        }
@@ -867,7 +867,7 @@ void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        if (!p_conv_data)
        {
                /* First time, get info from conversation */
-               p_conv = find_conversation(&pinfo->net_dst, &pinfo->net_src,
+               p_conv = find_conversation(pinfo->fd->num, &pinfo->net_dst, &pinfo->net_src,
                                           pinfo->ptype,
                                           pinfo->destport, pinfo->srcport, NO_ADDR_B);
 
@@ -950,14 +950,14 @@ static void remember_outgoing_sr(packet_info *pinfo, long lsr)
        /* First time, get info from conversation.
           Even though we think of this as an outgoing packet being sent,
           we store the time as being received by the destination. */
-       p_conv = find_conversation(&pinfo->net_dst, &pinfo->net_src,
+       p_conv = find_conversation(pinfo->fd->num, &pinfo->net_dst, &pinfo->net_src,
                                   pinfo->ptype,
                                   pinfo->destport, pinfo->srcport, NO_ADDR_B);
 
        /* If the conversation doesn't exist, create it now. */
        if (!p_conv)
        {
-               p_conv = conversation_new(&pinfo->net_dst, &pinfo->net_src, PT_UDP,
+               p_conv = conversation_new(pinfo->fd->num, &pinfo->net_dst, &pinfo->net_src, PT_UDP,
                                          pinfo->destport, pinfo->srcport,
                                          NO_ADDR2);
                if (!p_conv)
@@ -1056,7 +1056,7 @@ static void calculate_roundtrip_delay(tvbuff_t *tvb, packet_info *pinfo,
        /********************************************************************/
        /* Look for captured timestamp of last SR in conversation of sender */
        /* of this packet                                                   */
-       p_conv = find_conversation(&pinfo->net_src, &pinfo->net_dst,
+       p_conv = find_conversation(pinfo->fd->num, &pinfo->net_src, &pinfo->net_dst,
                                   pinfo->ptype,
                                   pinfo->srcport, pinfo->destport, NO_ADDR_B);
        if (!p_conv)
index 3d12e5ca35d55d0c9be5ed4199a5ba665c74025e..c53b09bc3660903e5c88c7bde9e856ca7978fc88 100644 (file)
@@ -248,14 +248,14 @@ void rtp_add_address(packet_info *pinfo,
         * Check if the ip address and port combination is not
         * already registered as a conversation.
         */
-       p_conv = find_conversation( addr, &null_addr, PT_UDP, port, other_port,
+       p_conv = find_conversation( setup_frame_number, addr, &null_addr, PT_UDP, port, other_port,
                                 NO_ADDR_B | (!other_port ? NO_PORT_B : 0));
 
        /*
         * If not, create a new conversation.
         */
-       if ( ! p_conv ) {
-               p_conv = conversation_new( addr, &null_addr, PT_UDP,
+       if ( !p_conv || p_conv->setup_frame != setup_frame_number) {
+               p_conv = conversation_new( setup_frame_number, addr, &null_addr, PT_UDP,
                                           (guint32)port, (guint32)other_port,
                                                                   NO_ADDR2 | (!other_port ? NO_PORT2 : 0));
        }
@@ -665,7 +665,7 @@ void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        if (!p_conv_data)
        {
                /* First time, get info from conversation */
-               p_conv = find_conversation(&pinfo->net_dst, &pinfo->net_src,
+               p_conv = find_conversation(pinfo->fd->num, &pinfo->net_dst, &pinfo->net_src,
                                    pinfo->ptype,
                                    pinfo->destport, pinfo->srcport, NO_ADDR_B);
                if (p_conv)
index a6181762b09f7535e073bbd534f957c4942a1b24..78b7d38e0a5d8fdcbaaeef802d3688399ebe3203 100644 (file)
@@ -233,7 +233,7 @@ dissect_rtspinterleaved(tvbuff_t *tvb, int offset, packet_info *pinfo,
                length_remaining = rf_len;
        next_tvb = tvb_new_subset(tvb, offset, length_remaining, rf_len);
 
-       conv = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conv = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
        if (conv &&
@@ -410,10 +410,10 @@ rtsp_create_conversation(packet_info *pinfo, const guchar *line_begin,
                                pinfo->fd->num);
                        return;
                }
-               conv = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+               conv = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                        pinfo->srcport, pinfo->destport, 0);
                if (!conv) {
-                       conv = conversation_new(&pinfo->src, &pinfo->dst,
+                       conv = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                pinfo->ptype, pinfo->srcport, pinfo->destport,
                                0);
                }
index 9afa2e6af54bbd40b38e39f66bf8897fc35f354e..904db94c2e056831b21c6075ba49d4024da1e92a 100644 (file)
@@ -214,7 +214,8 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        guint32         port=0;
        gboolean        is_rtp=FALSE;
-       gboolean        is_t38=FALSE;
+       gboolean        is_t38=FALSE;
+       gboolean        set_rtp=FALSE;
        gboolean        is_ipv4_addr=FALSE;
        gboolean        is_ipv6_addr=FALSE;
     guint32    ipaddr[4];
@@ -410,12 +411,13 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                }
                    }
            }
-           /* Add rtp and rtcp conversation, if available */
+           /* Add rtp and rtcp conversation, if available (overrides t38 if conversation already set) */
            if((!pinfo->fd->flags.visited) && port!=0 && is_rtp && (is_ipv4_addr || is_ipv6_addr)){
                    src_addr.data=(char *)&ipaddr;
                    if(rtp_handle){
                                rtp_add_address(pinfo, &src_addr, port, 0,
                        "SDP", pinfo->fd->num);
+                               set_rtp = TRUE;
                    }
                    if(rtcp_handle){
                                port++;
@@ -424,8 +426,8 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                    }
            }
                        
-           /* Add t38 conversation, if available */
-           if((!pinfo->fd->flags.visited) && port!=0 && is_t38 && is_ipv4_addr){
+           /* Add t38 conversation, if available and only if no rtp */
+           if((!pinfo->fd->flags.visited) && port!=0 && !set_rtp && is_t38 && is_ipv4_addr){
                     src_addr.data=(char *)&ipaddr;
                     if(t38_handle){
                                 t38_add_address(pinfo, &src_addr, port, 0, "SDP", pinfo->fd->num);
index 2f77659a17de1ea6f205add46cd42826e9ddf0e1..a9e60e1d4959180fdd260b125e2aab4236f1dc75 100644 (file)
@@ -14594,11 +14594,11 @@ dissect_smb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 
        /* find which conversation we are part of and get the tables for that
           conversation*/
-       conversation = find_conversation(&pinfo->src, &pinfo->dst,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                 pinfo->ptype,  pinfo->srcport, pinfo->destport, 0);
        if(!conversation){
                /* OK this is a new conversation so lets create it */
-               conversation = conversation_new(&pinfo->src, &pinfo->dst,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
        /* see if we already have the smb data for this conversation */
index a2de5f0c9dda84d01237b5db0585087708da575a..f3f5503d11e88839b2340142d914263a29c7b447 100644 (file)
@@ -177,10 +177,10 @@ dissect_smtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
     if (!frame_data) {
 
-      conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+      conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                       pinfo->srcport, pinfo->destport, 0);
       if (conversation == NULL) { /* No conversation, create one */
-       conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                        pinfo->srcport, pinfo->destport, 0);
 
       }
index 09eeaa5559c36ecc85b9b9ac8bae9a4f432bad2c..e63a930abd8f90aa7395f73297f4d3231f59be22 100644 (file)
@@ -2324,10 +2324,10 @@ dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         * wildcarded, and give it the SNMP dissector as a dissector.
         */
        if (pinfo->destport == UDP_PORT_SNMP) {
-         conversation = find_conversation(&pinfo->src, &pinfo->dst, PT_UDP,
+         conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP,
                                           pinfo->srcport, 0, NO_PORT_B);
          if (conversation == NULL) {
-           conversation = conversation_new(&pinfo->src, &pinfo->dst, PT_UDP,
+           conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP,
                                            pinfo->srcport, 0, NO_PORT2);
            conversation_set_dissector(conversation, snmp_handle);
          }
index e930d753a1263b762b85c79b0d0c3248f8453497..3d7e04ffe9c063f31d342590069d24ffb38aed80 100644 (file)
@@ -376,7 +376,7 @@ socks_udp_dissector(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
        proto_tree      *socks_tree;
        proto_item      *ti;
 
-       conversation = find_conversation( &pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = find_conversation( pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
        g_assert( conversation);        /* should always find a conversation */
@@ -435,7 +435,7 @@ socks_udp_dissector(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
 static void
 new_udp_conversation( socks_hash_entry_t *hash_info, packet_info *pinfo){
 
-       conversation_t *conversation = conversation_new( &pinfo->src, &pinfo->dst,  PT_UDP,
+       conversation_t *conversation = conversation_new( pinfo->fd->num, &pinfo->src, &pinfo->dst,  PT_UDP,
                        hash_info->udp_port, hash_info->port, 0);
 
        g_assert( conversation);
@@ -1000,11 +1000,11 @@ dissect_socks(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
                return;
        }
 
-       conversation = find_conversation( &pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = find_conversation( pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
        if ( !conversation){
-               conversation = conversation_new( &pinfo->src, &pinfo->dst, pinfo->ptype,
+               conversation = conversation_new( pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                        pinfo->srcport, pinfo->destport, 0);
        }
        hash_info = conversation_get_proto_data(conversation,proto_socks);
index 70eace5ff2e55610c2528f6cb9416c2b52fdc930..28255daa0ce939c9cc45c0657960f69debbe0156 100644 (file)
@@ -1082,7 +1082,7 @@ dissect_spnego_supportedMech(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
         * could override that. :-(
         */
 
-       if ((conversation = find_conversation(&pinfo->src, &pinfo->dst,
+       if ((conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                             pinfo->ptype, pinfo->srcport,
                                             pinfo->destport, 0))) {
 
@@ -1294,7 +1294,7 @@ dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
             * If we have a conversation, try to get the handle,
             * and if we get one, attach it to the frame.
             */
-           conversation = find_conversation(&pinfo->src, &pinfo->dst,
+           conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                             pinfo->ptype, pinfo->srcport,
                                             pinfo->destport, 0);
 
@@ -1427,7 +1427,7 @@ dissect_spnego_wrap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
             * If we have a conversation, try to get the handle,
             * and if we get one, attach it to the frame.
             */
-           conversation = find_conversation(&pinfo->src, &pinfo->dst,
+           conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                             pinfo->ptype, pinfo->srcport,
                                             pinfo->destport, 0);
 
index 682a6683b1521233eff8b5b3842b66b80af90f50..9de167baa0e82a2977d06c020a4549fbbbeb7d43 100644 (file)
@@ -227,12 +227,12 @@ dissect_ssh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        is_newdata = FALSE;
        this_data = p_get_proto_data(pinfo->fd, proto_ssh);
 
-       conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                pinfo->srcport, pinfo->destport, 0);
 
        if (!conversation) {
                /* create a new conversation */
-               conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                        pinfo->srcport, pinfo->destport, 0);
        }
 
index f1d0dc1605447f9190ec147952e46c50fa9c1f4e..3597308db51ed86698b7fa1a5142571a16f61656 100644 (file)
@@ -843,12 +843,12 @@ dissect_ssl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
      *       the conv_version, must set the copy in the conversation
      *       in addition to conv_version
      */
-    conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                      pinfo->srcport, pinfo->destport, 0);
     if (!conversation)
     {
         /* create a new conversation */
-        conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+        conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                         pinfo->srcport, pinfo->destport, 0);
     }
     conv_data = conversation_get_proto_data(conversation, proto_ssl);
@@ -2841,13 +2841,13 @@ ssl_set_conv_version(packet_info *pinfo, guint version)
         return;
     }
 
-    conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+    conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                      pinfo->srcport, pinfo->destport, 0);
 
     if (conversation == NULL)
     {
         /* create a new conversation */
-        conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype,
+        conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
                                         pinfo->srcport, pinfo->destport, 0);
     }
 
index b7d05daa2a63f80cb7ddf709154baf7dd1696072..851c3327b08b47f3c19230a370fa34d0d41cf501 100644 (file)
@@ -199,14 +199,14 @@ void t38_add_address(packet_info *pinfo,
          * Check if the ip address and port combination is not
          * already registered as a conversation.
          */
-        p_conv = find_conversation( addr, &null_addr, PT_UDP, port, other_port,
+        p_conv = find_conversation( setup_frame_number, addr, &null_addr, PT_UDP, port, other_port,
                                 NO_ADDR_B | (!other_port ? NO_PORT_B : 0));
 
         /*
          * If not, create a new conversation.
          */
-        if ( ! p_conv ) {
-                p_conv = conversation_new( addr, &null_addr, PT_UDP,
+        if ( !p_conv || p_conv->setup_frame != setup_frame_number) {
+                p_conv = conversation_new( setup_frame_number, addr, &null_addr, PT_UDP,
                                            (guint32)port, (guint32)other_port,
                                                                    NO_ADDR2 | (!other_port ? NO_PORT2 : 0));
         }
@@ -892,7 +892,7 @@ void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         if (!p_conv_data)
         {
                 /* First time, get info from conversation */
-                p_conv = find_conversation(&pinfo->net_src, &pinfo->net_dst,
+                p_conv = find_conversation(pinfo->fd->num, &pinfo->net_src, &pinfo->net_dst,
                                    pinfo->ptype,
                                    pinfo->srcport, pinfo->destport, NO_ADDR_B);
                 if (p_conv)
index a95156469141757f7bd1163bbc19ce67214c3a17..b7065674edbb1971c75630d4baa2796d0fc4b5b9 100644 (file)
@@ -289,9 +289,9 @@ get_tcp_conversation_data(packet_info *pinfo)
        struct tcp_analysis *tcpd=NULL;
 
        /* Have we seen this conversation before? */
-       if( (conv=find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0)) == NULL){
+       if( (conv=find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0)) == NULL){
                /* No this is a new conversation. */
-               conv=conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+               conv=conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
 
        /* check if we have any data for this conversation */
index 374c05d21f51e0c203f4ca14d132bac72ebc6c9a..7cb1124d262634f9355417f83e9f45c3bf0fd0a7 100644 (file)
@@ -1930,13 +1930,13 @@ dissect_tds_tcp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         * OK, it passes the test; assume the rest of this conversation
         * is TDS.
         */
-       conv = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype,
+       conv = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
             pinfo->srcport, pinfo->destport, 0);
         if (conv == NULL) {
                /*
                 * No conversation exists yet - create one.
                 */
-               conv = conversation_new(&pinfo->src, &pinfo->dst,
+               conv = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                    pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
        conversation_set_dissector(conv, tds_tcp_handle);
index 879619b72f52fc96551ad9eef430aa45e226bf02..497fd72f9e929a79602490c900f286a54cdff9ba 100644 (file)
@@ -115,10 +115,10 @@ dissect_tftp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         * wildcarded, and give it the TFTP dissector as a dissector.
         */
        if (pinfo->destport == UDP_PORT_TFTP) {
-         conversation = find_conversation(&pinfo->src, &pinfo->dst, PT_UDP,
+         conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP,
                                           pinfo->srcport, 0, NO_PORT_B);
          if (conversation == NULL) {
-           conversation = conversation_new(&pinfo->src, &pinfo->dst, PT_UDP,
+           conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_UDP,
                                            pinfo->srcport, 0, NO_PORT2);
            conversation_set_dissector(conversation, tftp_handle);
          }
index 81446436949debe1d15e604b129da858c206257b..13fb017dfb8f7f7198b495319e06695c79f3b9c5 100644 (file)
@@ -154,10 +154,10 @@ dissect_tuxedo_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                {
                        /* Register this dissector for this conversation */
                        conversation_t  *conversation = NULL;
-                       conversation = find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+                       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
                        if (conversation == NULL) 
                        {
-                               conversation = conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+                               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
                        }
                        conversation_set_dissector(conversation, tuxedo_handle);
 
index b6e1edf226b2c0c8b60450f0b84d2be3d173583d..f194e5e65709fd02d0e127ce71642529e0d12cbf 100644 (file)
@@ -4506,10 +4506,10 @@ dissect_redirect(tvbuff_t *tvb, int offset, packet_info *pinfo,
                        redir_address.len = 4;
                        redir_address.data = (const guint8 *)&address_ipv4;
                        /* Find a conversation based on redir_address and pinfo->dst */
-                       conv = find_conversation(&redir_address, &pinfo->dst,
+                       conv = find_conversation(pinfo->fd->num, &redir_address, &pinfo->dst,
                            PT_UDP, port_num, 0, NO_PORT_B);
                        if (conv == NULL) { /* This conversation does not exist yet */
-                               conv = conversation_new(&redir_address,
+                               conv = conversation_new(pinfo->fd->num, &redir_address,
                                    &pinfo->dst, PT_UDP, port_num, 0, NO_PORT2);
                        }
                        /* Apply WSP dissection to the conversation */
@@ -4542,10 +4542,10 @@ dissect_redirect(tvbuff_t *tvb, int offset, packet_info *pinfo,
                        redir_address.len = 16;
                        redir_address.data = (const guint8 *)&address_ipv4;
                        /* Find a conversation based on redir_address and pinfo->dst */
-                       conv = find_conversation(&redir_address, &pinfo->dst,
+                       conv = find_conversation(pinfo->fd->num, &redir_address, &pinfo->dst,
                            PT_UDP, port_num, 0, NO_PORT_B);
                        if (conv == NULL) { /* This conversation does not exist yet */
-                               conv = conversation_new(&redir_address,
+                               conv = conversation_new(pinfo->fd->num, &redir_address,
                                    &pinfo->dst, PT_UDP, port_num, 0, NO_PORT2);
                        }
                        /* Apply WSP dissection to the conversation */
index 5b52c0ec790865b86b63644cf0cc322a78c46359..e2eff67ab60e648c43e59b34ff56b3feaeaa27c0 100644 (file)
@@ -4122,13 +4122,13 @@ static void dissect_x11_requests(tvbuff_t *tvb, packet_info *pinfo,
             * if we don't have one, and create the state if we don't have
             * any.
             */
-           conversation = find_conversation(&pinfo->src, &pinfo->dst,
+           conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
            if (conversation == NULL) {
                  /*
                   * No - create one.
                   */
-                 conversation = conversation_new(&pinfo->src,
+                 conversation = conversation_new(pinfo->fd->num, &pinfo->src,
                        &pinfo->dst, pinfo->ptype, pinfo->srcport,
                        pinfo->destport, 0);
            }
@@ -4407,13 +4407,13 @@ dissect_x11_replies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        * if we don't have one, and create the state if we don't have
        * any.
        */
-       conversation = find_conversation(&pinfo->src, &pinfo->dst,
+       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
        pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        if (conversation == NULL) {
                /*
                 * No - create one.
                */
-               conversation = conversation_new(&pinfo->src, &pinfo->dst,
+               conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
        }
 
index 9ad7a58b5930814e8bdf448ce075674e90f2b934..9e75c3ef92bc5e156f4c3274e59b19b4e6f26cc3 100644 (file)
@@ -115,10 +115,10 @@ dissect_xyplex(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                 * requestiong server and the Xyplex host using the
                 * return_port.
                 */
-               conversation = find_conversation(&pinfo->src, &pinfo->dst,
+               conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                  PT_TCP, return_port, 0, NO_PORT_B);
                if (conversation == NULL) {
-                   conversation = conversation_new(&pinfo->src, &pinfo->dst,
+                   conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
                                    PT_TCP, return_port, 0, NO_PORT2);
                    conversation_set_dissector(conversation, xyplex_handle);
                }