diff --git a/nameserver/http.go b/nameserver/http.go index 8e4603e8..c028c28b 100644 --- a/nameserver/http.go +++ b/nameserver/http.go @@ -24,7 +24,7 @@ func parseUrl(url string) (identifier string, ipaddr string, err error) { func httpErrorAndLog(level *log.Logger, w http.ResponseWriter, msg string, status int, logmsg string, logargs ...interface{}) { http.Error(w, msg, status) - level.Printf(logmsg, logargs...) + level.Printf("[http] "+logmsg, logargs...) } func ListenHttp(domain string, db Zone, port int) { @@ -60,7 +60,7 @@ func ListenHttp(domain string, db Zone, port int) { } if dns.IsSubDomain(domain, name) { - Info.Printf("Adding %s -> %s", name, ipStr) + Info.Printf("[http] Adding %s -> %s", name, ipStr) if err = db.AddRecord(ident, name, ip); err != nil { if _, ok := err.(DuplicateError); !ok { httpErrorAndLog( @@ -70,7 +70,7 @@ func ListenHttp(domain string, db Zone, port int) { } // oh, I already know this. whatever. } } else { - Info.Printf("Ignoring name %s, not in %s", name, domain) + Info.Printf("[http] Ignoring name %s, not in %s", name, domain) } case "DELETE": @@ -85,7 +85,7 @@ func ListenHttp(domain string, db Zone, port int) { reqError("Invalid IP in request", "Invalid IP in request: %s", ipStr) return } - Info.Printf("Deleting %s (%s)", ident, ipStr) + Info.Printf("[http] Deleting %s (%s)", ident, ipStr) if err = db.DeleteRecord(ident, ip); err != nil { if _, ok := err.(LookupError); !ok { httpErrorAndLog( @@ -103,6 +103,6 @@ func ListenHttp(domain string, db Zone, port int) { address := fmt.Sprintf(":%d", port) if err := http.ListenAndServe(address, nil); err != nil { - Error.Fatal("Unable to create http listener: ", err) + Error.Fatal("[http] Unable to create http listener: ", err) } } diff --git a/nameserver/mdns_lookup.go b/nameserver/mdns_lookup.go index dddc03b3..a16a4fbd 100644 --- a/nameserver/mdns_lookup.go +++ b/nameserver/mdns_lookup.go @@ -10,10 +10,13 @@ func mdnsLookup(client *MDNSClient, name string, qtype uint16) (*Response, error channel := make(chan *Response) client.SendQuery(name, qtype, channel) for resp := range channel { - Debug.Printf("Got response name %s addr %s", resp.Name, resp.Addr) if err := resp.Err; err != nil { + Debug.Printf("[mdns] Error for query type %s name %d: %s", + dns.TypeToString[qtype], name, err) return nil, err } else { + Debug.Printf("[mdns] Got response name for query type %s name %s: name %s, addr %s", + dns.TypeToString[qtype], name, resp.Name, resp.Addr) return resp, nil } } diff --git a/nameserver/mdns_server.go b/nameserver/mdns_server.go index cfab5721..65695d21 100644 --- a/nameserver/mdns_server.go +++ b/nameserver/mdns_server.go @@ -91,12 +91,15 @@ func (s *MDNSServer) makeHandler(qtype uint16, lookup LookupFunc) dns.HandlerFun q := &r.Question[0] if q.Qtype == qtype { if m := lookup(s.zone, r, q); m != nil { - Debug.Printf("Found local answer to mDNS query %s", q.Name) + Debug.Printf("[mdns msgid %d] Found local answer to mDNS query %s", + r.MsgHdr.Id, q.Name) if err := s.sendResponse(m); err != nil { - Warning.Printf("Error writing to %s", s.sendconn) + Warning.Printf("[mdns msgid %d] Error writing to %s", + r.MsgHdr.Id, s.sendconn) } } else { - Debug.Printf("No local answer for mDNS query %s", q.Name) + Debug.Printf("[mdns msgid %d] No local answer for mDNS query %s", + r.MsgHdr.Id, q.Name) } } } diff --git a/nameserver/mdns_server_test.go b/nameserver/mdns_server_test.go index 4319b609..146e45fc 100644 --- a/nameserver/mdns_server_test.go +++ b/nameserver/mdns_server_test.go @@ -34,7 +34,7 @@ func sendQuery(name string, querytype uint16) error { func TestServerSimpleQuery(t *testing.T) { // The ff can be handy for debugging (obvs) - //wt.InitDefaultLogging(true) + wt.InitDefaultLogging(true) log.Println("TestServerSimpleQuery starting") var zone = new(ZoneDb) diff --git a/nameserver/server.go b/nameserver/server.go index 94a0c91a..f202f3bb 100644 --- a/nameserver/server.go +++ b/nameserver/server.go @@ -43,13 +43,10 @@ func queryHandler(lookups []Lookup) dns.HandlerFunc { return } } - Debug.Printf("Query failed for %s", q.Name) - w.WriteMsg(makeDNSFailResponse(r)) - } else { - Warning.Printf("Query not handled: %+v", q) - w.WriteMsg(makeDNSFailResponse(r)) } - return + Info.Printf("[dns msgid %d] No results for type %s query %s", + r.MsgHdr.Id, dns.TypeToString[q.Qtype], q.Name) + w.WriteMsg(makeDNSFailResponse(r)) } } @@ -65,12 +62,13 @@ func rdnsHandler(lookups []Lookup) dns.HandlerFunc { return } } - Debug.Printf("Reverse query failed for %s", q.Name) - w.WriteMsg(makeDNSFailResponse(r)) + Info.Printf("[dns msgid %d] No results for type %s query %s", + r.MsgHdr.Id, dns.TypeToString[q.Qtype], q.Name) } else { - Warning.Printf("Reverse query not handled: %+v", q) - w.WriteMsg(makeDNSFailResponse(r)) + Warning.Printf("[dns msgid %d] Unexpected reverse query type %s: %+v", + r.MsgHdr.Id, dns.TypeToString[q.Qtype], q) } + w.WriteMsg(makeDNSFailResponse(r)) } } @@ -81,17 +79,18 @@ func rdnsHandler(lookups []Lookup) dns.HandlerFunc { func notUsHandler() dns.HandlerFunc { return func(w dns.ResponseWriter, r *dns.Msg) { q := r.Question[0] - Debug.Printf("Non-local query: %+v", q) + Debug.Printf("[dns msgid %d] Non-local query: %+v", r.MsgHdr.Id, q) var responseMsg *dns.Msg if q.Qtype == dns.TypeA || q.Qtype == dns.TypeAAAA { if addrs, err := net.LookupIP(q.Name); err == nil { responseMsg = makeAddressReply(r, &q, addrs) } else { responseMsg = makeDNSFailResponse(r) - Debug.Print("Failed fallback lookup ", err) + Debug.Printf("[dns msgid %d] Failed fallback: %s", r.MsgHdr.Id, err) } } else { - Warning.Printf("Non-local query not handled: %+v", q) + Warning.Printf("[dns msgid %d] Non-local query not handled: %+v", + r.MsgHdr.Id, q) responseMsg = makeDNSFailResponse(r) } w.WriteMsg(responseMsg) diff --git a/nameserver/updater.go b/nameserver/updater.go index 3f1d04a1..45725395 100644 --- a/nameserver/updater.go +++ b/nameserver/updater.go @@ -7,7 +7,8 @@ import ( func checkError(err error, apiPath string) { if err != nil { - Error.Fatalf("Unable to connect to Docker API on %s: %s", apiPath, err) + Error.Fatalf("[updater] Unable to connect to Docker API on %s: %s", + apiPath, err) } } @@ -22,7 +23,7 @@ func StartUpdater(apiPath string, zone Zone) error { err = client.AddEventListener(events) checkError(err, apiPath) - Info.Printf("Using Docker API on %s: %v", apiPath, env) + Info.Printf("[updater] Using Docker API on %s: %v", apiPath, env) go func() { for event := range events { @@ -36,7 +37,7 @@ func handleEvent(zone Zone, event *docker.APIEvents, client *docker.Client) erro switch event.Status { case "die": id := event.ID - Info.Printf("Container %s down. Removing records", id) + Info.Printf("[updater] Container %s down. Removing records", id) zone.DeleteRecordsFor(id) } return nil diff --git a/nameserver/zone.go b/nameserver/zone.go index fd2ceaaf..2a9baca0 100644 --- a/nameserver/zone.go +++ b/nameserver/zone.go @@ -76,7 +76,7 @@ func (zone *ZoneDb) ReverseLookupLocal(inaddr string) (string, error) { if revIP := net.ParseIP(inaddr[:len(inaddr)-rdnsDomainLen]); revIP != nil { revIP4 := revIP.To4() ip := []byte{revIP4[3], revIP4[2], revIP4[1], revIP4[0]} - Debug.Printf("Looking for address: %+v", ip) + Debug.Printf("[zonedb] Looking for address: %+v", ip) zone.mx.RLock() defer zone.mx.RUnlock() for _, r := range zone.recs { @@ -86,7 +86,7 @@ func (zone *ZoneDb) ReverseLookupLocal(inaddr string) (string, error) { } return "", LookupError(inaddr) } else { - Warning.Printf("Asked to reverse lookup %s", inaddr) + Warning.Printf("[zonedb] Asked to reverse lookup %s", inaddr) return "", LookupError(inaddr) } }