Ethereal-dev: Re: [ethereal-dev] Diff file for packet-tcp.c with sub-dissector

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Mon, 3 Apr 2000 02:30:54 -0700
> Well, registered sub-dissectors are something we need, so I say
> we commit Guy's change to your initial patch (to bring your initial patch up
> to date with the CVS repository), and then commit your packet-tcp.c
> modifications.

Checked in.

> There's more work to be done to handle the different ways
> dissectors are chained together,

In particular:

	Right now, the hash tables are attached to the protocol field in
	the register routines for the TCP and UDP protocols, which means
	that the register routines for protocols that run atop TCP and
	UDP can't use this unless their register routines happen to be
	called after those for TCP and/or UDP; we may want to have the
	registration with the parent protocol done by separate routines,
	with all the initial registration routines called first, and all
	the register-with-parent-protocol routines called after that
	(which would also let us get rid of the hack wherein we call
	"init_dissect_rpc()" before calling "proto_init()").

	Several other protocols need to attach hash tables to fields.

	There's no single global field for Ethernet types so we can't
	even attach a hash table to such a field to allow protocols to
	register themselves with a particular Ethertype; we'd probably
	want to add that as a hidden field, which would be put into the
	tree by "ethertype()" along with the non-hidden ethertype field
	for the protocol whose dissector is calling "ethertype()".