summaryrefslogtreecommitdiff
path: root/epan
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2004-07-06 19:01:32 +0000
committerGerald Combs <gerald@wireshark.org>2004-07-06 19:01:32 +0000
commit2b53a88bf8b9190055c43a9c3e045af7ad39fcf9 (patch)
tree83be3d232c51cbc40b13f4741ada7e92977960d6 /epan
parent44f812de8ec2061c2b702bb306363f5da8f11c4d (diff)
downloadwireshark-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.c8
-rw-r--r--epan/conversation.h4
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 */