aboutsummaryrefslogtreecommitdiffstats
path: root/proto.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2000-04-04 06:17:30 +0000
committerGuy Harris <guy@alum.mit.edu>2000-04-04 06:17:30 +0000
commit1ffa3cfa2b664a4920805cb40dd9fe85bf3ca1fe (patch)
treecb4e40fa15b5c560beef61457ce5fa239ac6db66 /proto.c
parente6d47076b8f8c64f34b9f169a117836b2719da89 (diff)
Make "make-reg-dotc" generate a "register_all_protocol_handoffs()"
routine, which calls all routines found in the dissector source files with names that match " proto_reg_handoff_[a-z_0-9A-Z]*". Call "register_all_protocol_handoffs()" after calling "register_all_protocols()" - "register_all_protocols()" needs to be called first, so that all protocols can register their fields, because registering a dissector as being called if field "proto.port" is equal to N requires that "proto.port" be a registered field. Give DNS a handoff registration routine, and register its dissector to be called if "udp.port" is UDP_PORT_DNS; remove the registration of DNS from "packet-udp.c", and make "dissect_dns()" static (as nobody else need know that it exists). svn path=/trunk/; revision=1788
Diffstat (limited to 'proto.c')
-rw-r--r--proto.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/proto.c b/proto.c
index c8fdb54c63..6a788cc57d 100644
--- a/proto.c
+++ b/proto.c
@@ -1,7 +1,7 @@
/* proto.c
* Routines for protocol tree
*
- * $Id: proto.c,v 1.58 2000/04/04 02:34:39 gram Exp $
+ * $Id: proto.c,v 1.59 2000/04/04 06:17:29 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -193,9 +193,15 @@ proto_init(void)
tree_is_expanded[0] = FALSE;
num_tree_types = 1;
- /* Have each dissector register its protocols and fields. */
+ /* Have each dissector register its protocols and fields, and
+ do whatever one-time initialization it needs to do. */
register_all_protocols();
+ /* Now have the ones that register a "handoff", i.e. that
+ specify that another dissector for a protocol under which
+ this dissector's protocol lives call it. */
+ register_all_protocol_handoffs();
+
/* Register one special-case FT_TEXT_ONLY field for use when
converting ethereal to new-style proto_tree. These fields
are merely strings on the GUI tree; they are not filterable */