extract response writing

This commit is contained in:
Matthias Radestock committed 2015-08-20 20:24:12 +01:00
1 parent 9a7abe68fd
commit 0b5f5fd74e
1 file changed
+10 -14
+10 -14
View File
@@ -162,11 +162,7 @@ func (h *handler) handleLocal(w dns.ResponseWriter, req *dns.Msg) {
}
shuffleAnswers(&answers)
response := h.makeResponse(req, answers)
h.ns.debugf("response: %+v", response)
if err := w.WriteMsg(response); err != nil {
h.ns.infof("error responding: %v", err)
}
h.respond(w, h.makeResponse(req, answers))
}
func (h *handler) handleReverse(w dns.ResponseWriter, req *dns.Msg) {
@@ -200,11 +196,7 @@ func (h *handler) handleReverse(w dns.ResponseWriter, req *dns.Msg) {
Ptr: hostname,
}}
response := h.makeResponse(req, answers)
h.ns.debugf("response: %+v", response)
if err := w.WriteMsg(response); err != nil {
h.ns.infof("error responding: %v", err)
}
h.respond(w, h.makeResponse(req, answers))
}
func (h *handler) handleRecursive(w dns.ResponseWriter, req *dns.Msg) {
@@ -227,14 +219,11 @@ func (h *handler) handleRecursive(w dns.ResponseWriter, req *dns.Msg) {
h.ns.debugf("error trying %s: %v", server, err)
continue
}
h.ns.debugf("response: %+v", response)
response.Id = req.Id
if response.Len() > h.getMaxResponseSize(req) {
response.Compress = true
}
if err := w.WriteMsg(response); err != nil {
h.ns.infof("error responding: %v", err)
}
h.respond(w, response)
return
}
@@ -274,6 +263,13 @@ func (h *handler) getMaxResponseSize(req *dns.Msg) int {
return h.maxResponseSize
}
func (h *handler) respond(w dns.ResponseWriter, response *dns.Msg) {
h.ns.debugf("response: %+v", response)
if err := w.WriteMsg(response); err != nil {
h.ns.infof("error responding: %v", err)
}
}
func shuffleAnswers(answers *[]dns.RR) {
if len(*answers) <= 1 {
return