Ethereal-dev: Re: [ethereal-dev] Visited is zero after a filter operation ...

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

From: Guy Harris <guy@xxxxxxxxxx>
Date: Wed, 23 Aug 2000 10:59:16 -0700 (PDT)
> What will happen if the 'visited' flag isn't reset, and the
> conversation_init() and
> init_all_protocols() aren't called before a secondary pass through the
> packets?

Those dissectors that currently explicitly or implicitly rely on, in
effect, seeing packets only once before all their state is reset will
malfunction to a greater degree than they do now, and will have to be
fixed, which may involve attaching data to packets.

(See my previous comment about the RPC dissector, which is what provoked
me to call the dissectors' init routines on every rescan in the first
place; that change merely got rid of the most obvious problem, but it
still may get confused about whether a request is a duplicate or not -
it will *have* to be changed to attach to duplicate frames an indication
of whether they're duplicates, because if it makes that decision based
merely on whether it's seen a request or reply with the same XID
already, it'll get confused if you ever click on any request or reply,
*including the original one*.)

At this point, *I'd* vote for biting the bullet, not resetting the
visited flag on a rescan, and not calling "conversation_init()" or
"init_all_protocols()" on a rescan, and fixing all dissectors that this
breaks, rather than coming up with more elaborate workarounds for
clearing out all information on a rescan.