dnscontrol/providers/loopia/auditrecords.go
Paul Dee edf1b9fd50
LOOPIA: Ban Null MX (#2215)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-03-23 14:56:35 -07:00

34 lines
962 B
Go

package loopia
import (
"fmt"
"github.com/StackExchange/dnscontrol/v3/models"
"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
)
// AuditRecords returns a list of errors corresponding to the records
// that aren't supported by this provider. If all records are
// supported, an empty list is returned.
func AuditRecords(records []*models.RecordConfig) []error {
a := rejectif.Auditor{}
a.Add("TXT", rejectif.TxtIsEmpty) // Last verified 2023-03-10: Loopia returns 404
//Loopias TXT length limit appears to be 450 octets
a.Add("TXT", TxtHasSegmentLen450orLonger)
a.Add("MX", rejectif.MxNull) // Last verified 2023-03-23
return a.Audit(records)
}
// TxtHasSegmentLen450orLonger audits TXT records for strings that are >450 octets.
func TxtHasSegmentLen450orLonger(rc *models.RecordConfig) error {
for _, txt := range rc.TxtStrings {
if len(txt) > 450 {
return fmt.Errorf("%q txtstring length > 450", rc.GetLabel())
}
}
return nil
}