From: Lennart Poettering Date: Fri, 22 Jan 2016 16:24:05 +0000 (+0100) Subject: resolved: properly propagate query candidate error X-Git-Tag: v229~90^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a7bf2ada62db599efbb2fbabcc4dc45997b87415;p=thirdparty%2Fsystemd.git resolved: properly propagate query candidate error We already properly propagate errors from transactions to queries. Make sure that errors that happened during handling of query candidates are propagated to the query, too. --- diff --git a/src/resolve/resolved-dns-query.c b/src/resolve/resolved-dns-query.c index 1d706f8a438..11179d19260 100644 --- a/src/resolve/resolved-dns-query.c +++ b/src/resolve/resolved-dns-query.c @@ -760,6 +760,15 @@ static void dns_query_accept(DnsQuery *q, DnsQueryCandidate *c) { return; } + if (c->error_code != 0) { + /* If the candidate had an error condition of its own, start with that. */ + state = DNS_TRANSACTION_ERRNO; + q->answer = dns_answer_unref(q->answer); + q->answer_rcode = 0; + q->answer_dnssec_result = _DNSSEC_RESULT_INVALID; + q->answer_errno = c->error_code; + } + SET_FOREACH(t, c->transactions, i) { switch (t->state) {