From 50f069566f4747542e30f4ab9ad0b3aa0b1df55a Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 7 Feb 2021 13:35:41 +0000 Subject: [PATCH] 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 --- sbin/unwind/resolver.c | 5 +++-- 1 file 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 @@ -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); -- 2.20.1