feat: support unknown qtype and upgrade go mod (#180)

This commit is contained in:
mzz
2023-07-07 20:54:39 +08:00
committed by GitHub
parent c708e0e975
commit 34dfd7adbc
3 changed files with 89 additions and 29 deletions

View File

@ -7,6 +7,7 @@ package dns
import (
"fmt"
"strconv"
"strings"
"github.com/daeuniverse/dae/component/routing"
@ -37,11 +38,15 @@ func TypeParserFactory(callback func(f *config_parser.Function, types []dnsmessa
return func(log *logrus.Logger, f *config_parser.Function, key string, paramValueGroup []string, overrideOutbound *routing.Outbound) (err error) {
var types []dnsmessage.Type
for _, v := range paramValueGroup {
t, ok := typeNames[strings.ToUpper(v)]
if !ok {
return fmt.Errorf("unknown DNS request type: %v", v)
if t, ok := typeNames[strings.ToUpper(v)]; ok {
types = append(types, t)
continue
}
types = append(types, t)
if val, err := strconv.ParseUint(v, 0, 16); err == nil {
types = append(types, dnsmessage.Type(val))
continue
}
return fmt.Errorf("unknown DNS request type: %v", v)
}
return callback(f, types, overrideOutbound)
}