From 52a50fe2e548d3a3c112074e9c4e89237c257161 Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Tue, 6 Nov 2012 18:26:34 -0200 Subject: [PATCH] tools: share setting up libkmod log 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 | 3 ++- tools/log.c | 10 ++++++++++ tools/log.h | 3 +++ tools/modprobe.c | 3 +-- tools/rmmod.c | 3 +-- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tools/depmod.c b/tools/depmod.c index 2107770..8741d06 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -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) { diff --git a/tools/log.c b/tools/log.c index 4ca4687..229f41c 100644 --- a/tools/log.c +++ b/tools/log.c @@ -21,9 +21,11 @@ #include #include +#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); +} diff --git a/tools/log.h b/tools/log.h index 6005029..d4fbcdf 100644 --- a/tools/log.h +++ b/tools/log.h @@ -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); diff --git a/tools/modprobe.c b/tools/modprobe.c index 78bbd22..92fd9da 100644 --- a/tools/modprobe.c +++ b/tools/modprobe.c @@ -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); diff --git a/tools/rmmod.c b/tools/rmmod.c index f7201ae..e39a1f0 100644 --- a/tools/rmmod.c +++ b/tools/rmmod.c @@ -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; -- 2.39.2