diff options
author | Guy Harris <guy@alum.mit.edu> | 2000-10-21 09:54:12 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2000-10-21 09:54:12 +0000 |
commit | 86ceeff7dbaa78d3ec5d8773b7f77d856053ace3 (patch) | |
tree | 2ae19e73d7ff9fe639c00cc123f760bcc034dd77 /packet-udp.c | |
parent | 109721d54322cd554256cfea5fb27199ef9145be (diff) |
Wildcard matching is tricky - you have to try wildcarding both the
source *and* destination port and/or both the source *and* destination
address passed to "find_conversation()", because the packet for which
you're trying to find the conversation may be going in the opposite
direction to the packet for which the conversation was originally
created.
Create different hash tables for wildcarded conversations, to reduce the
number of "is this a wildcard?" tests done when doing hash lookups.
This is sufficient to allow the TFTP dissector to use conversations
rather than being special-cased in the UDP dissector, and may also be
sufficient to handle a similar problem with SMTP (request goes from
client IP X port Y to server IP Z's well-known port, reply comes back
from some other port on server Z to client IP X port Y), but further use
may reveal other changes that should be made.
svn path=/trunk/; revision=2525
Diffstat (limited to 'packet-udp.c')
-rw-r--r-- | packet-udp.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/packet-udp.c b/packet-udp.c index 788d18beee..c577794a4c 100644 --- a/packet-udp.c +++ b/packet-udp.c @@ -1,7 +1,7 @@ /* packet-udp.c * Routines for UDP packet disassembly * - * $Id: packet-udp.c,v 1.75 2000/08/13 14:09:07 deniel Exp $ + * $Id: packet-udp.c,v 1.76 2000/10/21 09:54:10 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -49,7 +49,6 @@ #include "packet-ip.h" #include "conversation.h" -#include "packet-tftp.h" #include "packet-vines.h" static int proto_udp = -1; @@ -72,7 +71,6 @@ typedef struct _e_udphdr { /* UDP Ports -> should go in packet-udp.h */ -#define UDP_PORT_TFTP 69 #define UDP_PORT_VINES 573 static dissector_table_t udp_dissector_table; @@ -125,10 +123,6 @@ decode_udp_ports(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, if (PORT_IS(UDP_PORT_VINES)) { /* FIXME: AFAIK, src and dst port must be the same */ dissect_vines_frp(pd, offset, fd, tree); - } else if (PORT_IS(UDP_PORT_TFTP)) { - /* This is the first point of call, but it adds a dynamic call */ - old_dissector_add("udp.port", MAX(uh_sport, uh_dport), dissect_tftp); /* Add to table */ - dissect_tftp(pd, offset, fd, tree); } else old_dissect_data(pd, offset, fd, tree); } |