ddns: allow overriding domains per configuration (#979)

This commit is contained in:
UUBulb
2025-01-30 12:19:40 +08:00
committed by GitHub
parent b9fbeb347e
commit 82d40d49fd
5 changed files with 48 additions and 27 deletions

View File

@@ -28,7 +28,6 @@ type Provider struct {
ctx context.Context
ipAddr string
recordType string
domain string
prefix string
zone string
@@ -43,25 +42,28 @@ func InitDNSServers(s string) {
}
}
func (provider *Provider) UpdateDomain(ctx context.Context) {
func (provider *Provider) GetProfileID() uint64 {
return provider.DDNSProfile.ID
}
func (provider *Provider) UpdateDomain(ctx context.Context, overrideDomains ...string) {
provider.ctx = ctx
for _, domain := range provider.DDNSProfile.Domains {
for _, domain := range utils.IfOr(len(overrideDomains) > 0, overrideDomains, provider.DDNSProfile.Domains) {
for retries := 0; retries < int(provider.DDNSProfile.MaxRetries); retries++ {
provider.domain = domain
log.Printf("NEZHA>> Updating DNS Record of domain %s: %d/%d", provider.domain, retries+1, provider.DDNSProfile.MaxRetries)
if err := provider.updateDomain(); err != nil {
log.Printf("NEZHA>> Failed to update DNS record of domain %s: %v", provider.domain, err)
log.Printf("NEZHA>> Updating DNS Record of domain %s: %d/%d", domain, retries+1, provider.DDNSProfile.MaxRetries)
if err := provider.updateDomain(domain); err != nil {
log.Printf("NEZHA>> Failed to update DNS record of domain %s: %v", domain, err)
} else {
log.Printf("NEZHA>> Update DNS record of domain %s succeed", provider.domain)
log.Printf("NEZHA>> Update DNS record of domain %s succeed", domain)
break
}
}
}
}
func (provider *Provider) updateDomain() error {
func (provider *Provider) updateDomain(domain string) error {
var err error
provider.prefix, provider.zone, err = splitDomainSOA(provider.domain)
provider.prefix, provider.zone, err = splitDomainSOA(domain)
if err != nil {
return err
}