diff options
author | Gerald Combs <gerald@wireshark.org> | 2004-07-06 19:01:32 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2004-07-06 19:01:32 +0000 |
commit | 2b53a88bf8b9190055c43a9c3e045af7ad39fcf9 (patch) | |
tree | 83be3d232c51cbc40b13f4741ada7e92977960d6 /epan | |
parent | 44f812de8ec2061c2b702bb306363f5da8f11c4d (diff) | |
download | wireshark-2b53a88bf8b9190055c43a9c3e045af7ad39fcf9.tar.gz |
From Dinesh Dutt:
- conversation.[ch] - To support not setting port2 on matching a
conversation. This is used by protocols such as iSNS in which the client
registers a TCP/UDP port with the server for notifications and the server
sends notifications to this port from different source ports.
- packet-isns.c - Added support for handling zero-length TLVs and ESI & SCN
frames (when registering an SCN/ESI port, a conversation dissector is
setup).
svn path=/trunk/; revision=11320
Diffstat (limited to 'epan')
-rw-r--r-- | epan/conversation.c | 8 | ||||
-rw-r--r-- | epan/conversation.h | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/epan/conversation.c b/epan/conversation.c index f5ad54b4f1..96ec73999a 100644 --- a/epan/conversation.c +++ b/epan/conversation.c @@ -1,7 +1,7 @@ /* conversation.c * Routines for building lists of packets that are part of a "conversation" * - * $Id: conversation.c,v 1.24 2004/01/09 00:57:48 guy Exp $ + * $Id: conversation.c,v 1.25 2004/07/06 19:01:31 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -464,7 +464,7 @@ conversation_new(address *addr1, address *addr2, port_type ptype, new_index++; if (options & NO_ADDR2) { - if (options & NO_PORT2) { + if (options & (NO_PORT2|NO_PORT2_FORCE)) { g_hash_table_insert(conversation_hashtable_no_addr2_or_port2, new_key, conversation); } else { @@ -472,7 +472,7 @@ conversation_new(address *addr1, address *addr2, port_type ptype, new_key, conversation); } } else { - if (options & NO_PORT2) { + if (options & (NO_PORT2|NO_PORT2_FORCE)) { g_hash_table_insert(conversation_hashtable_no_port2, new_key, conversation); } else { @@ -493,7 +493,7 @@ conversation_set_port2(conversation_t *conv, guint32 port) /* * If the port 2 value is not wildcarded, don't set it. */ - if (!(conv->options & NO_PORT2)) + if ((!(conv->options & NO_PORT2)) || (conv->options & NO_PORT2_FORCE)) return; if (conv->options & NO_ADDR2) { diff --git a/epan/conversation.h b/epan/conversation.h index acc16165bb..fedb5d5ffe 100644 --- a/epan/conversation.h +++ b/epan/conversation.h @@ -1,7 +1,7 @@ /* conversation.h * Routines for building lists of packets that are part of a "conversation" * - * $Id: conversation.h,v 1.10 2002/08/28 20:40:44 jmayer Exp $ + * $Id: conversation.h,v 1.11 2004/07/06 19:01:32 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -31,6 +31,7 @@ */ #define NO_ADDR2 0x01 #define NO_PORT2 0x02 +#define NO_PORT2_FORCE 0x04 /* * Flags to pass to "find_conversation()" to indicate that the address B @@ -38,6 +39,7 @@ */ #define NO_ADDR_B 0x01 #define NO_PORT_B 0x02 +#define NO_PORT_B_FORCE 0x04 #include "packet.h" /* for conversation dissector type */ |