From 458c28e1d03f029703af74744f0577b6d9cee2dd Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Mon, 18 Sep 2017 00:16:10 +0200 Subject: [PATCH] cmd: UNIX sockets: try to autoremove stale sockets --- cmd/helpers.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmd/helpers.go b/cmd/helpers.go index d999195..56bc98a 100644 --- a/cmd/helpers.go +++ b/cmd/helpers.go @@ -22,5 +22,14 @@ func ListenUnixPrivate(sockaddr *net.UnixAddr) (*net.UnixListener, error) { return nil, errors.Errorf("%s must not be world-accessible (permissions are %#o)", p) } + // Maybe things have not been cleaned up before + s, err := os.Stat(sockaddr.Name) + if err == nil { + if s.Mode()&os.ModeSocket != 0 { + // opportunistically try to remove it, but if this fails, it is not an error + os.Remove(sockaddr.Name) + } + } + return net.ListenUnix("unix", sockaddr) }