]> git.ipfire.org Git - thirdparty/pdns.git/commit
Generate EDE in more cases, specifically on unreachable auths or synthesized results.
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 14 Dec 2022 13:06:36 +0000 (14:06 +0100)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Fri, 16 Dec 2022 08:54:00 +0000 (09:54 +0100)
commit3e5667f995c7825bf17fd0622f72d1609101370e
tree64cb22e57c4ccd82bb2743db127cba1b7657a30c
parentf14e593aa622afb8263f42a92c7df18ac2763ac5
Generate EDE in more cases, specifically on unreachable auths or synthesized results.

As there is no specific EDE for synthesised, use noError with a text.

We have to be careful here: a single client query can lead to
multiple beginResolve calls. Some of these are done after the main
result has been looked up, for example to validate the result. These
subsequent calls can generate EDE's but we do not want to copy the
EDE to the main result in those cases. A typical example would be
an absent DS for an Insecure domain. Nothing wrong with these but
we do not want the potential absent DS EDE (which could be synthesize)
to be returned with the main query,

To solve this, mimic the processing of validation state and add
an extra argument to a few methods.

I am not terribly happy with the extra argument. Maybe we should
move to an object holding the parameters and result status of the
nested or subsequent calls.  This would also avoid some of the saveX,
setX, beginResolve, restore X sequences.

So marking this as Draft for now.
pdns/recursordist/pdns_recursor.cc
pdns/recursordist/rec-main.cc
pdns/recursordist/rec-main.hh
pdns/recursordist/syncres.cc
pdns/recursordist/syncres.hh