diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-11-28 02:12:30 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-11-28 02:18:46 +0100 |
commit | 8f16f51d9323e87cc78d28e9656984c028071f94 (patch) | |
tree | 0354a56d378fc37f7dd5c0b17d3d138bbb3e99c5 /src/shared/log.c | |
parent | e2cc6eca73cd1df8be552d7c23f9ff3d69c06f1e (diff) |
log: allow negative errno values
sd_bus_error_set_errno() allows negative errors too, hence, be equally
nice.
Diffstat (limited to 'src/shared/log.c')
-rw-r--r-- | src/shared/log.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/shared/log.c b/src/shared/log.c index dcbcd9d9c9..56469b32b5 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -545,6 +545,9 @@ static int log_dispatch( if ((level & LOG_FACMASK) == 0) level = log_facility | LOG_PRI(level); + if (error < 0) + error = -error; + do { char *e; int k = 0; @@ -644,7 +647,7 @@ int log_internalv( /* Make sure that %m maps to the specified error */ if (error != 0) - errno = error; + errno = abs(error); vsnprintf(buffer, sizeof(buffer), format, ap); char_array_0(buffer); @@ -689,7 +692,7 @@ int log_object_internalv( /* Make sure that %m maps to the specified error */ if (error != 0) - errno = error; + errno = abs(error); vsnprintf(buffer, sizeof(buffer), format, ap); char_array_0(buffer); @@ -781,6 +784,9 @@ int log_struct_internal( if ((level & LOG_FACMASK) == 0) level = log_facility | LOG_PRI(level); + if (error < 0) + error = -error; + if ((log_target == LOG_TARGET_AUTO || log_target == LOG_TARGET_JOURNAL_OR_KMSG || log_target == LOG_TARGET_JOURNAL) && |