summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2006-07-18 02:18:11 +0000
committerPeter Jones <pjones@redhat.com>2006-07-18 02:18:11 +0000
commit9ba0ffafac530c5c74aabac04e8a53a35265d304 (patch)
treeaf00f88ab5e0abce428f7ef38830b201499fc8b6
parent9f26a0966b93fc374caed6c5c99ecbac7341c2c2 (diff)
downloadanaconda-9ba0ffafac530c5c74aabac04e8a53a35265d304.tar.gz
anaconda-9ba0ffafac530c5c74aabac04e8a53a35265d304.tar.xz
anaconda-9ba0ffafac530c5c74aabac04e8a53a35265d304.zip
- make nashHotplugLogger use logMessageV()
-rw-r--r--ChangeLog8
-rw-r--r--loader2/loader.c30
-rw-r--r--loader2/log.c27
-rw-r--r--loader2/log.h3
4 files changed, 49 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index 95f887f5c..064a75228 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2006-07-17 Peter Jones <pjones@redhat.com>
+ * loader2/log.c: add logMessageV()
+
+ * loader2/log.h: ditto
+
+ * loader2/loader.c (nashHotplugLogger): make this use logMessageV
+
+2006-07-17 Peter Jones <pjones@redhat.com>
+
* dmraid.py: multipath functions analogous to those for dmraid. Also
make DmDriveCache more generic.
diff --git a/loader2/loader.c b/loader2/loader.c
index 2ac757104..3978abc73 100644
--- a/loader2/loader.c
+++ b/loader2/loader.c
@@ -1230,19 +1230,29 @@ static int anaconda_trace_init(void) {
int nashHotplugLogger(nashContext *nc, const nash_log_level level,
const char *fmt, va_list ap) {
- FILE *f = fopen("/tmp/hotplug.log", "a+");
- int ret;
+ int loglevel;
va_list apc;
+
+ switch (level) {
+ case NASH_DEBUG:
+ loglevel = DEBUGLVL;
+ break;
+ case NASH_WARNING:
+ loglevel = WARNING;
+ break;
+ case NASH_ERROR:
+ loglevel = ERROR;
+ break;
+ default:
+ case NASH_NOTICE:
+ loglevel = INFO;
+ break;
+ }
- ret = fprintf(f ? f : stderr, "<%d> ", level);
- va_copy(apc, ap);
- if (ret > 0)
- ret = vfprintf(f ? f : stderr, fmt, apc);
+ va_copy(ap, apc);
+ logMessageV(loglevel, fmt, apc);
va_end(apc);
-
- if (f)
- fclose(f);
- return ret;
+ return 0;
}
int main(int argc, char ** argv) {
diff --git a/loader2/log.c b/loader2/log.c
index e93a87a78..9714da33f 100644
--- a/loader2/log.c
+++ b/loader2/log.c
@@ -61,34 +61,43 @@ static void printLogHeader(int level, FILE *outfile) {
}
}
-void logMessage(int level, const char * s, ...) {
- va_list args;
+void logMessageV(int level, const char * s, va_list ap) {
/* Only log to the screen things that are above the minimum level. */
if (tty_logfile && level >= minLevel) {
- va_start(args, s);
+ va_list apc;
+
+ va_copy(ap, apc);
printLogHeader(level, tty_logfile);
- vfprintf(tty_logfile, s, args);
+ vfprintf(tty_logfile, s, apc);
fprintf(tty_logfile, "\n");
fflush(tty_logfile);
- va_end(args);
+ va_end(apc);
}
/* But log everything to the file. */
if (file_logfile) {
- va_start(args, s);
+ va_list apc;
+
+ va_copy(ap, apc);
printLogHeader(level, file_logfile);
- vfprintf(file_logfile, s, args);
+ vfprintf(file_logfile, s, apc);
fprintf(file_logfile, "\n");
fflush(file_logfile);
- va_end(args);
+ va_end(apc);
}
+}
+
+void logMessage(int level, const char * s, ...) {
+ va_list args;
- return;
+ va_start(args, s);
+ logMessageV(level, s, args);
+ va_end(args);
}
void openLog(int useLocal) {
diff --git a/loader2/log.h b/loader2/log.h
index 48e64c2f1..a3a366175 100644
--- a/loader2/log.h
+++ b/loader2/log.h
@@ -2,6 +2,7 @@
#define _LOG_H_
#include <stdio.h>
+#include <stdarg.h>
#define DEBUGLVL 10
#define INFO 20
@@ -9,6 +10,8 @@
#define ERROR 40
#define CRITICAL 50
+void logMessageV(int level, const char * s, va_list ap)
+ __attribute__ ((format (printf, 2, 0)));
void logMessage(int level, const char * s, ...)
__attribute__ ((format (printf, 2, 3)));
void openLog(int useLocal);