diff options
Diffstat (limited to 'crypto/heimdal/kdc/log.c')
-rw-r--r-- | crypto/heimdal/kdc/log.c | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/crypto/heimdal/kdc/log.c b/crypto/heimdal/kdc/log.c index aa430aa..8cf967f 100644 --- a/crypto/heimdal/kdc/log.c +++ b/crypto/heimdal/kdc/log.c @@ -32,53 +32,62 @@ */ #include "kdc_locl.h" -RCSID("$Id: log.c,v 1.14 2002/08/19 12:17:49 joda Exp $"); - -static krb5_log_facility *logf; +RCSID("$Id: log.c 22254 2007-12-09 06:01:05Z lha $"); void -kdc_openlog(void) +kdc_openlog(krb5_context context, + krb5_kdc_configuration *config) { char **s = NULL, **p; - krb5_initlog(context, "kdc", &logf); + krb5_initlog(context, "kdc", &config->logf); s = krb5_config_get_strings(context, NULL, "kdc", "logging", NULL); if(s == NULL) s = krb5_config_get_strings(context, NULL, "logging", "kdc", NULL); if(s){ for(p = s; *p; p++) - krb5_addlog_dest(context, logf, *p); + krb5_addlog_dest(context, config->logf, *p); krb5_config_free_strings(s); - }else - krb5_addlog_dest(context, logf, DEFAULT_LOG_DEST); - krb5_set_warn_dest(context, logf); + }else { + char *s; + asprintf(&s, "0-1/FILE:%s/%s", hdb_db_dir(context), KDC_LOG_FILE); + krb5_addlog_dest(context, config->logf, s); + free(s); + } + krb5_set_warn_dest(context, config->logf); } char* -kdc_log_msg_va(int level, const char *fmt, va_list ap) +kdc_log_msg_va(krb5_context context, + krb5_kdc_configuration *config, + int level, const char *fmt, va_list ap) { char *msg; - krb5_vlog_msg(context, logf, &msg, level, fmt, ap); + krb5_vlog_msg(context, config->logf, &msg, level, fmt, ap); return msg; } char* -kdc_log_msg(int level, const char *fmt, ...) +kdc_log_msg(krb5_context context, + krb5_kdc_configuration *config, + int level, const char *fmt, ...) { va_list ap; char *s; va_start(ap, fmt); - s = kdc_log_msg_va(level, fmt, ap); + s = kdc_log_msg_va(context, config, level, fmt, ap); va_end(ap); return s; } void -kdc_log(int level, const char *fmt, ...) +kdc_log(krb5_context context, + krb5_kdc_configuration *config, + int level, const char *fmt, ...) { va_list ap; char *s; va_start(ap, fmt); - s = kdc_log_msg_va(level, fmt, ap); + s = kdc_log_msg_va(context, config, level, fmt, ap); if(s) free(s); va_end(ap); } |