device-mapper-multipath/0063-libmultipath-introduce-symbolic-values-for-logsink.patch
Benjamin Marzinski 1dad67a5af device-mapper-multipath-0.8.5-1
Update Source to upstream version 0.8.5 plus post tag commits
  * Patches 0001-0102 are from
    https://github.com/openSUSE/multipath-tools/tree/queue and are
    already queued for upstream.
Rename files
  * Previous patches 0059-0068 are now patches 0103-0111
2021-01-19 18:06:09 -06:00

186 lines
5.3 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Sat, 26 Sep 2020 00:32:05 +0200
Subject: [PATCH] libmultipath: introduce symbolic values for logsink
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
libmultipath/debug.c | 4 ++--
libmultipath/debug.h | 6 ++++++
libmultipath/devmapper.c | 4 ++--
multipath/main.c | 4 ++--
multipathd/main.c | 17 ++++++++---------
tests/globals.c | 3 ++-
tests/hwtable.c | 2 +-
7 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/libmultipath/debug.c b/libmultipath/debug.c
index a1713b95..f9b77552 100644
--- a/libmultipath/debug.c
+++ b/libmultipath/debug.c
@@ -25,8 +25,8 @@ void dlog (int sink, int prio, const char * fmt, ...)
va_start(ap, fmt);
if (prio <= libmp_verbosity) {
- if (sink < 1) {
- if (sink == 0) {
+ if (sink != LOGSINK_SYSLOG) {
+ if (sink == LOGSINK_STDERR_WITH_TIME) {
time_t t = time(NULL);
struct tm *tb = localtime(&t);
char buff[16];
diff --git a/libmultipath/debug.h b/libmultipath/debug.h
index 1f3bc8be..b6ce70a7 100644
--- a/libmultipath/debug.h
+++ b/libmultipath/debug.h
@@ -12,3 +12,9 @@ extern int libmp_verbosity;
#define condlog(prio, fmt, args...) \
dlog(logsink, prio, fmt "\n", ##args)
+
+enum {
+ LOGSINK_STDERR_WITH_TIME = 0,
+ LOGSINK_STDERR_WITHOUT_TIME = -1,
+ LOGSINK_SYSLOG = 1,
+};
diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
index dfe95d2f..f8b180e1 100644
--- a/libmultipath/devmapper.c
+++ b/libmultipath/devmapper.c
@@ -104,8 +104,8 @@ dm_write_log (int level, const char *file, int line, const char *f, ...)
return;
va_start(ap, f);
- if (logsink < 1) {
- if (logsink == 0) {
+ if (logsink != LOGSINK_SYSLOG) {
+ if (logsink == LOGSINK_STDERR_WITH_TIME) {
time_t t = time(NULL);
struct tm *tb = localtime(&t);
char buff[16];
diff --git a/multipath/main.c b/multipath/main.c
index 98d93c58..9ac42869 100644
--- a/multipath/main.c
+++ b/multipath/main.c
@@ -817,7 +817,7 @@ main (int argc, char *argv[])
libmultipath_init();
if (atexit(dm_lib_exit) || atexit(libmultipath_exit))
condlog(1, "failed to register cleanup handler for libmultipath: %m");
- logsink = 0;
+ logsink = LOGSINK_STDERR_WITH_TIME;
if (init_config(DEFAULT_CONFIGFILE))
exit(RTVL_FAIL);
if (atexit(uninit_config))
@@ -968,7 +968,7 @@ main (int argc, char *argv[])
if (dev_type == DEV_UEVENT) {
openlog("multipath", 0, LOG_DAEMON);
setlogmask(LOG_UPTO(libmp_verbosity + 3));
- logsink = 1;
+ logsink = LOGSINK_SYSLOG;
}
set_max_fds(conf->max_fds);
diff --git a/multipathd/main.c b/multipathd/main.c
index ba257515..867f0f84 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -2780,7 +2780,7 @@ handle_signals(bool nonfatal)
}
if (log_reset_sig) {
condlog(2, "reset log (signal)");
- if (logsink == 1)
+ if (logsink == LOGSINK_SYSLOG)
log_thread_reset();
}
reconfig_sig = 0;
@@ -3033,7 +3033,7 @@ static void cleanup_child(void)
cleanup_dmevent_waiter();
cleanup_pidfile();
- if (logsink == 1)
+ if (logsink == LOGSINK_SYSLOG)
log_thread_stop();
cleanup_conf();
@@ -3076,7 +3076,7 @@ child (__attribute__((unused)) void *param)
setup_thread_attr(&uevent_attr, DEFAULT_UEVENT_STACKSIZE * 1024, 0);
setup_thread_attr(&waiter_attr, 32 * 1024, 1);
- if (logsink == 1) {
+ if (logsink == LOGSINK_SYSLOG) {
setup_thread_attr(&log_attr, 64 * 1024, 0);
log_thread_start(&log_attr);
pthread_attr_destroy(&log_attr);
@@ -3307,7 +3307,7 @@ main (int argc, char *argv[])
ANNOTATE_BENIGN_RACE_SIZED(&uxsock_timeout, sizeof(uxsock_timeout),
"Suppress complaints about this scalar variable");
- logsink = 1;
+ logsink = LOGSINK_SYSLOG;
if (getuid() != 0) {
fprintf(stderr, "need to be root\n");
@@ -3334,9 +3334,8 @@ main (int argc, char *argv[])
switch(arg) {
case 'd':
foreground = 1;
- if (logsink > 0)
- logsink = 0;
- //debug=1; /* ### comment me out ### */
+ if (logsink == LOGSINK_SYSLOG)
+ logsink = LOGSINK_STDERR_WITH_TIME;
break;
case 'v':
if (sizeof(optarg) > sizeof(char *) ||
@@ -3346,7 +3345,7 @@ main (int argc, char *argv[])
libmp_verbosity = verbosity = atoi(optarg);
break;
case 's':
- logsink = -1;
+ logsink = LOGSINK_STDERR_WITHOUT_TIME;
break;
case 'k':
logsink = 0;
@@ -3379,7 +3378,7 @@ main (int argc, char *argv[])
char * s = cmd;
char * c = s;
- logsink = 0;
+ logsink = LOGSINK_STDERR_WITH_TIME;
if (verbosity)
libmp_verbosity = verbosity;
conf = load_config(DEFAULT_CONFIGFILE);
diff --git a/tests/globals.c b/tests/globals.c
index 8add5eb7..fc0c07ad 100644
--- a/tests/globals.c
+++ b/tests/globals.c
@@ -1,9 +1,10 @@
#include "structs.h"
#include "config.h"
+#include "debug.h"
/* Required globals */
struct udev *udev;
-int logsink = -1;
+int logsink = LOGSINK_STDERR_WITHOUT_TIME;
struct config conf = {
.verbosity = 4,
};
diff --git a/tests/hwtable.c b/tests/hwtable.c
index 57f832b7..4dd0873b 100644
--- a/tests/hwtable.c
+++ b/tests/hwtable.c
@@ -53,7 +53,7 @@ struct hwt_state {
static struct config *_conf;
struct udev *udev;
-int logsink = -1;
+int logsink = LOGSINK_STDERR_WITHOUT_TIME;
struct config *get_multipath_config(void)
{
--
2.17.2