aboutsummaryrefslogtreecommitdiff
path: root/plugin/proxy/upstream.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2018-01-08 15:03:42 +0000
committerGravatar GitHub <noreply@github.com> 2018-01-08 15:03:42 +0000
commita7590897fbe433129e661d7d85f4635a8601ade1 (patch)
tree7c2fe5ad056b944036ef4f05ce0a42fdc6544fca /plugin/proxy/upstream.go
parentdd37627e8e42aeb9410b697fa18c8157accf74f9 (diff)
downloadcoredns-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.go6
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