diff options
author | gram <gram@f5534014-38df-0310-8fa8-9805f1628bb7> | 2000-04-13 18:18:56 +0000 |
---|---|---|
committer | gram <gram@f5534014-38df-0310-8fa8-9805f1628bb7> | 2000-04-13 18:18:56 +0000 |
commit | 0ae7dadfa4f8f257a4b15c9be28cfb8984615b86 (patch) | |
tree | 1d58b40531c9ca503d57229b9cc8c9bf394a2052 /packet-aarp.c | |
parent | e875ac3f604a4c2851f74fc4a3cfd9d26558ccc8 (diff) |
Change the sub-dissector handoff registration routines so that the
sub-dissector table is not stored in the header_field_info struct, but
in a separate namespace. Dissector tables are now registered by name
and not by field ID. For example:
udp_dissector_table = register_dissector_table("udp.port");
Because of this different namespace, dissector tables can have names
that are not field names. This is useful for ethertype, since multiple
fields are "ethertypes".
packet-ethertype.c replaces ethertype.c (the name was changed so that it
would be named in the same fashion as all the filenames passed to make-reg-dotc)
Although it registers no protocol or field, it registers one dissector table:
ethertype_dissector_table = register_dissector_table("ethertype");
All protocols that can be called because of an ethertype field now register
that fact with dissector_add() calls.
In this way, one dissector_table services all ethertype fields
(hf_eth_type, hf_llc_type, hf_null_etype, hf_vlan_etype)
Furthermore, the code allows for names of protocols to exist in the
etype_vals, yet a dissector for that protocol doesn't exist. The name
of the dissector is printed in COL_INFO. You're welcome, Richard. :-)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@1848 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-aarp.c')
-rw-r--r-- | packet-aarp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/packet-aarp.c b/packet-aarp.c index f12149aeb8..8190707d42 100644 --- a/packet-aarp.c +++ b/packet-aarp.c @@ -1,7 +1,7 @@ /* packet-aarp.c * Routines for Appletalk ARP packet disassembly * - * $Id: packet-aarp.c,v 1.17 2000/03/12 04:47:33 gram Exp $ + * $Id: packet-aarp.c,v 1.18 2000/04/13 18:18:43 gram Exp $ * * Simon Wilkinson <sxw@dcs.ed.ac.uk> * @@ -283,3 +283,9 @@ proto_register_aarp(void) proto_register_field_array(proto_aarp, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); } + +void +proto_reg_handoff_aarp(void) +{ + dissector_add("ethertype", ETHERTYPE_AARP, dissect_aarp); +} |