Use type switch instead of .Network for more reliably detecting UnixAddrs

This commit is contained in:
Matt Keeler 2018-07-12 07:30:17 -04:00
parent 09ff064bc7
commit 240e2affcd
1 changed files with 11 additions and 7 deletions

View File

@ -1202,13 +1202,17 @@ func (c *RuntimeConfig) apiAddresses(maxPerType int) (unixAddrs, httpAddrs, http
unix_count := 0
http_count := 0
for _, addr := range c.HTTPAddrs {
net := addr.Network()
if net == "tcp" && http_count < maxPerType {
httpAddrs = append(httpAddrs, addr.String())
http_count += 1
} else if net != "tcp" && unix_count < maxPerType {
unixAddrs = append(unixAddrs, addr.String())
unix_count += 1
switch addr.(type) {
case *net.UnixAddr:
if unix_count < maxPerType {
unixAddrs = append(unixAddrs, addr.String())
unix_count += 1
}
default:
if http_count < maxPerType {
httpAddrs = append(httpAddrs, addr.String())
http_count += 1
}
}
}
}