On Wed, Dec 12, 2001 at 08:16:50AM -0000, Nick.Baldwin@xxxxxxxxxxxxxxxxxxxxx wrote:
> Ethereal is a selectable package from the install media but
> segfaults on SNMP packets.
I am sorely tempted, at this point, to check in the changes somebody
sent, ages ago, to make Ethereal use libsmi rather than the {UCD,CMU}
SNMP libraries to parse MIB information.
The only reasons I haven't done it are
1) it took a noticeable time to load the MIB files (I don't know
how whether that's just because libsmi comes with more MIB
files or if the parser is slower as well)
and
2) I wasn't sure whether people were as like to have it
installed
but it *does* have the advantage that it's *not* a full SNMP library.
Ethereal isn't an SNMP client or agent, it's just a dissector of SNMP
PDUs, so it doesn't need all the stuff a full SNMP library has, and, not
being a full SNMP library, libsmi doesn't, as far as I know, end up
depending on crypto libraries, or on "fetch statistics from the kernel"
libraries (as UCD SNMP does on Solaris), so the configuration script
stuff may be simpler, as may be the dependencies (RH RPMs of Ethereal
have been having problems for a while; whether this is due to RPMs
including all packages the package in question {transitive closure of
"depends on"}, so that if a package it depends on changes its
dependencies, the original package breaks, or what, I don't know).
It also means we don't have to worry about UCD vs. CMU SNMP.
I don't know whether anybody's gotten it to build with MSVC++, though.
The page at
http://www.ibr.cs.tu-bs.de/projects/libsmi/download.html
says "Development takes place on Solaris 2.5.1 and Linux. At least
FreeBSD and W32-cygwin are reported to work also.", but "W32-cygwin
works" isn't the same as "MSVC++ works".
It may also be sufficiently less well-known that people working at Linux
distributors are less likely to "improve" it in an incompatible fashion;
it doesn't have its own formatting routines, so at least nobody can
"improve" it by changing the APIs of the formatting routines in an
incompatible fashion.
The APIs *did* change between the 0.1 and 0.2 versions of the library,
but the guy who sent the changes to make Ethereal use it indicated, as I
remember, that the API probably wouldn't change incompatibly. (Tcpdump
can optionally be configured to use libsmi, so if they break it, we're
not the only people they'd mess up....)