diff options
author | Guy Harris <guy@alum.mit.edu> | 2000-04-04 06:17:30 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2000-04-04 06:17:30 +0000 |
commit | 1ffa3cfa2b664a4920805cb40dd9fe85bf3ca1fe (patch) | |
tree | cb4e40fa15b5c560beef61457ce5fa239ac6db66 /proto.c | |
parent | e6d47076b8f8c64f34b9f169a117836b2719da89 (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.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -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 */ |