@@ -50,7 +50,8 @@ import (
5050// the delegated dns providers may be dynamically instantiated
5151var NewDNSChallengeProviderByName func (string ) (acme.ChallengeProvider , error )
5252
53- type MultiProvider struct {
53+ // DNSProvider implements a dns provider that selects which other providers to use for each domain individually.
54+ type DNSProvider struct {
5455 config * MultiProviderConfig
5556 providers map [string ]acme.ChallengeProvider
5657}
@@ -97,15 +98,15 @@ func (a AggregateProviderTimeout) Timeout() (timeout, interval time.Duration) {
9798 return
9899}
99100
100- func (m * MultiProvider ) getProviderForDomain (domain string ) (acme.ChallengeProvider , error ) {
101- names , err := m .config .providerNamesForDomain (domain )
101+ func (d * DNSProvider ) getProviderForDomain (domain string ) (acme.ChallengeProvider , error ) {
102+ names , err := d .config .providerNamesForDomain (domain )
102103 if err != nil {
103104 return nil , err
104105 }
105106 var agg AggregateProvider
106107 anyTimeouts := false
107108 for _ , n := range names {
108- p , err := m .providerByName (n )
109+ p , err := d .providerByName (n )
109110 if err != nil {
110111 return nil , err
111112 }
@@ -124,17 +125,17 @@ func (m *MultiProvider) getProviderForDomain(domain string) (acme.ChallengeProvi
124125 return agg , nil
125126}
126127
127- func (m * MultiProvider ) providerByName (name string ) (acme.ChallengeProvider , error ) {
128- if p , ok := m .providers [name ]; ok {
128+ func (d * DNSProvider ) providerByName (name string ) (acme.ChallengeProvider , error ) {
129+ if p , ok := d .providers [name ]; ok {
129130 return p , nil
130131 }
131- if params , ok := m .config .Providers [name ]; ok {
132- return m .buildProvider (name , params )
132+ if params , ok := d .config .Providers [name ]; ok {
133+ return d .buildProvider (name , params )
133134 }
134135 return nil , fmt .Errorf ("Couldn't find appropriate config for dns provider named '%s'" , name )
135136}
136137
137- func (m * MultiProvider ) buildProvider (name string , params map [string ]string ) (acme.ChallengeProvider , error ) {
138+ func (d * DNSProvider ) buildProvider (name string , params map [string ]string ) (acme.ChallengeProvider , error ) {
138139 pType := name
139140 origEnv := map [string ]string {}
140141
@@ -166,31 +167,31 @@ func (m *MultiProvider) buildProvider(name string, params map[string]string) (ac
166167 if err != nil {
167168 return nil , err
168169 }
169- m .providers [name ] = prv
170+ d .providers [name ] = prv
170171 return prv , nil
171172}
172173
173- func New () (* MultiProvider , error ) {
174+ func New () (* DNSProvider , error ) {
174175 config , err := getConfig ()
175176 if err != nil {
176177 return nil , err
177178 }
178- return & MultiProvider {
179+ return & DNSProvider {
179180 providers : map [string ]acme.ChallengeProvider {},
180181 config : config ,
181182 }, nil
182183}
183184
184- func (m * MultiProvider ) Present (domain , token , keyAuth string ) error {
185- provider , err := m .getProviderForDomain (domain )
185+ func (d * DNSProvider ) Present (domain , token , keyAuth string ) error {
186+ provider , err := d .getProviderForDomain (domain )
186187 if err != nil {
187188 return err
188189 }
189190 return provider .Present (domain , token , keyAuth )
190191}
191192
192- func (m * MultiProvider ) CleanUp (domain , token , keyAuth string ) error {
193- provider , err := m .getProviderForDomain (domain )
193+ func (d * DNSProvider ) CleanUp (domain , token , keyAuth string ) error {
194+ provider , err := d .getProviderForDomain (domain )
194195 if err != nil {
195196 return err
196197 }
0 commit comments