We store a list of resolver strategies in order of their preference in
authorflorian <florian@openbsd.org>
Sun, 25 Jul 2021 08:34:43 +0000 (08:34 +0000)
committerflorian <florian@openbsd.org>
Sun, 25 Jul 2021 08:34:43 +0000 (08:34 +0000)
commit61b17b6a9175ab06b88272f2565669e763899d86
treedc6cdb575b15abcb9c819a45e9736587df47525b
parent460fd447b4044fe4d7efeeecca66bb41765355b3
We store a list of resolver strategies in order of their preference in
the configuration struct. This is also an implicit list of enabled
resolver strategies. We have also stored an explict lookup array of
enabled strategies outside of the configuration to be able to quickly
answer "is this strategy enabled" without traversing the preferences
list.

Move this table into the configuration so that we don't need to
"repair" it on config reload.

This fixes a bug where on startup the preferences list and enabled
lookup table were not in sync. It didn't matter in practice since we
do a config reload and then pass in DNSSEC trustanchors on startup.
Both actions combined repaired things.

OK benno
sbin/unwind/parse.y
sbin/unwind/resolver.c
sbin/unwind/unwind.c
sbin/unwind/unwind.h