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.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/plugin/rewrite/rewrite.go b/plugin/rewrite/rewrite.go
index 13e1d2092..f44cc62f1 100644
--- a/plugin/rewrite/rewrite.go
+++ b/plugin/rewrite/rewrite.go
@@ -49,10 +49,11 @@ func (rw Rewrite) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg
state.Req.Question[0] = wr.originalQuestion
return dns.RcodeServerFailure, err
}
- respRule := rule.GetResponseRule()
- if respRule.Active {
- wr.ResponseRewrite = true
- wr.ResponseRules = append(wr.ResponseRules, respRule)
+ for _, respRule := range rule.GetResponseRules() {
+ if respRule.Active {
+ wr.ResponseRewrite = true
+ wr.ResponseRules = append(wr.ResponseRules, respRule)
+ }
}
if rule.Mode() == Stop {
if rw.noRevert {
@@ -78,8 +79,8 @@ type Rule interface {
Rewrite(ctx context.Context, state request.Request) Result
// Mode returns the processing mode stop or continue.
Mode() string
- // GetResponseRule returns the rule to rewrite response with, if any.
- GetResponseRule() ResponseRule
+ // GetResponseRules returns rules to rewrite response with, if any.
+ GetResponseRules() []ResponseRule
}
func newRule(args ...string) (Rule, error) {