Add the OPENPGPKEY RR.

This commit is contained in:
Miek Gieben 2014-08-14 09:18:08 +01:00
parent 7eb49f3e37
commit 4d3dac9c36
4 changed files with 47 additions and 27 deletions

1
msg.go
View File

@ -136,6 +136,7 @@ var TypeToString = map[uint16]string{
TypeNSEC: "NSEC", TypeNSEC: "NSEC",
TypeNULL: "NULL", TypeNULL: "NULL",
TypeOPT: "OPT", TypeOPT: "OPT",
TypeOPENPGPKEY: "OPENPGPKEY",
TypePTR: "PTR", TypePTR: "PTR",
TypeRKEY: "RKEY", TypeRKEY: "RKEY",
TypeRP: "RP", TypeRP: "RP",

View File

@ -529,18 +529,22 @@ func TestParseFailure(t *testing.T) {
} }
func TestZoneParsing(t *testing.T) { func TestZoneParsing(t *testing.T) {
f, err := os.Open("test.db") f, err := os.Open("parse_test.db")
if err != nil { if err != nil {
return return
} }
defer f.Close() defer f.Close()
start := time.Now().UnixNano() start := time.Now().UnixNano()
to := ParseZone(f, "", "test.db") to := ParseZone(f, "", "parse_test.db")
var i int var i int
for x := range to { for x := range to {
x = x
//t.Logf("%s\n", x.RR)
i++ i++
if x.Error != nil {
t.Logf("%s\n", x.Error)
t.Fail()
continue
}
t.Logf("%s\n", x.RR)
} }
delta := time.Now().UnixNano() - start delta := time.Now().UnixNano() - start
t.Logf("%d RRs parsed in %.2f s (%.2f RR/s)", i, float32(delta)/1e9, float32(i)/(float32(delta)/1e9)) t.Logf("%d RRs parsed in %.2f s (%.2f RR/s)", i, float32(delta)/1e9, float32(i)/(float32(delta)/1e9))

View File

@ -80,6 +80,7 @@ const (
TypeRKEY uint16 = 57 TypeRKEY uint16 = 57
TypeTALINK uint16 = 58 TypeTALINK uint16 = 58
TypeCDS uint16 = 59 TypeCDS uint16 = 59
TypeOPENPGPKEY uint16 = 61
TypeSPF uint16 = 99 TypeSPF uint16 = 99
TypeUINFO uint16 = 100 TypeUINFO uint16 = 100
TypeUID uint16 = 101 TypeUID uint16 = 101
@ -1621,7 +1622,7 @@ var rr_mk = map[uint16]func() RR{
TypeNSEC3: func() RR { return new(NSEC3) }, TypeNSEC3: func() RR { return new(NSEC3) },
TypeNSEC3PARAM: func() RR { return new(NSEC3PARAM) }, TypeNSEC3PARAM: func() RR { return new(NSEC3PARAM) },
TypeNSEC: func() RR { return new(NSEC) }, TypeNSEC: func() RR { return new(NSEC) },
// TypeOPENPGPKEY: func() RR { return new(OPENPGPKEY) }, TypeOPENPGPKEY: func() RR { return new(OPENPGPKEY) },
TypeOPT: func() RR { return new(OPT) }, TypeOPT: func() RR { return new(OPT) },
TypePTR: func() RR { return new(PTR) }, TypePTR: func() RR { return new(PTR) },
TypeRKEY: func() RR { return new(RKEY) }, TypeRKEY: func() RR { return new(RKEY) },

View File

@ -180,6 +180,8 @@ func setRR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) {
return setUINFO(h, c, f) return setUINFO(h, c, f)
case TypeCERT: case TypeCERT:
return setCERT(h, c, f) return setCERT(h, c, f)
case TypeOPENPGPKEY:
return setOPENPGPKEY(h, c, f)
default: default:
// RFC3957 RR (Unknown RR handling) // RFC3957 RR (Unknown RR handling)
return setRFC3597(h, c, f) return setRFC3597(h, c, f)
@ -1127,6 +1129,18 @@ func setCERT(h RR_Header, c chan lex, f string) (RR, *ParseError, string) {
return rr, nil, c1 return rr, nil, c1
} }
func setOPENPGPKEY(h RR_Header, c chan lex, f string) (RR, *ParseError, string) {
rr := new(OPENPGPKEY)
rr.Hdr = h
s, e, c1 := endingToString(c, "bad OPENPGPKEY PublicKey", f)
if e != nil {
return nil, e, c1
}
rr.PublicKey = s
return rr, nil, c1
}
func setRRSIG(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { func setRRSIG(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) {
rr := new(RRSIG) rr := new(RRSIG)
rr.Hdr = h rr.Hdr = h