chore: extend conditional option

This commit is contained in:
Fernandez Ludovic 2026-02-26 15:44:50 +01:00
commit c8a455c506
No known key found for this signature in database
GPG key ID: 581FF80B781EF668
2 changed files with 20 additions and 9 deletions

View file

@ -10,8 +10,8 @@ import (
type ChallengeOption func(*Challenge) error
// CondOption Conditional challenge option.
func CondOption(condition bool, opt ChallengeOption) ChallengeOption {
// CondOptions Conditional challenge options.
func CondOptions(condition bool, opt ...ChallengeOption) ChallengeOption {
if !condition {
// NoOp options
return func(*Challenge) error {
@ -19,7 +19,16 @@ func CondOption(condition bool, opt ChallengeOption) ChallengeOption {
}
}
return opt
return func(chlg *Challenge) error {
for _, opt := range opt {
err := opt(chlg)
if err != nil {
return err
}
}
return nil
}
}
func DisableAuthoritativeNssPropagationRequirement() ChallengeOption {

View file

@ -197,14 +197,16 @@ func setupDNS(cmd *cli.Command, client *lego.Client) error {
shouldWait := cmd.IsSet(flgDNSPropagationWait)
err = client.Challenge.SetDNS01Provider(provider,
dns01.CondOption(shouldWait,
dns01.CondOptions(shouldWait,
dns01.PropagationWait(cmd.Duration(flgDNSPropagationWait), true),
),
dns01.CondOption(!shouldWait && cmd.Bool(flgDNSPropagationDisableANS),
dns01.DisableAuthoritativeNssPropagationRequirement(),
),
dns01.CondOption(!shouldWait && cmd.Bool(flgDNSPropagationDisableRNS),
dns01.DisableRecursiveNSsPropagationRequirement(),
dns01.CondOptions(!shouldWait,
dns01.CondOptions(cmd.Bool(flgDNSPropagationDisableANS),
dns01.DisableAuthoritativeNssPropagationRequirement(),
),
dns01.CondOptions(cmd.Bool(flgDNSPropagationDisableRNS),
dns01.DisableRecursiveNSsPropagationRequirement(),
),
),
)