[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>