poldek: poldek/lib_init.c - fixed --log (http://lists.pld-linux.or...
mis
mis at pld-linux.org
Fri Jul 6 00:59:25 CEST 2007
Author: mis Date: Thu Jul 5 22:59:25 2007 GMT
Module: poldek Tag: HEAD
---- Log message:
- fixed --log (http://lists.pld-linux.org/mailman/pipermail/pld-devel-pl/2007-July/141644.html)
---- Files affected:
poldek/poldek:
lib_init.c (1.84 -> 1.85)
---- Diffs:
================================================================
Index: poldek/poldek/lib_init.c
diff -u poldek/poldek/lib_init.c:1.84 poldek/poldek/lib_init.c:1.85
--- poldek/poldek/lib_init.c:1.84 Fri Jul 6 00:28:53 2007
+++ poldek/poldek/lib_init.c Fri Jul 6 00:59:20 2007
@@ -1148,6 +1148,7 @@
{
va_list ap;
void *vv;
+ char *vs;
int rc = 1;
va_start(ap, param);
@@ -1179,12 +1180,21 @@
n_hash_replace(ctx->_cnf, "pm", n_strdup(vv));
break;
- case POLDEK_CONF_LOGFILE:
- vv = va_arg(ap, void*);
- if (vv) {
- FILE *stream = fopen(vv, "a");
- if (stream)
- poldek_log_set_default_appender("_FILE", stream, (tn_fn_free)fclose);
+ /*
+ XXX: log appenders are incomplete: a) there is no way to remove
+ particular one; b) poldek_log_set_appender()
+ removes all appenders added before.
+ */
+ case POLDEK_CONF_LOGFILE:
+ if ((vs = va_arg(ap, char*))) {
+ FILE *stream = fopen(vs, "a");
+ if (stream == NULL) {
+ log(LOGERR, "%s: open failed: %m", vs);
+ rc = 0;
+ } else {
+ poldek_log_add_appender("_FILE", stream, (tn_fn_free)fclose,
+ 0, NULL);
+ }
}
break;
================================================================
---- CVS-web:
http://cvs.pld-linux.org/poldek/poldek/lib_init.c?r1=1.84&r2=1.85&f=u
More information about the pld-cvs-commit
mailing list