ntp: repeat resolving until all pool sources are resolved

When resolving of a pool name succeeds, don't remove the remaining
unresolved sources, i.e. try to get all maxsources (default 4) sources,
even if it takes multiple DNS requests.
This commit is contained in:
Miroslav Lichvar
2020-02-18 13:45:13 +01:00
parent 8c25632321
commit 9d1c1505b9
2 changed files with 11 additions and 13 deletions

View File

@@ -424,10 +424,6 @@ process_resolved_name(struct UnresolvedSource *us, IPAddr *ip_addrs, int n_addrs
break;
}
}
/* Remove pool sources that didn't get an address */
if (us->pool != INVALID_POOL)
remove_pool_sources(us->pool, 0, 1);
}
/* ================================================== */
@@ -485,9 +481,9 @@ name_resolve_handler(DNS_Status status, int n_addrs, IPAddr *ip_addrs, void *any
next = us->next;
/* Don't repeat the resolving if it didn't (temporarily) fail, it was a
/* Don't repeat the resolving if it (permanently) failed, it was a
replacement of a real address, or all addresses are already resolved */
if (status != DNS_TryAgain || UTI_IsIPReal(&us->address.ip_addr) || is_resolved(us))
if (status == DNS_Failure || UTI_IsIPReal(&us->address.ip_addr) || is_resolved(us))
remove_unresolved_source(us);
resolving_source = next;