aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-03-19 22:12:07 +0000
committerGravatar Miek Gieben <miek@miek.nl> 2016-03-19 22:12:07 +0000
commit2454d23cabe803546befcca34badf103f0689862 (patch)
tree3d15fd148d22f04f43342b0bec4d3964a45e9a7f
parentb186c6bcf37ac818749b3f07c5846aaaefd8ff00 (diff)
downloadcoredns-2454d23cabe803546befcca34badf103f0689862.tar.gz
coredns-2454d23cabe803546befcca34badf103f0689862.tar.zst
coredns-2454d23cabe803546befcca34badf103f0689862.zip
only rewrite types when they are given in uppercase
-rw-r--r--core/setup/rewrite.go6
-rw-r--r--middleware/rewrite/rewrite.go10
2 files changed, 13 insertions, 3 deletions
diff --git a/core/setup/rewrite.go b/core/setup/rewrite.go
index 32f5f42a3..86bef2ca3 100644
--- a/core/setup/rewrite.go
+++ b/core/setup/rewrite.go
@@ -30,7 +30,7 @@ func rewriteParse(c *Controller) ([]rewrite.Rule, error) {
for c.Next() {
var rule rewrite.Rule
var err error
- var base = "/"
+ var base = "."
var pattern, to string
var status int
var ext []string
@@ -57,7 +57,7 @@ func rewriteParse(c *Controller) ([]rewrite.Rule, error) {
return nil, c.ArgErr()
}
to = strings.Join(args1, " ")
- case "ext":
+ case "ext": // TODO(miek): fix or remove
args1 := c.RemainingArgs()
if len(args1) == 0 {
return nil, c.ArgErr()
@@ -73,7 +73,7 @@ func rewriteParse(c *Controller) ([]rewrite.Rule, error) {
return nil, err
}
ifs = append(ifs, ifCond)
- case "status":
+ case "status": // TODO(miek): fix or remove
if !c.NextArg() {
return nil, c.ArgErr()
}
diff --git a/middleware/rewrite/rewrite.go b/middleware/rewrite/rewrite.go
index 91b35d236..42043506e 100644
--- a/middleware/rewrite/rewrite.go
+++ b/middleware/rewrite/rewrite.go
@@ -3,6 +3,8 @@
package rewrite
import (
+ "strings"
+
"github.com/miekg/coredns/middleware"
"github.com/miekg/dns"
"golang.org/x/net/context"
@@ -64,7 +66,15 @@ type SimpleRule struct {
func NewSimpleRule(from, to string) SimpleRule {
tpf := dns.StringToType[from]
tpt := dns.StringToType[to]
+ // It's only a type if uppercase is used.
+ if from != strings.ToUpper(from) {
+ tpf = 0
+ }
+ if to != strings.ToUpper(to) {
+ tpt = 0
+ }
+ // lowercase and fully qualify the others here? TODO(miek)
return SimpleRule{From: from, To: to, fromType: tpf, toType: tpt}
}