Ethereal-dev: [Ethereal-dev] [patch] conversations demarked by setup frame number
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Jon Ringle <ml-ethereal@xxxxxxxxxx>
Date: Tue, 18 Jan 2005 02:01:55 -0500
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. Potential problems I noticed: 1) packet-quake.c and packet-bittorrent.c make calls to conversation_new() without checking to see if there is an already existing conversation with find_conversation() 2) packet-dcerpc.c in dcerpc_add_conv_to_bind_table() makes calls to find_conversation() and conversation_new() without a means to get a frame number. I faked it with a zero. Comments welcome... Jon
Index: asn1/h225/packet-h225-template.c
===================================================================
--- asn1/h225/packet-h225-template.c (revision 13086)
+++ asn1/h225/packet-h225-template.c (working copy)
@@ -310,13 +310,13 @@
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);
@@ -383,7 +383,7 @@
/* 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: plugins/irda/packet-irda.c
===================================================================
--- plugins/irda/packet-irda.c (revision 13086)
+++ plugins/irda/packet-irda.c (working copy)
@@ -565,7 +565,7 @@
destaddr.len = 1;
destaddr.data = (char*)&pinfo->circuit_id;
- conv = find_conversation(&srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
+ conv = find_conversation(pinfo->fd->num, &srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
if (conv)
{
iap_conv = (iap_conversation_t*)conversation_get_proto_data(conv, PT_NONE);
@@ -587,7 +587,7 @@
}
else
{
- conv = conversation_new(&srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
+ conv = conversation_new(pinfo->fd->num, &srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
iap_conv = g_mem_chunk_alloc(iap_conv_chunk);
conversation_add_proto_data(conv, PT_NONE, (void*)iap_conv);
}
@@ -726,7 +726,7 @@
destaddr.data = (char*)&pinfo->circuit_id;
/* Find result value dissector */
- conv = find_conversation(&srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
+ conv = find_conversation(pinfo->fd->num, &srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
if (conv)
{
num = pinfo->fd->num;
@@ -1015,7 +1015,7 @@
destaddr.data = (char*)&pinfo->circuit_id;
/* Find result value dissector */
- conv = find_conversation(&srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
+ conv = find_conversation(pinfo->fd->num, &srcaddr, &destaddr, PT_NONE, pinfo->srcport, pinfo->destport, 0);
if (conv)
{
num = pinfo->fd->num;
@@ -1255,7 +1255,7 @@
destaddr.len = 1;
destaddr.data = (char*)&dest;
- conv = find_conversation(&destaddr, &srcaddr, PT_NONE, dlsap, 0, NO_PORT_B);
+ conv = find_conversation(pinfo->fd->num, &destaddr, &srcaddr, PT_NONE, dlsap, 0, NO_PORT_B);
if (conv)
{
lmp_conv = (lmp_conversation_t*)conversation_get_proto_data(conv, PT_NONE);
@@ -1276,7 +1276,7 @@
}
else
{
- conv = conversation_new(&destaddr, &srcaddr, PT_NONE, dlsap, 0, NO_PORT_B);
+ conv = conversation_new(pinfo->fd->num, &destaddr, &srcaddr, PT_NONE, dlsap, 0, NO_PORT_B);
lmp_conv = g_mem_chunk_alloc(lmp_conv_chunk);
conversation_add_proto_data(conv, PT_NONE, (void*)lmp_conv);
}
Index: plugins/mgcp/packet-mgcp.c
===================================================================
--- plugins/mgcp/packet-mgcp.c (revision 13086)
+++ plugins/mgcp/packet-mgcp.c (working copy)
@@ -1189,7 +1189,7 @@
guarantee that the reply will come from the address
to which the call was sent. */
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 {
@@ -1199,7 +1199,7 @@
* pointer for the second address argument even
* if you do that.
*/
- conversation = find_conversation(&null_address,
+ conversation = find_conversation(pinfo->fd->num, &null_address,
&pinfo->dst, pinfo->ptype, pinfo->srcport,
pinfo->destport, 0);
}
@@ -1275,7 +1275,7 @@
guarantee that the reply will come from the address
to which the call was sent. */
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 {
@@ -1285,7 +1285,7 @@
* pointer for the second address argument even
* if you do that.
*/
- conversation = find_conversation(&pinfo->src,
+ conversation = find_conversation(pinfo->fd->num, &pinfo->src,
&null_address, pinfo->ptype, pinfo->srcport,
pinfo->destport, 0);
}
@@ -1293,11 +1293,11 @@
/* 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->srcport,
pinfo->destport, 0);
}
Index: epan/conversation.c
===================================================================
--- epan/conversation.c (revision 13086)
+++ epan/conversation.c (working copy)
@@ -130,7 +130,8 @@
* conversation with new 2nd address and 2nd port.
*/
new_conversation_from_template =
- conversation_new(&conversation->key_ptr->addr1, addr2,
+ conversation_new(conversation->setup_frame,
+ &conversation->key_ptr->addr1, addr2,
conversation->key_ptr->ptype, conversation->key_ptr->port1,
port2, options);
}
@@ -141,7 +142,8 @@
* only. Create a new conversation with new 2nd port.
*/
new_conversation_from_template =
- conversation_new(&conversation->key_ptr->addr1, &conversation->key_ptr->addr2,
+ conversation_new(conversation->setup_frame,
+ &conversation->key_ptr->addr1, &conversation->key_ptr->addr2,
conversation->key_ptr->ptype, conversation->key_ptr->port1,
port2, options);
}
@@ -152,7 +154,8 @@
* 2. Create a new conversation with new 2nd address.
*/
new_conversation_from_template =
- conversation_new(&conversation->key_ptr->addr1, addr2,
+ conversation_new(conversation->setup_frame,
+ &conversation->key_ptr->addr1, addr2,
conversation->key_ptr->ptype, conversation->key_ptr->port1,
conversation->key_ptr->port2, options);
}
@@ -528,16 +531,42 @@
* when searching for this conversation.
*/
conversation_t *
-conversation_new(address *addr1, address *addr2, port_type ptype,
+conversation_new(guint32 setup_frame, address *addr1, address *addr2, port_type ptype,
guint32 port1, guint32 port2, guint options)
{
/*
g_assert(!(options | CONVERSATION_TEMPLATE) || ((options | (NO_ADDR2 | NO_PORT2 | NO_PORT2_FORCE))) &&
"A conversation template may not be constructed without wildcard options");
*/
+ GHashTable* hashtable;
conversation_t *conversation;
+ conversation_t *tc;
+ conversation_key existing_key;
conversation_key *new_key;
+ if (options & NO_ADDR2) {
+ if (options & (NO_PORT2|NO_PORT2_FORCE)) {
+ hashtable = conversation_hashtable_no_addr2_or_port2;
+ } else {
+ hashtable = conversation_hashtable_no_addr2;
+ }
+ } else {
+ if (options & (NO_PORT2|NO_PORT2_FORCE)) {
+ hashtable = conversation_hashtable_no_port2;
+ } else {
+ hashtable = conversation_hashtable_exact;
+ }
+ }
+
+ existing_key.addr1 = *addr1;
+ existing_key.addr2 = *addr2;
+ existing_key.ptype = ptype;
+ existing_key.port1 = port1;
+ existing_key.port2 = port2;
+
+ conversation = g_hash_table_lookup(hashtable, &existing_key);
+ tc = conversation; /* Remember if lookup was successful */
+
new_key = g_mem_chunk_alloc(conversation_key_chunk);
new_key->next = conversation_keys;
conversation_keys = new_key;
@@ -547,8 +576,18 @@
new_key->port1 = port1;
new_key->port2 = port2;
- conversation = g_mem_chunk_alloc(conversation_chunk);
+ if (conversation) {
+ for (; conversation->next; conversation = conversation->next)
+ ;
+ conversation->next = g_mem_chunk_alloc(conversation_chunk);
+ conversation = conversation->next;
+ } else {
+ conversation = g_mem_chunk_alloc(conversation_chunk);
+ }
+
+ conversation->next = NULL;
conversation->index = new_index;
+ conversation->setup_frame = setup_frame;
conversation->data_list = NULL;
/* clear dissector handle */
@@ -560,23 +599,11 @@
new_index++;
- if (options & NO_ADDR2) {
- if (options & (NO_PORT2|NO_PORT2_FORCE)) {
- g_hash_table_insert(conversation_hashtable_no_addr2_or_port2,
- new_key, conversation);
- } else {
- g_hash_table_insert(conversation_hashtable_no_addr2,
- new_key, conversation);
- }
- } else {
- if (options & (NO_PORT2|NO_PORT2_FORCE)) {
- g_hash_table_insert(conversation_hashtable_no_port2,
- new_key, conversation);
- } else {
- g_hash_table_insert(conversation_hashtable_exact,
- new_key, conversation);
- }
- }
+ /* only insert a hash table entry if this
+ * is the first conversation with this key */
+ if (!tc)
+ g_hash_table_insert(hashtable, new_key, conversation);
+
return conversation;
}
@@ -653,9 +680,11 @@
* addr1, port1, addr2, and port2.
*/
static conversation_t *
-conversation_lookup_hashtable(GHashTable *hashtable, address *addr1, address *addr2,
+conversation_lookup_hashtable(GHashTable *hashtable, guint32 frame_num, address *addr1, address *addr2,
port_type ptype, guint32 port1, guint32 port2)
{
+ conversation_t* conversation;
+ conversation_t* match;
conversation_key key;
/*
@@ -667,7 +696,18 @@
key.ptype = ptype;
key.port1 = port1;
key.port2 = port2;
- return g_hash_table_lookup(hashtable, &key);
+
+ match = g_hash_table_lookup(hashtable, &key);
+
+ if (match) {
+ for (conversation = match->next; conversation; conversation = conversation->next) {
+ if ((conversation->setup_frame < frame_num)
+ && (conversation->setup_frame > match->setup_frame))
+ match = conversation;
+ }
+ }
+
+ return match;
}
@@ -708,7 +748,7 @@
* otherwise, we found no matching conversation, and return NULL.
*/
conversation_t *
-find_conversation(address *addr_a, address *addr_b, port_type ptype,
+find_conversation(guint32 frame_num, address *addr_a, address *addr_b, port_type ptype,
guint32 port_a, guint32 port_b, guint options)
{
conversation_t *conversation;
@@ -724,7 +764,7 @@
*/
conversation =
conversation_lookup_hashtable(conversation_hashtable_exact,
- addr_a, addr_b, ptype,
+ frame_num, addr_a, addr_b, ptype,
port_a, port_b);
if ((conversation == NULL) && (addr_a->type == AT_FC)) {
/* In Fibre channel, OXID & RXID are never swapped as
@@ -732,7 +772,7 @@
*/
conversation =
conversation_lookup_hashtable(conversation_hashtable_exact,
- addr_b, addr_a, ptype,
+ frame_num, addr_b, addr_a, ptype,
port_a, port_b);
}
if (conversation != NULL)
@@ -755,14 +795,14 @@
*/
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_addr2,
- addr_a, addr_b, ptype, port_a, port_b);
+ frame_num, addr_a, addr_b, ptype, port_a, port_b);
if ((conversation == NULL) && (addr_a->type == AT_FC)) {
/* In Fibre channel, OXID & RXID are never swapped as
* TCP/UDP ports are in TCP/IP.
*/
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_addr2,
- addr_b, addr_a, ptype,
+ frame_num, addr_b, addr_a, ptype,
port_a, port_b);
}
if (conversation != NULL) {
@@ -805,7 +845,7 @@
if (!(options & NO_ADDR_B)) {
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_addr2,
- addr_b, addr_a, ptype, port_b, port_a);
+ frame_num, addr_b, addr_a, ptype, port_b, port_a);
if (conversation != NULL) {
/*
* If this is for a connection-oriented
@@ -847,14 +887,14 @@
*/
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_port2,
- addr_a, addr_b, ptype, port_a, port_b);
+ frame_num, addr_a, addr_b, ptype, port_a, port_b);
if ((conversation == NULL) && (addr_a->type == AT_FC)) {
/* In Fibre channel, OXID & RXID are never swapped as
* TCP/UDP ports are in TCP/IP
*/
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_port2,
- addr_b, addr_a, ptype, port_a, port_b);
+ frame_num, addr_b, addr_a, ptype, port_a, port_b);
}
if (conversation != NULL) {
/*
@@ -896,7 +936,7 @@
if (!(options & NO_PORT_B)) {
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_port2,
- addr_b, addr_a, ptype, port_b, port_a);
+ frame_num, addr_b, addr_a, ptype, port_b, port_a);
if (conversation != NULL) {
/*
* If this is for a connection-oriented
@@ -933,7 +973,7 @@
*/
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_addr2_or_port2,
- addr_a, addr_b, ptype, port_a, port_b);
+ frame_num, addr_a, addr_b, ptype, port_a, port_b);
if (conversation != NULL) {
/*
* If this is for a connection-oriented protocol:
@@ -978,11 +1018,11 @@
if (addr_a->type == AT_FC)
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_addr2_or_port2,
- addr_b, addr_a, ptype, port_a, port_b);
+ frame_num, addr_b, addr_a, ptype, port_a, port_b);
else
conversation =
conversation_lookup_hashtable(conversation_hashtable_no_addr2_or_port2,
- addr_b, addr_a, ptype, port_b, port_a);
+ frame_num, addr_b, addr_a, ptype, port_b, port_a);
if (conversation != NULL) {
/*
* If this is for a connection-oriented protocol, set the
@@ -1097,7 +1137,7 @@
{
conversation_t *conversation;
- conversation = find_conversation(addr_a, addr_b, ptype, port_a,
+ conversation = find_conversation(pinfo->fd->num, addr_a, addr_b, ptype, port_a,
port_b, 0);
if (conversation != NULL) {
Index: epan/conversation.h
===================================================================
--- epan/conversation.h (revision 13086)
+++ epan/conversation.h (working copy)
@@ -66,6 +66,7 @@
typedef struct conversation {
struct conversation *next; /* pointer to next conversation on hash chain */
guint32 index; /* unique ID for conversation */
+ guint32 setup_frame; /* frame number that setup this conversation */
GSList *data_list; /* list of data associated with conversation */
dissector_handle_t dissector_handle;
/* handle for protocol dissector client associated with conversation */
@@ -75,10 +76,10 @@
extern void conversation_init(void);
-extern conversation_t *conversation_new(address *addr1, address *addr2,
+extern conversation_t *conversation_new(guint32 setup_frame, address *addr1, address *addr2,
port_type ptype, guint32 port1, guint32 port2, guint options);
-extern conversation_t *find_conversation(address *addr_a, address *addr_b,
+extern conversation_t *find_conversation(guint32 frame_num, address *addr_a, address *addr_b,
port_type ptype, guint32 port_a, guint32 port_b, guint options);
extern void conversation_add_proto_data(conversation_t *conv, int proto,
Index: epan/dissectors/packet-ndmp.c
===================================================================
--- epan/dissectors/packet-ndmp.c (revision 13086)
+++ epan/dissectors/packet-ndmp.c (working copy)
@@ -1166,10 +1166,10 @@
* 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 @@
* 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: epan/dissectors/packet-snmp.c
===================================================================
--- epan/dissectors/packet-snmp.c (revision 13086)
+++ epan/dissectors/packet-snmp.c (working copy)
@@ -2324,10 +2324,10 @@
* 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: epan/dissectors/packet-fcfcs.c
===================================================================
--- epan/dissectors/packet-fcfcs.c (revision 13086)
+++ epan/dissectors/packet-fcfcs.c (working copy)
@@ -843,11 +843,11 @@
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 @@
}
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: epan/dissectors/packet-pgsql.c
===================================================================
--- epan/dissectors/packet-pgsql.c (revision 13086)
+++ epan/dissectors/packet-pgsql.c (working copy)
@@ -321,10 +321,10 @@
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: epan/dissectors/packet-spnego.c
===================================================================
--- epan/dissectors/packet-spnego.c (revision 13086)
+++ epan/dissectors/packet-spnego.c (working copy)
@@ -1082,7 +1082,7 @@
* 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 @@
* 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 @@
* 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: epan/dissectors/packet-rtsp.c
===================================================================
--- epan/dissectors/packet-rtsp.c (revision 13086)
+++ epan/dissectors/packet-rtsp.c (working copy)
@@ -233,7 +233,7 @@
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 @@
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: epan/dissectors/packet-ntlmssp.c
===================================================================
--- epan/dissectors/packet-ntlmssp.c (revision 13086)
+++ epan/dissectors/packet-ntlmssp.c (working copy)
@@ -926,11 +926,11 @@
* 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 @@
* 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 @@
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 @@
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 @@
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: epan/dissectors/packet-quake.c
===================================================================
--- epan/dissectors/packet-quake.c (revision 13086)
+++ epan/dissectors/packet-quake.c (working copy)
@@ -220,7 +220,7 @@
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: epan/dissectors/packet-fc.c
===================================================================
--- epan/dissectors/packet-fc.c (revision 13086)
+++ epan/dissectors/packet-fc.c (working copy)
@@ -1165,11 +1165,11 @@
* 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: epan/dissectors/packet-fcfzs.c
===================================================================
--- epan/dissectors/packet-fcfzs.c (revision 13086)
+++ epan/dissectors/packet-fcfzs.c (working copy)
@@ -664,11 +664,11 @@
}
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 @@
}
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: epan/dissectors/packet-rsync.c
===================================================================
--- epan/dissectors/packet-rsync.c (revision 13086)
+++ epan/dissectors/packet-rsync.c (working copy)
@@ -106,10 +106,10 @@
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: epan/dissectors/packet-x11.c
===================================================================
--- epan/dissectors/packet-x11.c (revision 13086)
+++ epan/dissectors/packet-x11.c (working copy)
@@ -4122,13 +4122,13 @@
* 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 @@
* 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: epan/dissectors/packet-isns.c
===================================================================
--- epan/dissectors/packet-isns.c (revision 13086)
+++ epan/dissectors/packet-isns.c (working copy)
@@ -942,19 +942,19 @@
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: epan/dissectors/packet-portmap.c
===================================================================
--- epan/dissectors/packet-portmap.c (revision 13086)
+++ epan/dissectors/packet-portmap.c (working copy)
@@ -123,9 +123,9 @@
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: epan/dissectors/packet-dcm.c
===================================================================
--- epan/dissectors/packet-dcm.c (revision 13086)
+++ epan/dissectors/packet-dcm.c (working copy)
@@ -898,14 +898,14 @@
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 @@
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: epan/dissectors/packet-kerberos.c
===================================================================
--- epan/dissectors/packet-kerberos.c (revision 13086)
+++ epan/dissectors/packet-kerberos.c (working copy)
@@ -3044,10 +3044,10 @@
* 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: epan/dissectors/packet-h225.c
===================================================================
--- epan/dissectors/packet-h225.c (revision 13086)
+++ epan/dissectors/packet-h225.c (working copy)
@@ -2221,9 +2221,9 @@
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);
}
}
@@ -12115,13 +12115,13 @@
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);
@@ -12188,7 +12188,7 @@
/* 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: epan/dissectors/packet-mysql.c
===================================================================
--- epan/dissectors/packet-mysql.c (revision 13086)
+++ epan/dissectors/packet-mysql.c (working copy)
@@ -251,12 +251,12 @@
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: epan/dissectors/packet-ftp.c
===================================================================
--- epan/dissectors/packet-ftp.c (revision 13086)
+++ epan/dissectors/packet-ftp.c (working copy)
@@ -462,7 +462,7 @@
* "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 @@
* 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: epan/dissectors/packet-bittorrent.c
===================================================================
--- epan/dissectors/packet-bittorrent.c (revision 13086)
+++ epan/dissectors/packet-bittorrent.c (working copy)
@@ -221,7 +221,7 @@
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: epan/dissectors/packet-ndps.c
===================================================================
--- epan/dissectors/packet-ndps.c (revision 13086)
+++ epan/dissectors/packet-ndps.c (working copy)
@@ -3818,13 +3818,13 @@
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 @@
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 @@
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: epan/dissectors/packet-beep.c
===================================================================
--- epan/dissectors/packet-beep.c (revision 13086)
+++ epan/dissectors/packet-beep.c (working copy)
@@ -870,10 +870,10 @@
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: epan/dissectors/packet-ssh.c
===================================================================
--- epan/dissectors/packet-ssh.c (revision 13086)
+++ epan/dissectors/packet-ssh.c (working copy)
@@ -227,12 +227,12 @@
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: epan/dissectors/packet-afp.c
===================================================================
--- epan/dissectors/packet-afp.c (revision 13086)
+++ epan/dissectors/packet-afp.c (working copy)
@@ -3313,12 +3313,12 @@
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: epan/dissectors/packet-wsp.c
===================================================================
--- epan/dissectors/packet-wsp.c (revision 13086)
+++ epan/dissectors/packet-wsp.c (working copy)
@@ -4506,10 +4506,10 @@
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 @@
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: epan/dissectors/packet-t38.c
===================================================================
--- epan/dissectors/packet-t38.c (revision 13086)
+++ epan/dissectors/packet-t38.c (working copy)
@@ -199,14 +199,14 @@
* 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 @@
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: epan/dissectors/packet-eap.c
===================================================================
--- epan/dissectors/packet-eap.c (revision 13086)
+++ epan/dissectors/packet-eap.c (working copy)
@@ -647,21 +647,21 @@
* 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: epan/dissectors/packet-ldap.c
===================================================================
--- epan/dissectors/packet-ldap.c (revision 13086)
+++ epan/dissectors/packet-ldap.c (working copy)
@@ -2374,12 +2374,12 @@
/*
* 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: epan/dissectors/packet-smb.c
===================================================================
--- epan/dissectors/packet-smb.c (revision 13086)
+++ epan/dissectors/packet-smb.c (working copy)
@@ -14594,11 +14594,11 @@
/* 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: epan/dissectors/packet-xyplex.c
===================================================================
--- epan/dissectors/packet-xyplex.c (revision 13086)
+++ epan/dissectors/packet-xyplex.c (working copy)
@@ -115,10 +115,10 @@
* 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);
}
Index: epan/dissectors/packet-smtp.c
===================================================================
--- epan/dissectors/packet-smtp.c (revision 13086)
+++ epan/dissectors/packet-smtp.c (working copy)
@@ -177,10 +177,10 @@
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: epan/dissectors/packet-sdp.c
===================================================================
--- epan/dissectors/packet-sdp.c (revision 13086)
+++ epan/dissectors/packet-sdp.c (working copy)
@@ -207,7 +207,8 @@
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];
@@ -399,12 +400,13 @@
}
}
}
- /* 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++;
@@ -413,8 +415,8 @@
}
}
- /* 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: epan/dissectors/packet-atalk.c
===================================================================
--- epan/dissectors/packet-atalk.c (revision 13086)
+++ epan/dissectors/packet-atalk.c (working copy)
@@ -759,12 +759,12 @@
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 @@
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: epan/dissectors/packet-tcp.c
===================================================================
--- epan/dissectors/packet-tcp.c (revision 13086)
+++ epan/dissectors/packet-tcp.c (working copy)
@@ -289,9 +289,9 @@
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: epan/dissectors/packet-fcsb3.c
===================================================================
--- epan/dissectors/packet-fcsb3.c (revision 13086)
+++ epan/dissectors/packet-fcsb3.c (working copy)
@@ -780,7 +780,7 @@
}
/* 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 @@
}
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: epan/dissectors/packet-tuxedo.c
===================================================================
--- epan/dissectors/packet-tuxedo.c (revision 13086)
+++ epan/dissectors/packet-tuxedo.c (working copy)
@@ -154,10 +154,10 @@
{
/* 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: epan/dissectors/packet-fcswils.c
===================================================================
--- epan/dissectors/packet-fcswils.c (revision 13086)
+++ epan/dissectors/packet-fcswils.c (working copy)
@@ -1476,11 +1476,11 @@
/* 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 @@
}
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: epan/dissectors/packet-ncp2222.inc
===================================================================
--- epan/dissectors/packet-ncp2222.inc (revision 13086)
+++ epan/dissectors/packet-ncp2222.inc (working copy)
@@ -4129,7 +4129,7 @@
/* 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 @@
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 @@
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 @@
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 @@
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 @@
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: epan/dissectors/packet-aoe.c
===================================================================
--- epan/dissectors/packet-aoe.c (revision 13086)
+++ epan/dissectors/packet-aoe.c (working copy)
@@ -226,12 +226,12 @@
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: epan/dissectors/packet-rtcp.c
===================================================================
--- epan/dissectors/packet-rtcp.c (revision 13086)
+++ epan/dissectors/packet-rtcp.c (working copy)
@@ -284,14 +284,14 @@
* 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 @@
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 @@
/* 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 @@
/********************************************************************/
/* 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: epan/dissectors/packet-afs.c
===================================================================
--- epan/dissectors/packet-afs.c (revision 13086)
+++ epan/dissectors/packet-afs.c (working copy)
@@ -216,11 +216,11 @@
* 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: epan/dissectors/packet-iscsi.c
===================================================================
--- epan/dissectors/packet-iscsi.c (revision 13086)
+++ epan/dissectors/packet-iscsi.c (working copy)
@@ -1789,11 +1789,11 @@
}
/* 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: epan/dissectors/packet-rlogin.c
===================================================================
--- epan/dissectors/packet-rlogin.c (revision 13086)
+++ epan/dissectors/packet-rlogin.c (working copy)
@@ -338,11 +338,11 @@
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: epan/dissectors/packet-dcerpc.c
===================================================================
--- epan/dissectors/packet-dcerpc.c (revision 13086)
+++ epan/dissectors/packet-dcerpc.c (working copy)
@@ -2412,10 +2412,10 @@
}
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);
}
@@ -2914,6 +2914,7 @@
conversation_t *conv;
conv = find_conversation (
+ 0,
&binding->addr_a,
&binding->addr_b,
binding->ptype,
@@ -2923,6 +2924,7 @@
if (!conv) {
conv = conversation_new (
+ 0,
&binding->addr_a,
&binding->addr_b,
binding->ptype,
@@ -3014,7 +3016,7 @@
*/
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);
@@ -3159,7 +3161,7 @@
*/
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) {
@@ -3280,7 +3282,7 @@
*/
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 */
@@ -4498,10 +4500,10 @@
* 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: epan/dissectors/packet-ssl.c
===================================================================
--- epan/dissectors/packet-ssl.c (revision 13086)
+++ epan/dissectors/packet-ssl.c (working copy)
@@ -843,12 +843,12 @@
* 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 @@
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: epan/dissectors/packet-ajp13.c
===================================================================
--- epan/dissectors/packet-ajp13.c (revision 13086)
+++ epan/dissectors/packet-ajp13.c (working copy)
@@ -640,10 +640,10 @@
/* 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: epan/dissectors/packet-rpc.c
===================================================================
--- epan/dissectors/packet-rpc.c (revision 13086)
+++ epan/dissectors/packet-rpc.c (working copy)
@@ -1391,7 +1391,7 @@
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 @@
* 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 @@
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 @@
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 @@
* 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 @@
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 @@
* 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 @@
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 @@
* 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 @@
/* 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 @@
* 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: epan/dissectors/packet-msproxy.c
===================================================================
--- epan/dissectors/packet-msproxy.c (revision 13086)
+++ epan/dissectors/packet-msproxy.c (working copy)
@@ -203,7 +203,7 @@
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 @@
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 @@
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: epan/dissectors/packet-fcp.c
===================================================================
--- epan/dissectors/packet-fcp.c (revision 13086)
+++ epan/dissectors/packet-fcp.c (working copy)
@@ -262,11 +262,11 @@
/* 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 @@
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 @@
}
/* 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 @@
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: epan/dissectors/packet-mq.c
===================================================================
--- epan/dissectors/packet-mq.c (revision 13086)
+++ epan/dissectors/packet-mq.c (working copy)
@@ -2433,10 +2433,10 @@
{
/* 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: epan/dissectors/packet-tftp.c
===================================================================
--- epan/dissectors/packet-tftp.c (revision 13086)
+++ epan/dissectors/packet-tftp.c (working copy)
@@ -115,10 +115,10 @@
* 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: epan/dissectors/packet-ncp.c
===================================================================
--- epan/dissectors/packet-ncp.c (revision 13086)
+++ epan/dissectors/packet-ncp.c (working copy)
@@ -355,7 +355,7 @@
* 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 @@
/* 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 @@
/* 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: epan/dissectors/packet-socks.c
===================================================================
--- epan/dissectors/packet-socks.c (revision 13086)
+++ epan/dissectors/packet-socks.c (working copy)
@@ -376,7 +376,7 @@
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 @@
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 @@
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: epan/dissectors/packet-gssapi.c
===================================================================
--- epan/dissectors/packet-gssapi.c (revision 13086)
+++ epan/dissectors/packet-gssapi.c (working copy)
@@ -167,7 +167,7 @@
* 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 @@
*/
if (!conversation) { /* Create one */
- conversation = conversation_new(&pinfo->src,
+ conversation = conversation_new(pinfo->fd->num, &pinfo->src,
&pinfo->dst,
pinfo->ptype,
pinfo->srcport,
Index: epan/dissectors/packet-fcels.c
===================================================================
--- epan/dissectors/packet-fcels.c (revision 13086)
+++ epan/dissectors/packet-fcels.c (working copy)
@@ -1531,12 +1531,12 @@
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 @@
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 @@
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 @@
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: epan/dissectors/packet-tds.c
===================================================================
--- epan/dissectors/packet-tds.c (revision 13086)
+++ epan/dissectors/packet-tds.c (working copy)
@@ -1930,13 +1930,13 @@
* 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: epan/dissectors/packet-fcdns.c
===================================================================
--- epan/dissectors/packet-fcdns.c (revision 13086)
+++ epan/dissectors/packet-fcdns.c (working copy)
@@ -1509,11 +1509,11 @@
}
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 @@
}
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: epan/dissectors/packet-ipx.c
===================================================================
--- epan/dissectors/packet-ipx.c (revision 13086)
+++ epan/dissectors/packet-ipx.c (working copy)
@@ -716,7 +716,7 @@
* 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 @@
* 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: epan/dissectors/packet-rtp.c
===================================================================
--- epan/dissectors/packet-rtp.c (revision 13086)
+++ epan/dissectors/packet-rtp.c (working copy)
@@ -216,14 +216,14 @@
* 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));
}
@@ -633,7 +633,7 @@
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)
- Follow-Ups:
- Prev by Date: [Ethereal-dev] Patch for packet-bssgp.c - please check in
- Next by Date: Re: [Ethereal-dev] Problems with Relative Sequence Numbers and Window Scaling
- Previous by thread: RE: [Ethereal-dev] Patch for packet-bssgp.c - please check in
- Next by thread: Re: [Ethereal-dev] [patch] conversations demarked by setup frame number
- Index(es):





