Some tweaks for reflect

This commit is contained in:
Miek Gieben 2012-02-26 09:54:50 +01:00
parent e37fe55e7e
commit 7047ab5809
1 changed files with 15 additions and 26 deletions

View File

@ -30,6 +30,7 @@ import (
)
var printf *bool
const dom = "whoami.miek.nl."
func handleReflect(w dns.ResponseWriter, r *dns.Msg) {
@ -66,41 +67,29 @@ func handleReflect(w dns.ResponseWriter, r *dns.Msg) {
t.Hdr = dns.RR_Header{Name: dom, Rrtype: dns.TypeTXT, Class: dns.ClassINET, Ttl: 0}
t.Txt = []string{str}
switch r.Question[0].Qtype {
case dns.TypeTXT:
switch r.Question[0].Qtype {
case dns.TypeTXT:
m.Answer = append(m.Answer, t)
m.Extra = append(m.Extra, rr)
default: fallthrough
case dns.TypeAAAA, dns.TypeA:
default:
fallthrough
case dns.TypeAAAA, dns.TypeA:
m.Answer = append(m.Answer, rr)
m.Extra = append(m.Extra, t)
}
/*
nsec3 := new(dns.RR_NSEC3)
nsec3.Hdr = dns.RR_Header{Name: dom, Rrtype: dns.TypeNSEC3, Class: dns.ClassINET, Ttl: 0}
nsec3.Hash = dns.SHA1
nsec3.Flags = 0
nsec3.Iterations = 1
nsec3.Salt = "AABB"
nsec3.SaltLength = uint8(len(nsec3.Salt)/2)
nsec3.NextDomain = "miek.nl."
nsec3.TypeBitMap = []uint16{dns.TypeA, dns.TypeNS, dns.TypeSOA, dns.TypeTXT, dns.TypeRRSIG, 4000, 4001, 5949}
nsec3.HashNames("miek.nl.")
m.Extra = append(m.Extra, nsec3)
*/
}
b, ok := m.Pack()
if *printf {
fmt.Printf("%v\n", m.String())
}
if *printf {
fmt.Printf("%v\n", m.String())
}
if !ok {
log.Print("Packing failed")
m.SetRcode(r, dns.RcodeServerFailure)
m.Extra = nil
m.Answer = nil
b, _ = m.Pack()
m.SetRcode(r, dns.RcodeServerFailure)
m.Extra = nil
m.Answer = nil
b, _ = m.Pack()
}
// The reply is smaller then 512 bytes, so it will always "fit"
w.Write(b)
}