com_err reunification

Marcus Watts mdw at umich.edu
Sun Jul 9 22:00:58 EDT 2006


> > Heimdal's error_message() handles "non-standard" bases.  That is,
> > a table for which et->table->base is not 0 mod 256.
> > I don't know if this was intentional on their part,
> > but it's certainly useful and causes no harm.
> 
> Can you send me a sample .et file and what the resulting .c and .h
> files should look like (for a regression test suite).  I assume it is
> just
> 
> 	base <number>
> 
> and it must be after the "error_table" declaration, but before any
> "error_code" lines?  (or else the behaviour is undefined?).  One of
> the problems is that not all of the extensions have been necessarily
> explicitly defined with the backwards compatibility statements defined
> and coordinated amongst all users.

To be fair, I don't think the heimdal folks actually implemented
"base" in compile_et.  They just implement code that is "base" friendly;
taking advantage of that and adding "base" to compile_et is my fault.
But yes, your assumption is just exactly what I did.

sample .et & resulting *.[ch] files for 3 different initialization schemes.
/afs/umich.edu/group/itd/build/mdw/et/example/

	afserror.et
	afs.c
	afs.h
	mit.c
	mit.h
	heimdal.c
	heimdal.h
(afserror.et is also ../src/ there...)

Note, "afs", "mit", "heimdal" here merely capture my
best attempt to duplicate what one older version of afs,
mit, & heimdal appeared to do for me.  It doesn't necessarily
mean that's what any of these groups wants to or actually does
do today.
	afs = add_to_error_table
	heimdal = manipulate _et_list directly
	mit = add_error_table
right off, the heimdal case is named wrong - looks like modern heimdal
at least (20060410) wants to use initialize_error_table_r() instead.
Probably the copy I built actually used the e2fsprogs compile_et so
I've probably misnamed this case.

afserror.et contains 3 error tables (which itself is a non-standard
extension) which are
	rx(-8..-1)
	rxgen(-457..-450)
	vice(101..111)
This may not encompass all the error codes AFS can generate (for
instance, VRESTRICTED=120, VRESTARTING=-100).  but it does encompass
all the "special" error codes AFS is actually capable of decoding
during printing, plus a very few AFS doesn't (RX_EOF), or more details
about the ones that it does (RXGEN_CC_MARSHAL).  (true at least in
1.4.1).

				-Marcus



More information about the krbdev mailing list