From 0b5f5fd74eaa7707d184b11496810bdf311cea3b Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Thu, 20 Aug 2015 20:24:12 +0100 Subject: [PATCH] extract response writing --- nameserver/dns.go | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/nameserver/dns.go b/nameserver/dns.go index e927cf99..7e4b9fb0 100644 --- a/nameserver/dns.go +++ b/nameserver/dns.go @@ -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