add panics to update if q section is empty

This commit is contained in:
Miek Gieben 2011-08-24 15:39:26 +02:00
parent 6751a16313
commit 7aa11e5d3e
2 changed files with 9 additions and 3 deletions

View File

@ -29,7 +29,7 @@ Miek Gieben - 2010, 2011 - miek@miek.nl
* 1876 - LOC record (incomplete)
* 1995 - IXFR
* 1996 - DNS notify
* 2136 - DNS Update
* 2136 - DNS Update (dynamic updates)
* 2181 - RRset definition
* 2537 - RSAMD5 DNS keys
* 2065 - DNSSEC (updated in later RFCs)

View File

@ -65,10 +65,13 @@ func (u *Update) NameNotUsed(rr []RR) {
// RRsetUsedFull sets the RRs in the prereq section to
// "RRset exists (value dependent -- with rdata)" RRs. RFC 2136 section 2.4.2.
func (u *Update) RRsetUsedFull(rr []RR) {
if len(u.Msg.Question) == 0 {
panic("empty question section"
}
u.Answer = make([]RR, len(rr))
for i, r := range rr {
u.Answer[i] = r
u.Answer[i].Header().Class = u.Msg.Question[0].Qclass // TODO crashes if question is zero
u.Answer[i].Header().Class = u.Msg.Question[0].Qclass
}
}
@ -107,10 +110,13 @@ func (u *Update) RRsetNotUsed(rr []RR) {
// RRsetAddFull adds an complete RRset, see RFC 2136 section 2.5.1
func (u *Update) RRsetAddFull(rr []RR) {
if len(u.Msg.Question) == 0 {
panic("empty question section"
}
u.Ns = make([]RR, len(rr))
for i, r := range rr {
u.Ns[i] = r
u.Ns[i].Header().Class = u.Msg.Question[0].Qclass // TODO crashes if question is zero
u.Ns[i].Header().Class = u.Msg.Question[0].Qclass
}
}