def encode
return MessageEncoder.new {|msg|
header = @header
if (@tsigkey)
header.arcount += 1
end
header.encode(msg)
@question.each {|q|
msg.put_name(q.qname)
msg.put_pack('nn', q.qtype.code, q.qclass.code)
}
[@answer, @authority, @additional].each {|rr|
rr.each {|r|
name = r.name
ttl = r.ttl
msg.put_name(name)
msg.put_pack('nnN', r.type.code, r.klass.code, ttl)
msg.put_length16 {r.encode_rdata(msg)}
}
}
if (@tsigkey)
tsigrec = @tsigkey.generate(this, msg, tsigerror, querytsig)
tsigrec.encode(msg, Section.ADDITIONAL, c)
end
}.to_s
end