aboutsummaryrefslogtreecommitdiff
path: root/core/setup/reflect.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/setup/reflect.go')
-rw-r--r--core/setup/reflect.go28
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
+}