Skip to content

Commit bbf4f8c

Browse files
committed
feat: add nameservers option
1 parent 732bf0b commit bbf4f8c

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

certbot_dns_multi/_internal/dns_multi.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,21 @@ def add_parser_arguments(
4242
) -> None:
4343
super().add_parser_arguments(add, default_propagation_seconds)
4444
add("credentials", help="MultiDNS credentials INI file.")
45+
add("nameservers", help="Recursive nameservers to use for DNS queries.")
4546

4647
def more_info(self) -> str:
4748
return (
4849
"This plugin performs DNS challenges using one of the DNS providers "
4950
"available via lego"
5051
)
5152

52-
def _setup_credentials(self) -> None:
53+
def _setup_lego_client(self) -> None:
54+
try:
55+
nameservers = self.conf("nameservers").split(",")
56+
logger.debug("Configuring lego with nameservers %s", nameservers)
57+
except:
58+
nameservers = None
59+
5360
self.credentials = self._configure_credentials(
5461
"credentials",
5562
"MultiDNS credentials INI file",
@@ -68,7 +75,8 @@ def _setup_credentials(self) -> None:
6875
provider,
6976
len(lego_environ),
7077
)
71-
LegoClient.configure(provider, lego_environ)
78+
79+
LegoClient.configure(provider, lego_environ, nameservers)
7280

7381
# We are overriding perform and cleanup rather than
7482
# _perform and _cleanup, owing due to the fact that lego wants access
@@ -77,7 +85,7 @@ def perform(
7785
self, achalls: List[achallenges.AnnotatedChallenge]
7886
) -> List[challenges.ChallengeResponse]:
7987
self._do_cleanup = False
80-
self._setup_credentials()
88+
self._setup_lego_client()
8189
self._do_cleanup = True
8290

8391
responses = []

0 commit comments

Comments
 (0)