@@ -95,9 +95,12 @@ func serve(w dns.ResponseWriter, req *dns.Msg, z *Zone) {
logPrintln(m)
- // Ideally you would check the return code here, and perform SERVFAIL in case of
- // an error.
- w.Write(m)
+ err := w.Write(m)
+ if err != nil {
+ // if Pack'ing fails the Write fails. Return SERVFAIL.
+ log.Println("Error writing packet", m)
+ dns.Failed(w, req)
+ }
return
}