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.go19
1 files changed, 10 insertions, 9 deletions
diff --git a/plugin/rewrite/rewrite.go b/plugin/rewrite/rewrite.go
index 643f2d7c9..64283df92 100644
--- a/plugin/rewrite/rewrite.go
+++ b/plugin/rewrite/rewrite.go
@@ -50,7 +50,6 @@ func (rw Rewrite) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg
state.Req.Question[0] = wr.originalQuestion
return dns.RcodeServerFailure, fmt.Errorf("invalid name after rewrite: %s", x)
}
-
respRule := rule.GetResponseRule()
if respRule.Active == true {
wr.ResponseRewrite = true
@@ -111,23 +110,25 @@ func newRule(args ...string) (Rule, error) {
startArg = 1
}
- if ruleType == "answer" {
- return nil, fmt.Errorf("response rewrites must begin with a name rule")
- }
-
- if ruleType != "edns0" && ruleType != "name" && expectNumArgs != 3 {
- return nil, fmt.Errorf("%s rules must have exactly two arguments", ruleType)
- }
-
switch ruleType {
+ case "answer":
+ return nil, fmt.Errorf("response rewrites must begin with a name rule")
case "name":
return newNameRule(mode, args[startArg:]...)
case "class":
+ if expectNumArgs != 3 {
+ return nil, fmt.Errorf("%s rules must have exactly two arguments", ruleType)
+ }
return newClassRule(mode, args[startArg:]...)
case "type":
+ if expectNumArgs != 3 {
+ return nil, fmt.Errorf("%s rules must have exactly two arguments", ruleType)
+ }
return newTypeRule(mode, args[startArg:]...)
case "edns0":
return newEdns0Rule(mode, args[startArg:]...)
+ case "ttl":
+ return newTtlRule(mode, args[startArg:]...)
default:
return nil, fmt.Errorf("invalid rule type %q", args[0])
}