From c80504c2b0cfcb8443247a7d87651625e6b65efc Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 5 Feb 2021 18:43:55 +0100 Subject: [PATCH] resolved: suppress ifindex info in varlink JSON responses if zero If we don't have ifindex info, don't set the field for it. We already do that for parsed IP address replies, let's do it for all cases: it's a bit nicer to suppress the ifindex prop if it doesn't apply than to pass it invalid. This is the other side of #18482, i.e. fixes things so that the parser doesn't get tripped up by this. (This too makes a problem go away we should track down properly, i.e. figure out how the ifindex got lost in https://github.com/systemd/systemd/pull/17823#issuecomment-742439422 ) (cherry picked from commit f8f5b8d864d3d034dbbfb84fdad4f2cbeb7790f9) --- src/resolve/resolved-varlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c index 70d6f9056d..25e518f9ec 100644 --- a/src/resolve/resolved-varlink.c +++ b/src/resolve/resolved-varlink.c @@ -180,7 +180,7 @@ static void vl_method_resolve_hostname_complete(DnsQuery *q) { r = json_build(&entry, JSON_BUILD_OBJECT( - JSON_BUILD_PAIR("ifindex", JSON_BUILD_INTEGER(ifindex)), + JSON_BUILD_PAIR_CONDITION(ifindex > 0, "ifindex", JSON_BUILD_INTEGER(ifindex)), JSON_BUILD_PAIR("family", JSON_BUILD_INTEGER(family)), JSON_BUILD_PAIR("address", JSON_BUILD_BYTE_ARRAY(p, FAMILY_ADDRESS_SIZE(family))))); if (r < 0) @@ -406,7 +406,7 @@ static void vl_method_resolve_address_complete(DnsQuery *q) { r = json_build(&entry, JSON_BUILD_OBJECT( - JSON_BUILD_PAIR("ifindex", JSON_BUILD_INTEGER(ifindex)), + JSON_BUILD_PAIR_CONDITION(ifindex > 0, "ifindex", JSON_BUILD_INTEGER(ifindex)), JSON_BUILD_PAIR("name", JSON_BUILD_STRING(normalized)))); if (r < 0) goto finish; -- 2.25.1