Files
coredns/middleware/rewrite/setup.go

43 lines
791 B
Go
Raw Normal View History

package rewrite
2016-03-18 20:57:35 +00:00
import (
"github.com/coredns/coredns/core/dnsserver"
"github.com/coredns/coredns/middleware"
"github.com/mholt/caddy"
2016-03-18 20:57:35 +00:00
)
func init() {
caddy.RegisterPlugin("rewrite", caddy.Plugin{
ServerType: "dns",
Action: setup,
})
}
func setup(c *caddy.Controller) error {
2016-03-18 20:57:35 +00:00
rewrites, err := rewriteParse(c)
if err != nil {
return middleware.Error("rewrite", err)
2016-03-18 20:57:35 +00:00
}
dnsserver.GetConfig(c).AddMiddleware(func(next middleware.Handler) middleware.Handler {
return Rewrite{Next: next, Rules: rewrites}
})
return nil
2016-03-18 20:57:35 +00:00
}
func rewriteParse(c *caddy.Controller) ([]Rule, error) {
var rules []Rule
2016-03-18 20:57:35 +00:00
for c.Next() {
args := c.RemainingArgs()
rule, err := newRule(args...)
if err != nil {
return nil, err
2016-03-18 20:57:35 +00:00
}
rules = append(rules, rule)
2016-03-18 20:57:35 +00:00
}
return rules, nil
2016-03-18 20:57:35 +00:00
}