summaryrefslogtreecommitdiff
path: root/src/shared/json.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-12-10 11:56:05 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-12-10 13:00:02 +0100
commitd401a5e41174e819304d69e12b43d3ab323ae8eb (patch)
treef8ec6ee8d4a9cbdb05a80324a84bf2856d1ac1f8 /src/shared/json.c
parent9e36b885b894f1b2a53fa234a238e736582021c4 (diff)
downloadsystemd-d401a5e41174e819304d69e12b43d3ab323ae8eb.tar.gz
json: log location also when there is no file
E.g. in nss-resolve it is still useful to print the location of the error: src/test/test-nss.c:231: dlsym(0x0x1dc6fb0, _nss_resolve_gethostbyname2_r) → 0x0x7fdbfc53f626 (string):1:40: JSON field ifindex is out of bounds for an interface index. I opted to use a partially duplicated if condition to avoid nesting. It's nice to have the log calls vertically aligned. The compiler will optimize this nicely.
Diffstat (limited to 'src/shared/json.c')
-rw-r--r--src/shared/json.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/shared/json.c b/src/shared/json.c
index 28fe482749..655bbcc6bb 100644
--- a/src/shared/json.c
+++ b/src/shared/json.c
@@ -3854,6 +3854,16 @@ int json_log_internal(
"CONFIG_COLUMN=%u", source_column,
LOG_MESSAGE("%s:%u:%u: %s", source, source_line, source_column, buffer),
NULL);
+ else if (source_line > 0 && source_column > 0)
+ return log_struct_internal(
+ LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
+ error,
+ file, line, func,
+ "MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,
+ "CONFIG_LINE=%u", source_line,
+ "CONFIG_COLUMN=%u", source_column,
+ LOG_MESSAGE("(string):%u:%u: %s", source_line, source_column, buffer),
+ NULL);
else
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),