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