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 <https://tools.ietf.org/html/rfc2181#section-10.2>, and there
seems to be no benefit to not supporting it.
This commit is contained in:
Tom Gundersen
2015-11-26 04:03:08 +01:00
parent 09eaf68ce4
commit 95d46fcaa4
+9 -1
View File
@@ -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)