> The Win32 ethereal-20000209 snapshot refuses to load all files
> This happens with most of the files (f.i. IMAP):
> GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_
> table != NULL' failed.
>
> GLib-CRITICAL **: file gmem.c: line 575 (g_mem_chunk_alloc): assertion `mem_chun
> k != NULL' failed.
>
> Here I have to close the app myself.
>
> But some (ipv6-ripng) also fail on an assertion for the hf structure in proto.c
> ** ERROR **: file U:/ethereal/src/proto.c: line 224: assertion failed: (hfindex
> >= 0 && hfindex < gpa_hfinfo->len)
> aborting...
>
> And here it closes all by itself.
These may both be due to the "register.c" file used to build that
snapshot being incomplete, i.e. not calling the register routines for
certain protocols, so that they don't
1) initialize various internal data structures such as the hash
tables about which the warning messages are complaining;
2) register their protocol fields, so that when they try to add
that field to the protocol tree, the protocol-tree code finds
it doesn't know about that field, and therefore aborts the
program.
Unfortunately, the "register.c" file is constructed with tools that,
whilst they're likely to be on most if not all UNIX-compatible OSes, are
not necessarily present on Win32 systems, so the build might have used
an older version of the file; when the Win32 builds are done, we should
probably do them in a directory in which we've first done a UNIX build -
or should change the top-level "Makefile.nmake" to try to use the Cygwin
versions of said tools, if possible, just as it currently relies on
some flavor of YACC and LEX being present *if* the ".y" and/or ".l"
files are more recent than the ".c" and ".h" files generated from them
("config.nmake" is set up to assume that Cygwin has been installed in
"t:\w32-ix86\cygnus\cygwin-b20\H-i586-cygwin32").