mirror of
https://github.com/qdm12/ddns-updater.git
synced 2026-04-05 00:43:53 -04:00
38 lines
678 B
Go
38 lines
678 B
Go
package dns
|
|
|
|
import "time"
|
|
|
|
type settings struct {
|
|
providers []Provider
|
|
timeout time.Duration
|
|
}
|
|
|
|
func newDefaultSettings() settings {
|
|
return settings{
|
|
providers: ListProviders(),
|
|
timeout: time.Second,
|
|
}
|
|
}
|
|
|
|
type Option func(s *settings) error
|
|
|
|
func SetProviders(first Provider, providers ...Provider) Option {
|
|
return func(s *settings) error {
|
|
providers = append(providers, first)
|
|
for _, provider := range providers {
|
|
if err := ValidateProvider(provider); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
s.providers = providers
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func SetTimeout(timeout time.Duration) Option {
|
|
return func(s *settings) error {
|
|
s.timeout = timeout
|
|
return nil
|
|
}
|
|
}
|