diff --git a/lib/gat/listen.go b/lib/gat/listen.go index 7204a61222fa347492060a8c196ee5d1b02be5f8..b68fcd8078c449985fbcd7f44cc7baa8c28d6029 100644 --- a/lib/gat/listen.go +++ b/lib/gat/listen.go @@ -5,6 +5,8 @@ import ( "encoding/json" "fmt" "net" + "os" + "path/filepath" "strconv" "strings" @@ -80,6 +82,11 @@ func (T *Listener) Provision(ctx caddy.Context) error { } func (T *Listener) Start() error { + if T.networkAddress.Network == "unix" { + if err := os.MkdirAll(filepath.Dir(T.networkAddress.Host), 0o660); err != nil { + return err + } + } listener, err := T.networkAddress.Listen(context.Background(), 0, net.ListenConfig{}) if err != nil { return err