commit
c12ae078ae
|
@ -1,2 +1,6 @@
|
||||||
a.example.com. IN A 127.0.0.1
|
a.example.com. IN A 127.0.0.1
|
||||||
8db7._openpgpkey.example.com. IN OPENPGPKEY mQCNAzIG
|
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, ""
|
return rr, nil, ""
|
||||||
}
|
}
|
||||||
|
|
||||||
typeToparserFunc[rtype] = parserFunc{setPrivateRR, false}
|
typeToparserFunc[rtype] = parserFunc{setPrivateRR, true}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PrivateHandleRemove removes defenitions required to support private RR type.
|
// 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
|
// or immediately a _NEWLINE. If this is not the case we flag
|
||||||
// an *ParseError: garbage after rdata.
|
// an *ParseError: garbage after rdata.
|
||||||
func setRR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) {
|
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]
|
parserfunc, ok := typeToparserFunc[h.Rrtype]
|
||||||
if ok {
|
if ok {
|
||||||
|
r, e, cm := parserfunc.Func(h, c, o, f)
|
||||||
if parserfunc.Variable {
|
if parserfunc.Variable {
|
||||||
r, e, _ = parserfunc.Func(h, c, o, f)
|
return r, e, cm
|
||||||
if e != nil {
|
|
||||||
return nil, e, ""
|
|
||||||
}
|
|
||||||
se, com := slurpRemainder(c, f)
|
|
||||||
if se != nil {
|
|
||||||
return nil, se, ""
|
|
||||||
}
|
|
||||||
return r, e, com
|
|
||||||
}
|
}
|
||||||
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)
|
// RFC3957 RR (Unknown RR handling)
|
||||||
return setRFC3597(h, c, o, f)
|
return setRFC3597(h, c, o, f)
|
||||||
|
|
Loading…
Reference in New Issue