[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: krb5_warn as replacement for com_err
>>>>> "Aidan" == Aidan Cully <aidan@kublai.com> writes:
Aidan> I've been running into issues with Heimdal's libcom_err...
Aidan> In particular, the fact that krb5_init_ets() doesn't use
Aidan> the global _et_list, but rather uses a private field in the
Aidan> krb5_context. The problem is that the standard libcom_err
Aidan> functions that everyone's used to (error_message(int), and
Aidan> com_err(char *, int, fmt, ...)) have no concept of krb5's
Aidan> private _et_lists. error_message() is effectively replaced
Aidan> by krb5_get_err_text(), but I'm less sure that com_err() is
Aidan> replaced by krb5_warn(). In particular, I'm worried that
Aidan> krb5_warn() doesn't have an equivalent for 'whoami', and
Aidan> that it might log to syslog() itself. So, how should I go
Aidan> about trying to fix the calls to com_err()?
Aidan> Options I'm considering: 1) use krb5_warn(), 2) maybe add a
Aidan> function for retrieving the et_list from the krb5_context,
Aidan> and adding _r variants to most of the com_err functions, 3)
Aidan> add the krb5_get_et_list(kcontext), and just set _et_list =
Aidan> krb5_get_et_list(), or 4) change Heimdal's krb5_init_ets(),
Aidan> and anything that calls com_right(), to use the global
Aidan> _et_list. I believe this matches the MIT behaviour more
Aidan> closely.
Whatever you do, I think it should be a priority to allow Heimdal to
be built with the already installed version of libcom_err - at the
moment that doesn't seem to be possible - see my last message for a
list of problems I encountered.
I don't know anything about libcom_err, so don't really know what all
these symbols are meant to be for.
--
Brian May <bam@snoopy.apana.org.au>