Merge pull request #231 from rolandshoemaker/master
Correct CAA len method and octet packing buffer
This commit is contained in:
commit
e59f851c91
2
msg.go
2
msg.go
|
@ -921,7 +921,7 @@ func packStructValue(val reflect.Value, msg []byte, off int, compression map[str
|
|||
copy(msg[off:off+len(s)], s)
|
||||
off += len(s)
|
||||
case `dns:"octet"`:
|
||||
bytesTmp := make([]byte, 0)
|
||||
bytesTmp := make([]byte, 256)
|
||||
off, err = packOctetString(fv.String(), msg, off, bytesTmp)
|
||||
if err != nil {
|
||||
return lenmsg, err
|
||||
|
|
|
@ -1477,3 +1477,32 @@ func TestParseCAA(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestPackCAA(t *testing.T) {
|
||||
m := new(Msg)
|
||||
record := new(CAA)
|
||||
record.Hdr = RR_Header{Name: "example.com.", Rrtype: TypeCAA, Class: ClassINET, Ttl: 0}
|
||||
record.Tag = "issue"
|
||||
record.Value = "symantec.com"
|
||||
record.Flag = 1
|
||||
|
||||
m.Answer = append(m.Answer, record)
|
||||
bytes, err := m.Pack()
|
||||
if err != nil {
|
||||
t.Fatalf("failed to pack msg: %v", err)
|
||||
}
|
||||
if err := m.Unpack(bytes); err != nil {
|
||||
t.Fatalf("failed to unpack msg: %v", err)
|
||||
}
|
||||
if len(m.Answer) != 1 {
|
||||
t.Fatalf("incorrect number of answers unpacked")
|
||||
}
|
||||
rr := m.Answer[0].(*CAA)
|
||||
if rr.Tag != "issue" {
|
||||
t.Fatalf("invalid tag for unpacked answer")
|
||||
} else if rr.Value != "symantec.com" {
|
||||
t.Fatalf("invalid value for unpacked answer")
|
||||
} else if rr.Flag != 1 {
|
||||
t.Fatalf("invalid flag for unpacked answer")
|
||||
}
|
||||
}
|
||||
|
|
2
types.go
2
types.go
|
@ -1569,7 +1569,7 @@ type CAA struct {
|
|||
|
||||
func (rr *CAA) Header() *RR_Header { return &rr.Hdr }
|
||||
func (rr *CAA) copy() RR { return &CAA{*rr.Hdr.copyHeader(), rr.Flag, rr.Tag, rr.Value} }
|
||||
func (rr *CAA) len() int { return rr.Hdr.len() + 1 + len(rr.Tag) + len(rr.Value)/2 }
|
||||
func (rr *CAA) len() int { return rr.Hdr.len() + 2 + len(rr.Tag) + len(rr.Value) }
|
||||
func (rr *CAA) String() string {
|
||||
return rr.Hdr.String() + strconv.Itoa(int(rr.Flag)) + " " + rr.Tag + " " + sprintCAAValue(rr.Value)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue