summaryrefslogtreecommitdiff
path: root/sbin/unwind
diff options
context:
space:
mode:
authorFlorian Obser <florian@cvs.openbsd.org>2021-02-07 13:35:42 +0000
committerFlorian Obser <florian@cvs.openbsd.org>2021-02-07 13:35:42 +0000
commit6e89932db2770f23eed786339df944565edcf3fa (patch)
treea6d1396aa039617ba2989754cd9bec6c35e6d78f /sbin/unwind
parent0b57fdf2a12782074d1de5354e4e4b64db9c711d (diff)
Only probe for DNS64 presence when we know that we can talk to the slaacd
provided nameservers, i.e. the stub resolver check succeeded. Previously we would only probe DNS64 on network change but would not reschedule when it failed. Sometimes (most of the time?) this failes because our address is still tentative or a default route has not yet been installed. OK phessler
Diffstat (limited to 'sbin/unwind')
-rw-r--r--sbin/unwind/resolver.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sbin/unwind/resolver.c b/sbin/unwind/resolver.c
index cc9019bf8c5..2db2e7274ab 100644
--- a/sbin/unwind/resolver.c
+++ b/sbin/unwind/resolver.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: resolver.c,v 1.142 2021/02/06 18:01:02 florian Exp $ */
+/* $OpenBSD: resolver.c,v 1.143 2021/02/07 13:35:41 florian Exp $ */
/*
* Copyright (c) 2018 Florian Obser <florian@openbsd.org>
@@ -1142,6 +1142,8 @@ new_resolver(enum uw_resolver_type type, enum uw_resolver_state state)
/* FALLTHROUGH */
case RESOLVING:
resolvers[type]->state = state;
+ if (type == UW_RES_ASR)
+ check_dns64();
break;
}
}
@@ -2053,7 +2055,6 @@ replace_autoconf_forwarders(struct imsg_rdns_proposal *rdns_proposal)
new_resolver(UW_RES_ASR, UNKNOWN);
new_resolver(UW_RES_DHCP, UNKNOWN);
new_resolver(UW_RES_ODOT_DHCP, UNKNOWN);
- check_dns64();
} else {
while ((tmp = TAILQ_FIRST(&new_forwarder_list)) != NULL) {
TAILQ_REMOVE(&new_forwarder_list, tmp, entry);