aboutsummaryrefslogtreecommitdiff
path: root/plugin/rewrite/rewrite.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/rewrite/rewrite.go')
-rw-r--r--plugin/rewrite/rewrite.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/plugin/rewrite/rewrite.go b/plugin/rewrite/rewrite.go
index e340fa3ca..7389c68eb 100644
--- a/plugin/rewrite/rewrite.go
+++ b/plugin/rewrite/rewrite.go
@@ -6,6 +6,7 @@ import (
"strings"
"github.com/coredns/coredns/plugin"
+ "github.com/coredns/coredns/request"
"github.com/miekg/dns"
)
@@ -38,8 +39,10 @@ type Rewrite struct {
// ServeDNS implements the plugin.Handler interface.
func (rw Rewrite) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
wr := NewResponseReverter(w, r)
+ state := request.Request{W: w, Req: r}
+
for _, rule := range rw.Rules {
- switch result := rule.Rewrite(w, r); result {
+ switch result := rule.Rewrite(state); result {
case RewriteDone:
respRule := rule.GetResponseRule()
if respRule.Active == true {
@@ -68,7 +71,7 @@ func (rw Rewrite) Name() string { return "rewrite" }
// Rule describes a rewrite rule.
type Rule interface {
// Rewrite rewrites the current request.
- Rewrite(dns.ResponseWriter, *dns.Msg) Result
+ Rewrite(state request.Request) Result
// Mode returns the processing mode stop or continue.
Mode() string
// GetResponseRule returns the rule to rewrite response with, if any.