mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-01-12 18:37:54 +08:00
875bb02c4e
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package cloudns
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/StackExchange/dnscontrol/v3/models"
|
|
"github.com/StackExchange/dnscontrol/v3/pkg/recordaudit"
|
|
)
|
|
|
|
// AuditRecords returns an error if any records are not
|
|
// supportable by this provider.
|
|
func AuditRecords(records []*models.RecordConfig) error {
|
|
|
|
if err := recordaudit.TxtNoBackticks(records); err != nil {
|
|
return err
|
|
}
|
|
// Still needed as of 2021-03-01
|
|
|
|
if err := recordaudit.TxtNotEmpty(records); err != nil {
|
|
return err
|
|
}
|
|
// Still needed as of 2021-03-01
|
|
|
|
if err := recordaudit.TxtNoTrailingSpace(records); err != nil {
|
|
return err
|
|
}
|
|
// Still needed as of 2021-03-01
|
|
|
|
if err := recordaudit.TxtNoDoubleQuotes(records); err != nil {
|
|
return err
|
|
}
|
|
// Still needed as of 2021-03-11
|
|
|
|
if err := 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
|
|
}
|