From: Zbigniew Jędrzejewski-Szmek Date: Thu, 10 Dec 2020 10:56:05 +0000 (+0100) Subject: json: log location also when there is no file X-Git-Tag: v248-rc1~524^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d401a5e41174e819304d69e12b43d3ab323ae8eb;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/shared/json.c b/src/shared/json.c index 28fe482749d..655bbcc6bbc 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),