From 58a5a4bcf07de4297cdcf4d5a5a0d163b2db4784 Mon Sep 17 00:00:00 2001 From: norman-zon <85173861+norman-zon@users.noreply.github.com> Date: Tue, 23 Nov 2021 20:35:01 +0100 Subject: [PATCH] Remove length checking from TxtNoMultipleStrings (#1308) All functions in should test for only one condition. There already is a function that tests for long TXT records: TxtNoLongStrings. Add calls to TxtNoLongStrings in all providers that use TxtNoMultipleStrings, to keep functionality, except for NS1 and ClouDNS, which allow for any TXT record length, but not for multiple strings per TXT. --- pkg/recordaudit/txt.go | 2 -- providers/cloudns/auditrecords.go | 16 +--------------- providers/msdns/auditrecords.go | 4 ++++ providers/vultr/auditrecords.go | 4 ++++ 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/pkg/recordaudit/txt.go b/pkg/recordaudit/txt.go index 9d1754449..da361a87c 100644 --- a/pkg/recordaudit/txt.go +++ b/pkg/recordaudit/txt.go @@ -97,8 +97,6 @@ func TxtNoMultipleStrings(records []*models.RecordConfig) error { if rc.HasFormatIdenticalToTXT() { // TXT and similar: if len(rc.TxtStrings) > 1 { return fmt.Errorf("multiple strings in one txt") - } else if len(rc.TxtStrings) == 1 && len(rc.TxtStrings[0]) > 255 { - return fmt.Errorf("strings >255 octets") } } diff --git a/providers/cloudns/auditrecords.go b/providers/cloudns/auditrecords.go index 828a59700..dd801e958 100644 --- a/providers/cloudns/auditrecords.go +++ b/providers/cloudns/auditrecords.go @@ -1,7 +1,6 @@ package cloudns import ( - "fmt" "github.com/StackExchange/dnscontrol/v3/models" "github.com/StackExchange/dnscontrol/v3/pkg/recordaudit" ) @@ -30,22 +29,9 @@ func AuditRecords(records []*models.RecordConfig) error { } // Still needed as of 2021-03-11 - if err := txtNoMultipleStrings(records); err != nil { + if err := recordaudit.TxtNoMultipleStrings(records); err != nil { return err } return nil } - -// ClouDNS NOT allow multiple TXT records with same name -// But allow values longer the 255 -func txtNoMultipleStrings(records []*models.RecordConfig) error { - for _, rc := range records { - if rc.HasFormatIdenticalToTXT() { // TXT and similar: - if len(rc.TxtStrings) > 1 { - return fmt.Errorf("multiple strings in one txt") - } - } - } - return nil -} diff --git a/providers/msdns/auditrecords.go b/providers/msdns/auditrecords.go index 0d44d8ad4..2d56fcc66 100644 --- a/providers/msdns/auditrecords.go +++ b/providers/msdns/auditrecords.go @@ -14,6 +14,10 @@ func AuditRecords(records []*models.RecordConfig) error { } // Still needed as of 2021-03-01 + if err := recordaudit.TxtNoLongStrings(records); err != nil { + return err + } + if err := recordaudit.TxtNotEmpty(records); err != nil { return err } diff --git a/providers/vultr/auditrecords.go b/providers/vultr/auditrecords.go index 4efe22900..500762b6d 100644 --- a/providers/vultr/auditrecords.go +++ b/providers/vultr/auditrecords.go @@ -20,5 +20,9 @@ func AuditRecords(records []*models.RecordConfig) error { return err } + if err := recordaudit.TxtNoLongStrings(records); err != nil { + return err + } + return nil }