On Fri, Apr 30, 2004 at 08:10:53PM -0400, Jonathan Margulies wrote:
> In packet-fip.c:
> static void
> dissect_fip(...
> ...
> /* call the next dissector */
> next_tvb = tvb_new_subset(tvb, hlen, MIN(fiph->ip_len - hlen,
> tvb_length(tvb) - hlen),
> fiph->ip_len - hlen);
>
> call_dissector(data_handle, next_tvb, pinfo, tree);
> }
That's not going to hand off to any dissector other than the data
dissector.
> void
> proto_register_fip(void)
> {
> ...
> proto_fip = proto_register_protocol("Fake Internet Protocol", "FIP", "fip");
> proto_register_field_array(proto_fip, hf, array_length(hf));
> proto_register_subtree_array(ett, array_length(ett));
> fip_dissector_table = register_dissector_table("fip.proto",
> "FIP Protocol", FT_UINT8, BASE_DEC);
You'll have to *use* "fip_dissector_table" - merely creating it doesn't
cause it to be used. See "dissector_try_port()".
Powered by MHonArc 2.6.10