On Thu, 22 Mar 2001, Guy Harris wrote:
> > I've moved some of the utilites that are in dissectors that packet.c
> > depends on into some utility modules in the epan directory.
> >
> > In particular I've moved some utilities from packet-sna and packet-atalk
> > into epan/atalk-utils.{c,h} and epan/sna-utils.{c,h}.
>
> Hmm.
>
> Perhaps the similar routines for MAC and IP addresses ("ether_to_str()",
> "ether_to_str_punct()", "ip_to_str()", "ip_to_str_buf()",
> "ip6_to_str()") should be moved from "epan/packet.c", which is a bit of
> a grab-bag of stuff, into "epan/ether-utils.c", "epan/ip-utils.c", and
> "epan/ipv6-utils.c"?
>
This is very likely. I'm not really cleaning much as I do this (in
fact I have just realized that I've neglected the Makefile.nmake file...
doh! ). I thought that more specific cleanup could be done on
a subsequent pass.
The eventual goal is to split ethereal into clean pieces. The current
goal is to break compile time dependencies of libethereal on
everything else in ethereal.
There are a couple of tricky things along the way though, and I would
appreciate comments:
1) packet.c depends on dissect_frame
My intention currently is to use the find_dissector,
call_dissector facilities to make this a run time, rather
than compile time, dependency.
2) proto.c depends on register.c
This is a tough one. As previously stated my first instinct
here was to move progressively towards an "all dissectors
are plugins" architecture, but it was very rightly pointed
out that there is a great deal of usefulness in sometimes
being able to compile a static binary. I am thinking about
possible solutions... I need to do a bit more research on
the subject.
Ed