Skip to content

Commit 6d2074b

Browse files
authored
INWX: Bugfix: NAMESERVER() should replace registrar list, not merge into it (#4052)
## Summary Fixes the INWX registrar provider to replace nameservers instead of merging existing and desired nameservers. ## Problem The `GetRegistrarCorrections()` function was merging the currently registered nameservers with the desired nameservers from the configuration. This caused nameserver updates to fail when migrating a domain from one DNS provider to another. Example failure: Update nameservers arely.ns.cloudflare.com,pablo.ns.cloudflare.com -> arely.ns.cloudflare.com,ns.inwx.de,ns2.inwx.de,ns3.inwx.eu,pablo.ns.cloudflare.com FAILURE! (2306) ## Solution Changed the logic to use only the configured nameservers (`dc.Nameservers`) instead of creating a union with the existing registrar nameservers. ### Before ```go combined := map[string]bool{} for _, ns := range dc.Nameservers { combined[ns.Name] = true } for _, rs := range regNameservers { combined[rs] = true } ``` ### After ```go var expected []string for _, ns := range dc.Nameservers { expected = append(expected, ns.Name) } ```
1 parent 47866f9 commit 6d2074b

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

providers/inwx/inwxProvider.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -457,19 +457,13 @@ func (api *inwxAPI) updateNameservers(ns []string, domain string) func() error {
457457
// GetRegistrarCorrections is part of the registrar provider and determines if the nameservers have to be updated.
458458
func (api *inwxAPI) GetRegistrarCorrections(dc *models.DomainConfig) ([]*models.Correction, error) {
459459
regNameservers := api.fetchRegistrationNSSet(dc.Name)
460-
combined := map[string]bool{}
461-
for _, ns := range dc.Nameservers {
462-
combined[ns.Name] = true
463-
}
464-
for _, rs := range regNameservers {
465-
combined[rs] = true
466-
}
467-
var expected []string
468-
for k := range combined {
469-
expected = append(expected, k)
470460

461+
var expected []string
462+
for _, ns := range dc.Nameservers {
463+
expected = append(expected, ns.Name)
471464
}
472465
sort.Strings(expected)
466+
473467
foundNameservers := strings.Join(regNameservers, ",")
474468
expectedNameservers := strings.Join(expected, ",")
475469

0 commit comments

Comments
 (0)