in cmd/dns/dns.go [56:84]
func inputTransformer(input string) (interface{}, error) {
var domain, typeString, rcodeString string
n, err := fmt.Sscanf(input, "%s %s %s", &domain, &typeString, &rcodeString)
if err != nil && n < 2 {
return nil, fmt.Errorf("%w, want: \"Domain QType [RCode]\", got: %q", errors.ErrInvalidFormat, input)
}
msgTyp, ok := dns.StringToType[strings.ToUpper(typeString)]
if !ok {
return nil, fmt.Errorf("%w, invalid QType: %q", errors.ErrInvalidFormat, typeString)
}
msg := new(tester.ExtendedMsg)
msg.SetQuestion(dns.Fqdn(domain), msgTyp)
msg.Rcode = -1
if n == 3 {
rcode, ok := dns.StringToRcode[rcodeString]
if !ok {
return nil, fmt.Errorf("%w, invalid RCode: %q", errors.ErrInvalidFormat, rcodeString)
}
msg.Rcode = rcode
}
return msg, nil
}