only rewrite types when they are given in uppercase

This commit is contained in:
Miek Gieben 2016-03-19 22:12:07 +00:00
parent b186c6bcf3
commit 2454d23cab
2 changed files with 13 additions and 3 deletions

View file

@ -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()
}

View file

@ -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}
}