add bogus nl zone

This commit is contained in:
Miek Gieben 2012-08-05 09:10:07 +02:00
parent f204d99f07
commit ae14f9a645
3 changed files with 11 additions and 6 deletions

View File

@ -16,18 +16,21 @@ var (
func main() {
flag.Parse()
if *z == "" {
log.Fatal("no zone")
log.Fatal("fks: no zone")
}
if *o == "" {
log.Fatal("no origin")
log.Fatal("fks: origin")
}
Z := make(map[string]*dns.Zone)
if e := addZone(Z, *o, *z); e != nil {
log.Fatal("Huh %s\n", e.Error())
log.Fatal("fks: %s\n", e.Error())
}
if e := addZone(Z, "nl.", "z/nl.db"); e != nil {
log.Fatal("fks: %s\n", e.Error())
}
dns.HandleFunc(*o, func(w dns.ResponseWriter, req *dns.Msg) { serve(w, req, Z[dns.Fqdn(*o)]) })
dns.HandleFunc("nl.", func(w dns.ResponseWriter, req *dns.Msg) { serve(w, req, Z["nl."]) })
dns.HandleFunc(".", func(w dns.ResponseWriter, req *dns.Msg) { serve(w, req, Z["."]) })
go func() {
err := dns.ListenAndServe(":8053", "udp", nil)

View File

@ -6,6 +6,9 @@ import (
)
func serve(w dns.ResponseWriter, req *dns.Msg, z *dns.Zone) {
if z == nil {
panic("fks: no zone")
}
if *l {
log.Printf("fks: [zone %s] incoming %s %s %d\n", z.Origin, req.Question[0].Name, dns.Rr_str[req.Question[0].Qtype], req.MsgHdr.Id)
}

View File

@ -110,10 +110,9 @@ func (mux *ServeMux) match(zone string, t uint16) Handler {
return d.Value.(Handler)
}
}
return h.Value.(Handler)
}
// Best matching
// Best matching one.
if h := mux.m.Predecessor(zone); h != nil && h.Value != nil {
return h.Value.(Handler)
}