func RenewDnsMsg(m *dns.Msg) { m.Extra = nil m.Answer = nil m.AuthenticatedData = false m.CheckingDisabled = false m.Question = nil }
/* * makeMessage() - construct DNS message structure */ func makeMessage(c *Context, qname, qtype, qclass string, ext Extension) *dns.Msg { m := new(dns.Msg) m.Id = dns.Id() if c.restype == RESOLUTION_STUB { m.RecursionDesired = true } else { m.RecursionDesired = false } if c.adflag { m.AuthenticatedData = true } if c.cdflag { m.CheckingDisabled = true } if ext["dnssec_return_status"] || ext["dnssec_return_only_secure"] || ext["dnssec_return_validation_chain"] { opt := new(dns.OPT) opt.Hdr.Name = "." opt.Hdr.Rrtype = dns.TypeOPT opt.SetDo() m.Extra = append(m.Extra, opt) } m.Question = make([]dns.Question, 1) qtype_int, ok := dns.StringToType[strings.ToUpper(qtype)] if !ok { fmt.Printf("%s: Unrecognized query type.\n", qtype) return nil } qclass_int, ok := dns.StringToClass[strings.ToUpper(qclass)] if !ok { fmt.Printf("%s: Unrecognized query class.\n", qclass) return nil } m.Question[0] = dns.Question{qname, qtype_int, qclass_int} return m }