On Thu, Jan 25, 2001 at 12:46:29PM +1030, Glen Turner wrote:
> It also allows one variable change to alter the behaviour of that
> FT type across all dissectors. For example, consider someone in
> Australia doing a decode of stuff captured in the US. There's
> currently no way to apply a consistent local time offset short
> of stuffing about with the operating system.
So what change to the code are you proposing there? (I.e., how are you
proposing that we convert time stamps to local time?)
Note that, at least in some cases, "stuffing about with the operating
system" would, at least when running from the command line on many
UNIX-flavored systems, consist of doing
TZ=:America/New_York ethereal
to run Ethereal in an environment where it thinks it's in the North
American Eastern time zone.
> More precise FT types also help dissector authors from falling
> into traps. Ethereal currently has one type for dotted-quad IPv4
> addresses. This is bad: source addresses are different from
> destination addresses
In what way are they different *types*?
> are different from route advertisment
> addresses are different from subnet masks. At the moment Ethereal
> doesn't highlight impossible multicast source addresses, doesn't
> highlight a routing mask of 255.255.255.254 (/31), doesn't
> highlight a destination address of 0.0.0.0, doesn't highlight
> a route of 127.0.0.0/8-32.
There are a *lot* of different places in which IPv4 addresses appear in
packets; should *every single one of them* get a different FT_ type? If
so, then you haven't really saved the dissector writers any work, you've
just moved the trap.
> Notoriously complex fields like times and intervals are not
> handled well at all. And worse, they are handled inconsistently
> between dissectors.
How would having multiple types for times make it *easier* to handle
them consistently? There are many different ways in which times are
represented in protocols; how would it make a difference whether there
were N different bits of code in dissectors to handle them or N
different bits of code in "core Ethereal" to handle them?