Add support for MD and MF
This commit is contained in:
parent
2827f497aa
commit
969ce4371d
34
types.go
34
types.go
|
@ -291,6 +291,40 @@ func (rr *RR_MR) Len() int {
|
|||
return rr.Hdr.Len() + l
|
||||
}
|
||||
|
||||
type RR_MF struct {
|
||||
Hdr RR_Header
|
||||
Mf string `dns:"cdomain-name"`
|
||||
}
|
||||
|
||||
func (rr *RR_MF) Header() *RR_Header {
|
||||
return &rr.Hdr
|
||||
}
|
||||
|
||||
func (rr *RR_MF) String() string {
|
||||
return rr.Hdr.String() + " " + rr.Mf
|
||||
}
|
||||
|
||||
func (rr *RR_MF) Len() int {
|
||||
return rr.Hdr.Len() + len(rr.Mf) + 1
|
||||
}
|
||||
|
||||
type RR_MD struct {
|
||||
Hdr RR_Header
|
||||
Md string `dns:"cdomain-name"`
|
||||
}
|
||||
|
||||
func (rr *RR_MD) Header() *RR_Header {
|
||||
return &rr.Hdr
|
||||
}
|
||||
|
||||
func (rr *RR_MD) String() string {
|
||||
return rr.Hdr.String() + " " + rr.Md
|
||||
}
|
||||
|
||||
func (rr *RR_MD) Len() int {
|
||||
return rr.Hdr.Len() + len(rr.Md) + 1
|
||||
}
|
||||
|
||||
type RR_MX struct {
|
||||
Hdr RR_Header
|
||||
Pref uint16
|
||||
|
|
38
zscan_rr.go
38
zscan_rr.go
|
@ -31,6 +31,12 @@ func setRR(h RR_Header, c chan lex, o, f string) (RR, *ParseError) {
|
|||
case TypePTR:
|
||||
r, e = setPTR(h, c, o, f)
|
||||
goto Slurp
|
||||
case TypeMF:
|
||||
r, e = setMF(h, c, o, f)
|
||||
goto Slurp
|
||||
case TypeMD:
|
||||
r, e = setMD(h, c, o, f)
|
||||
goto Slurp
|
||||
case TypeMX:
|
||||
r, e = setMX(h, c, o, f)
|
||||
goto Slurp
|
||||
|
@ -283,6 +289,38 @@ func setMINFO(h RR_Header, c chan lex, o, f string) (RR, *ParseError) {
|
|||
return rr, nil
|
||||
}
|
||||
|
||||
func setMF(h RR_Header, c chan lex, o, f string) (RR, *ParseError) {
|
||||
rr := new(RR_MF)
|
||||
rr.Hdr = h
|
||||
|
||||
l := <-c
|
||||
rr.Mf = l.token
|
||||
_, ld, ok := IsDomainName(l.token)
|
||||
if !ok {
|
||||
return nil, &ParseError{f, "bad MF Mf", l}
|
||||
}
|
||||
if rr.Mf[ld-1] != '.' {
|
||||
rr.Mf = appendOrigin(rr.Mf, o)
|
||||
}
|
||||
return rr, nil
|
||||
}
|
||||
|
||||
func setMD(h RR_Header, c chan lex, o, f string) (RR, *ParseError) {
|
||||
rr := new(RR_MD)
|
||||
rr.Hdr = h
|
||||
|
||||
l := <-c
|
||||
rr.Md = l.token
|
||||
_, ld, ok := IsDomainName(l.token)
|
||||
if !ok {
|
||||
return nil, &ParseError{f, "bad MD Md", l}
|
||||
}
|
||||
if rr.Md[ld-1] != '.' {
|
||||
rr.Md = appendOrigin(rr.Md, o)
|
||||
}
|
||||
return rr, nil
|
||||
}
|
||||
|
||||
func setMX(h RR_Header, c chan lex, o, f string) (RR, *ParseError) {
|
||||
rr := new(RR_MX)
|
||||
rr.Hdr = h
|
||||
|
|
Loading…
Reference in New Issue