package rejectif import ( "fmt" "strings" "github.com/StackExchange/dnscontrol/v3/models" ) // Keep these in alphabetical order. // CaaFlagIsNonZero identifies CAA records where tag is no zero. func CaaFlagIsNonZero(rc *models.RecordConfig) error { if rc.CaaFlag != 0 { return fmt.Errorf("caa flag is non-zero") } return nil } // CaaTargetContainsWhitespace identifies CAA records that have // whitespace in the target. // See https://github.com/StackExchange/dnscontrol/issues/1374 func CaaTargetContainsWhitespace(rc *models.RecordConfig) error { if strings.ContainsAny(rc.GetTargetField(), " \t\r\n") { return fmt.Errorf("caa target contains whitespace") } return nil } // CaaTargetHasSemicolon identifies CAA records that contain semicolons. func CaaTargetHasSemicolon(rc *models.RecordConfig) error { if strings.Contains(rc.GetTargetField(), ";") { return fmt.Errorf("caa target contains semicolon") } return nil }