From 31c6ac097e14776d9a259ba450d096fc61416ebe Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Thu, 19 Mar 2020 09:43:17 -0600 Subject: [PATCH] httpcaddyfile: 'bind' properly parses unix sockets (fixes #2999) --- caddyconfig/httpcaddyfile/addresses.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/caddyconfig/httpcaddyfile/addresses.go b/caddyconfig/httpcaddyfile/addresses.go index 4dad166d..f5fd6b68 100644 --- a/caddyconfig/httpcaddyfile/addresses.go +++ b/caddyconfig/httpcaddyfile/addresses.go @@ -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,7 +200,12 @@ func (st *ServerType) listenerAddrsForServerBlockKey(sblock serverBlock, key str // use a map to prevent duplication listeners := make(map[string]struct{}) for _, host := range lnHosts { - listeners[net.JoinHostPort(host, lnPort)] = struct{}{} + 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