diff options
author | 2018-01-08 15:03:42 +0000 | |
---|---|---|
committer | 2018-01-08 15:03:42 +0000 | |
commit | a7590897fbe433129e661d7d85f4635a8601ade1 (patch) | |
tree | 7c2fe5ad056b944036ef4f05ce0a42fdc6544fca /plugin/proxy/upstream.go | |
parent | dd37627e8e42aeb9410b697fa18c8157accf74f9 (diff) | |
download | coredns-a7590897fbe433129e661d7d85f4635a8601ade1.tar.gz coredns-a7590897fbe433129e661d7d85f4635a8601ade1.tar.zst coredns-a7590897fbe433129e661d7d85f4635a8601ade1.zip |
plugin/proxy: max the number of upstreams (#1359)
* plugin/proxy: max the number of upstreams
Put a max of 15 on the number of upstreams.
Diffstat (limited to 'plugin/proxy/upstream.go')
-rw-r--r-- | plugin/proxy/upstream.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/plugin/proxy/upstream.go b/plugin/proxy/upstream.go index 151fcad60..bcb921973 100644 --- a/plugin/proxy/upstream.go +++ b/plugin/proxy/upstream.go @@ -53,6 +53,10 @@ func NewStaticUpstreams(c *caddyfile.Dispenser) ([]Upstream, error) { return upstreams, err } + if len(toHosts) > max { + return upstreams, fmt.Errorf("more than %d TOs configured: %d", max, len(toHosts)) + } + for c.NextBlock() { if err := parseBlock(c, upstream); err != nil { return upstreams, err @@ -192,3 +196,5 @@ func (u *staticUpstream) IsAllowedDomain(name string) bool { func (u *staticUpstream) Exchanger() Exchanger { return u.ex } func (u *staticUpstream) From() string { return u.from } + +const max = 15 |