From: Lennart Poettering Date: Fri, 22 Jan 2016 11:22:05 +0000 (+0100) Subject: resolved: when synthesizing RR responses, own the name fully X-Git-Tag: v229~90^2~11 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=528e685ebd3657f2531f8666c9e4bba6fbd38acd;p=thirdparty%2Fsystemd.git resolved: when synthesizing RR responses, own the name fully When we synthesize A/AAAA for domains like "localhost", then make sure we generate ENODATA if the user asks for RR types such a RP to be solved on the name. Previously, we'd pass the error back in that case that was generated from the usual lookup procedure. --- diff --git a/src/resolve/resolved-dns-synthesize.c b/src/resolve/resolved-dns-synthesize.c index e12bb6e8283..d93741b7362 100644 --- a/src/resolve/resolved-dns-synthesize.c +++ b/src/resolve/resolved-dns-synthesize.c @@ -348,6 +348,7 @@ int dns_synthesize_answer( _cleanup_(dns_answer_unrefp) DnsAnswer *answer = NULL; DnsResourceKey *key; + bool found = false; int r; assert(m); @@ -398,10 +399,13 @@ int dns_synthesize_answer( r = synthesize_gateway_ptr(m, af, &address, ifindex, &answer); if (r < 0) return log_error_errno(r, "Failed to synthesize gateway hostname PTR RR: %m"); - } + } else + continue; + + found = true; } - r = dns_answer_size(answer) > 0; + r = found; if (ret) { *ret = answer;