diff options
Diffstat (limited to 'core/setup/reflect.go')
-rw-r--r-- | core/setup/reflect.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/core/setup/reflect.go b/core/setup/reflect.go new file mode 100644 index 000000000..9ae1d5181 --- /dev/null +++ b/core/setup/reflect.go @@ -0,0 +1,28 @@ +package setup + +import ( + "github.com/miekg/coredns/middleware" + "github.com/miekg/coredns/middleware/reflect" +) + +// Reflect sets up the reflect middleware. +func Reflect(c *Controller) (middleware.Middleware, error) { + if err := reflectParse(c); err != nil { + return nil, err + } + return func(next middleware.Handler) middleware.Handler { + return reflect.Reflect{Next: next} + }, nil + +} + +func reflectParse(c *Controller) error { + for c.Next() { + if c.Val() == "reflect" { + if c.NextArg() { + return c.ArgErr() + } + } + } + return nil +} |