diff options
Diffstat (limited to 'middleware/rewrite/reverter.go')
-rw-r--r-- | middleware/rewrite/reverter.go | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/middleware/rewrite/reverter.go b/middleware/rewrite/reverter.go deleted file mode 100644 index 400fb5fff..000000000 --- a/middleware/rewrite/reverter.go +++ /dev/null @@ -1,39 +0,0 @@ -package rewrite - -import "github.com/miekg/dns" - -// ResponseReverter reverses the operations done on the question section of a packet. -// This is need because the client will otherwise disregards the response, i.e. -// dig will complain with ';; Question section mismatch: got miek.nl/HINFO/IN' -type ResponseReverter struct { - dns.ResponseWriter - original dns.Question -} - -// NewResponseReverter returns a pointer to a new ResponseReverter. -func NewResponseReverter(w dns.ResponseWriter, r *dns.Msg) *ResponseReverter { - return &ResponseReverter{ - ResponseWriter: w, - original: r.Question[0], - } -} - -// WriteMsg records the status code and calls the -// underlying ResponseWriter's WriteMsg method. -func (r *ResponseReverter) WriteMsg(res *dns.Msg) error { - res.Question[0] = r.original - return r.ResponseWriter.WriteMsg(res) -} - -// Write is a wrapper that records the size of the message that gets written. -func (r *ResponseReverter) Write(buf []byte) (int, error) { - n, err := r.ResponseWriter.Write(buf) - return n, err -} - -// Hijack implements dns.Hijacker. It simply wraps the underlying -// ResponseWriter's Hijack method if there is one, or returns an error. -func (r *ResponseReverter) Hijack() { - r.ResponseWriter.Hijack() - return -} |