]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
tools: share setting up libkmod log
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Nov 2012 20:26:34 +0000 (18:26 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Nov 2012 20:52:09 +0000 (18:52 -0200)
This also fixes a bug in "e6996c5 rmmod: route all messages to syslog if
told to" in which "+ verbose" was removed. Instead of letting verbose
add to kmod_get_log_priority(), let it be similar to the other programs
instead.

tools/depmod.c
tools/log.c
tools/log.h
tools/modprobe.c
tools/rmmod.c

index 2107770dd04e188efc5518f6fd34b06e26edb7d3..8741d0607b16f9236da7d459472d4bddaec04932 100644 (file)
@@ -2673,7 +2673,8 @@ static int do_depmod(int argc, char *argv[])
                CRIT("kmod_new(\"%s\", {NULL}) failed: %m\n", cfg.dirname);
                goto cmdline_failed;
        }
-       kmod_set_log_priority(ctx, verbose);
+
+       log_setup_kmod_log(ctx, verbose);
 
        err = depmod_init(&depmod, &cfg, ctx);
        if (err < 0) {
index 4ca46877b4d832e7597c0ca628b8ec3ea31ee2e9..229f41cc441736d50c06c8a2783345ae3de7d085 100644 (file)
 #include <stdlib.h>
 #include <syslog.h>
 
+#include "libkmod.h"
 #include "kmod.h"
 
 static bool log_use_syslog;
+static int log_priority = LOG_ERR;
 
 void log_open(bool use_syslog)
 {
@@ -67,3 +69,11 @@ void log_kmod(void *data, int priority, const char *file, int line,
        free(str);
        (void)data;
 }
+
+void log_setup_kmod_log(struct kmod_ctx *ctx, int priority)
+{
+       log_priority = priority;
+
+       kmod_set_log_priority(ctx, log_priority);
+       kmod_set_log_fn(ctx, log_kmod, NULL);
+}
index 6005029510e6a8ea5772a3c8c45d8ecc0d5acd5d..d4fbcdf5e854663fbe2e4a5c0ba2c61772c9ec27 100644 (file)
@@ -28,6 +28,9 @@ void log_close(void);
 void log_kmod(void *data, int priority, const char *file, int line,
              const char *fn, const char *format, va_list args);
 
+struct kmod_ctx;
+void log_setup_kmod_log(struct kmod_ctx *ctx, int priority);
+
 _always_inline_ const char *prio_to_str(int prio);
 
 
index 78bbd22df142ba9a3b07e53f04406f17a8a7f3e2..92fd9da237dd0c2cc8a2bf0028f3dfabe57aa23f 100644 (file)
@@ -929,8 +929,7 @@ static int do_modprobe(int argc, char **orig_argv)
                goto done;
        }
 
-       kmod_set_log_priority(ctx, verbose);
-       kmod_set_log_fn(ctx, log_kmod, NULL);
+       log_setup_kmod_log(ctx, verbose);
 
        kmod_load_resources(ctx);
 
index f7201ae76405e6ac2287a3455016e86a303feb97..e39a1f035413fa463401260ac3a3caeb564156c7 100644 (file)
@@ -180,8 +180,7 @@ static int do_rmmod(int argc, char *argv[])
                goto done;
        }
 
-       kmod_set_log_priority(ctx, kmod_get_log_priority(ctx));
-       kmod_set_log_fn(ctx, log_kmod, NULL);
+       log_setup_kmod_log(ctx, verbose);
 
        for (i = optind; i < argc; i++) {
                struct kmod_module *mod;