From 2454d23cabe803546befcca34badf103f0689862 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Sat, 19 Mar 2016 22:12:07 +0000 Subject: [PATCH] only rewrite types when they are given in uppercase --- core/setup/rewrite.go | 6 +++--- middleware/rewrite/rewrite.go | 10 ++++++++++ 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} }