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