Files
ddns-updater-qdm12-3/pkg/publicip/dns/options.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
}
}