Attempting to fix #133
- Trying to get as close to original state as possible - Since private RR should not run slurp, toggling Variable there.
This commit is contained in:
parent
45e66bfe1d
commit
aaf867499e
|
@ -1,2 +1,6 @@
|
|||
a.example.com. IN A 127.0.0.1
|
||||
8db7._openpgpkey.example.com. IN OPENPGPKEY mQCNAzIG
|
||||
$ORIGIN a.example.com.
|
||||
test IN A 127.0.0.1
|
||||
$ORIGIN b.example.com.
|
||||
test IN CNAME test.a.example.com.
|
||||
|
|
|
@ -106,7 +106,7 @@ func PrivateHandle(rtypestr string, rtype uint16, generator func() PrivateRdata)
|
|||
return rr, nil, ""
|
||||
}
|
||||
|
||||
typeToparserFunc[rtype] = parserFunc{setPrivateRR, false}
|
||||
typeToparserFunc[rtype] = parserFunc{setPrivateRR, true}
|
||||
}
|
||||
|
||||
// PrivateHandleRemove removes defenitions required to support private RR type.
|
||||
|
|
23
zscan_rr.go
23
zscan_rr.go
|
@ -24,23 +24,20 @@ type parserFunc struct {
|
|||
// or immediately a _NEWLINE. If this is not the case we flag
|
||||
// an *ParseError: garbage after rdata.
|
||||
func setRR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) {
|
||||
var r RR
|
||||
e := new(ParseError)
|
||||
|
||||
parserfunc, ok := typeToparserFunc[h.Rrtype]
|
||||
if ok {
|
||||
r, e, cm := parserfunc.Func(h, c, o, f)
|
||||
if parserfunc.Variable {
|
||||
r, e, _ = parserfunc.Func(h, c, o, f)
|
||||
if e != nil {
|
||||
return nil, e, ""
|
||||
}
|
||||
se, com := slurpRemainder(c, f)
|
||||
if se != nil {
|
||||
return nil, se, ""
|
||||
}
|
||||
return r, e, com
|
||||
return r, e, cm
|
||||
}
|
||||
return parserfunc.Func(h, c, o, f)
|
||||
if e != nil {
|
||||
return nil, e, ""
|
||||
}
|
||||
e, cm = slurpRemainder(c, f)
|
||||
if e != nil {
|
||||
return nil, e, ""
|
||||
}
|
||||
return r, nil, cm
|
||||
}
|
||||
// RFC3957 RR (Unknown RR handling)
|
||||
return setRFC3597(h, c, o, f)
|
||||
|
|
Loading…
Reference in New Issue