httpcaddyfile: 'bind' properly parses unix sockets (fixes #2999)

This commit is contained in:
Matthew Holt 2020-03-19 09:43:17 -06:00
parent 406df22a16
commit 31c6ac097e
No known key found for this signature in database
GPG key ID: 2A349DD577D586A5

View file

@ -21,6 +21,7 @@ import (
"strconv"
"strings"
"github.com/caddyserver/caddy/v2"
"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"
"github.com/caddyserver/caddy/v2/modules/caddyhttp"
"github.com/caddyserver/certmagic"
@ -199,8 +200,13 @@ func (st *ServerType) listenerAddrsForServerBlockKey(sblock serverBlock, key str
// use a map to prevent duplication
listeners := make(map[string]struct{})
for _, host := range lnHosts {
addr, err := caddy.ParseNetworkAddress(host)
if err == nil && addr.IsUnixNetwork() {
listeners[host] = struct{}{}
} else {
listeners[net.JoinHostPort(host, lnPort)] = struct{}{}
}
}
// now turn map into list
var listenersList []string