From ae14f9a645b2c586d3dcd6d688bb57f74a72251f Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Sun, 5 Aug 2012 09:10:07 +0200 Subject: [PATCH] add bogus nl zone --- ex/fks/main.go | 11 +++++++---- ex/fks/serve.go | 3 +++ server.go | 3 +-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ex/fks/main.go b/ex/fks/main.go index d48bb974..41450e94 100644 --- a/ex/fks/main.go +++ b/ex/fks/main.go @@ -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) diff --git a/ex/fks/serve.go b/ex/fks/serve.go index 8bb197c3..7c714509 100644 --- a/ex/fks/serve.go +++ b/ex/fks/serve.go @@ -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) } diff --git a/server.go b/server.go index 6f433dc7..d70761a3 100644 --- a/server.go +++ b/server.go @@ -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) }