Ethereal-dev: Re: [Ethereal-dev] Removing dissectors

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

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Wed, 14 Jan 2004 19:58:32 -0800

On Jan 14, 2004, at 6:59 PM, Richard Sharpe wrote:

So what they really want is a way to prevent particular dissectors from handing anything off to subdissectors. That *could* be done at startup time, but I could also imagine somebody wanting to dynamically turn off
handoff from some particular protocol *and* turn it on again, so that
they could, for example, look at a trace purely from the standpoint of
TCP and then turn handoff from TCP back on again.

Yes, that is true, but in this case, he would probably re-run tethereal
over the same capture with a different set of protocols (perhaps none)
disabled.

Yes, but I'm not thinking about this as a feature solely for his particular requirement, I'm thinking about whether a general solution would help there *and* elsewhere.

The former requires API changes; the latter wouldn't, as the handoff
routines could maintain that, just as they maintain the "current_proto"
member of the "packet_info" structure.  (It'd require changes in those
few places where handoff isn't done with handoff routines - those could
be found by looking for places where "pinfo->current_proto" is
changed.)

Hmmm, it is not clear to me how that helps to prevent dissection beyond a
particular horizon ... perhaps I am just jetlagged ...

It helps by doing the work in the mostly-centralized handoff process, so most dissectors wouldn't have to be changed to support this.