mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-11 03:06:51 +02:00
fix(autocert): forceRenewalDoneCh was never closed
This commit is contained in:
@@ -83,6 +83,8 @@ func NewProvider(cfg *Config, user *User, legoCfg *lego.Config) (*Provider, erro
|
|||||||
lastFailureFile: lastFailureFileFor(cfg.CertPath, cfg.KeyPath),
|
lastFailureFile: lastFailureFileFor(cfg.CertPath, cfg.KeyPath),
|
||||||
forceRenewalCh: make(chan struct{}, 1),
|
forceRenewalCh: make(chan struct{}, 1),
|
||||||
}
|
}
|
||||||
|
p.forceRenewalDoneCh.Store(emptyForceRenewalDoneCh)
|
||||||
|
|
||||||
if cfg.idx == 0 {
|
if cfg.idx == 0 {
|
||||||
p.logger = log.With().Str("provider", "main").Logger()
|
p.logger = log.With().Str("provider", "main").Logger()
|
||||||
} else {
|
} else {
|
||||||
@@ -360,7 +362,7 @@ func (p *Provider) ShouldRenewOn() time.Time {
|
|||||||
// If at least one renewal is triggered, returns true.
|
// If at least one renewal is triggered, returns true.
|
||||||
func (p *Provider) ForceExpiryAll() (ok bool) {
|
func (p *Provider) ForceExpiryAll() (ok bool) {
|
||||||
doneCh := make(chan struct{})
|
doneCh := make(chan struct{})
|
||||||
if swapped := p.forceRenewalDoneCh.CompareAndSwap(nil, doneCh); !swapped { // already in progress
|
if swapped := p.forceRenewalDoneCh.CompareAndSwap(emptyForceRenewalDoneCh, doneCh); !swapped { // already in progress
|
||||||
close(doneCh)
|
close(doneCh)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user