aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--middleware/etcd/setup.go48
1 files changed, 7 insertions, 41 deletions
diff --git a/middleware/etcd/setup.go b/middleware/etcd/setup.go
index a193c745c..380b57167 100644
--- a/middleware/etcd/setup.go
+++ b/middleware/etcd/setup.go
@@ -74,45 +74,7 @@ func etcdParse(c *caddy.Controller) (*Etcd, bool, error) {
}
if c.NextBlock() {
- // TODO(miek): 2 switches?
- switch c.Val() {
- case "stubzones":
- stubzones = true
- case "debug":
- etc.Debugging = true
- case "path":
- if !c.NextArg() {
- return &Etcd{}, false, c.ArgErr()
- }
- etc.PathPrefix = c.Val()
- case "endpoint":
- args := c.RemainingArgs()
- if len(args) == 0 {
- return &Etcd{}, false, c.ArgErr()
- }
- endpoints = args
- case "upstream":
- args := c.RemainingArgs()
- if len(args) == 0 {
- return &Etcd{}, false, c.ArgErr()
- }
- ups, err := dnsutil.ParseHostPortOrFile(args...)
- if err != nil {
- return &Etcd{}, false, err
- }
- etc.Proxy = proxy.NewLookup(ups)
- case "tls": // cert key cacertfile
- args := c.RemainingArgs()
- tlsConfig, err = mwtls.NewTLSConfigFromArgs(args...)
- if err != nil {
- return &Etcd{}, false, err
- }
- default:
- if c.Val() != "}" {
- return &Etcd{}, false, c.Errf("unknown property '%s'", c.Val())
- }
- }
- for c.Next() {
+ for {
switch c.Val() {
case "stubzones":
stubzones = true
@@ -136,7 +98,7 @@ func etcdParse(c *caddy.Controller) (*Etcd, bool, error) {
}
ups, err := dnsutil.ParseHostPortOrFile(args...)
if err != nil {
- return &Etcd{}, false, c.ArgErr()
+ return &Etcd{}, false, err
}
etc.Proxy = proxy.NewLookup(ups)
case "tls": // cert key cacertfile
@@ -146,10 +108,14 @@ func etcdParse(c *caddy.Controller) (*Etcd, bool, error) {
return &Etcd{}, false, err
}
default:
- if c.Val() != "}" { // TODO(miek): this feels like I'm doing it completely wrong.
+ if c.Val() != "}" {
return &Etcd{}, false, c.Errf("unknown property '%s'", c.Val())
}
}
+
+ if !c.Next() {
+ break
+ }
}
}