Prefer DNS provider with longest matching zone

This commit is contained in:
Curtis Castrapel 2018-11-30 12:44:52 -08:00
parent a90154e0ae
commit 2a235fb0e2
1 changed files with 7 additions and 1 deletions

View File

@ -215,12 +215,18 @@ class AcmeHandler(object):
:return: dns_providers: List of DNS providers that have the correct zone. :return: dns_providers: List of DNS providers that have the correct zone.
""" """
self.dns_providers_for_domain[domain] = [] self.dns_providers_for_domain[domain] = []
match_length = 0
for dns_provider in self.all_dns_providers: for dns_provider in self.all_dns_providers:
if not dns_provider.domains: if not dns_provider.domains:
continue continue
for name in dns_provider.domains: for name in dns_provider.domains:
if domain.endswith("." + name): if domain.endswith("." + name):
self.dns_providers_for_domain[domain].append(dns_provider) if len(name) > match_length:
self.dns_providers_for_domain[domain] = [dns_provider]
match_length = len(name)
elif len(name) == match_length:
self.dns_providers_for_domain[domain].append(dns_provider)
return self.dns_providers_for_domain return self.dns_providers_for_domain
def finalize_authorizations(self, acme_client, authorizations): def finalize_authorizations(self, acme_client, authorizations):