From: Tom Gundersen Date: Thu, 26 Nov 2015 02:58:08 +0000 (+0100) Subject: resolved: bus - follow CNAME chains when resolving addresses X-Git-Tag: v231~910^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=95d46fcaa4f27bc5e675e8de39ab3acc4732e39b;p=platform%2Fupstream%2Fsystemd.git resolved: bus - follow CNAME chains when resolving addresses It may be unexpected to find a CNAME record when doing a reverse lookup, as we expect to find a PTR record directly. However, it is explicitly supported according to , and there seems to be no benefit to not supporting it. --- diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c index a43aa59..da1b501 100644 --- a/src/resolve/resolved-bus.c +++ b/src/resolve/resolved-bus.c @@ -298,7 +298,15 @@ static void bus_method_resolve_address_complete(DnsQuery *q) { goto finish; } - /* We don't process CNAME for PTR lookups. */ + r = dns_query_process_cname(q); + if (r == -ELOOP) { + r = sd_bus_reply_method_errorf(q->request, BUS_ERROR_CNAME_LOOP, "CNAME loop detected, or CNAME resolving disabled on '%s'", dns_question_name(q->question)); + goto finish; + } + if (r < 0) + goto finish; + if (r > 0) /* This was a cname, and the query was restarted. */ + return; r = sd_bus_message_new_method_return(q->request, &reply); if (r < 0)