@@ -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