From 289b78d2fd18c8fe98e333da538cf6fa2be1bedf Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Wed, 29 May 2024 02:13:44 -0400 Subject: [PATCH] fix #2141 Log errors from attempting to delete a unix domain socket path --- irc/listeners.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/irc/listeners.go b/irc/listeners.go index 6cc91298..a1f7b988 100644 --- a/irc/listeners.go +++ b/irc/listeners.go @@ -5,6 +5,7 @@ package irc import ( "errors" + "io/fs" "net" "net/http" "os" @@ -29,7 +30,7 @@ type IRCListener interface { // NewListener creates a new listener according to the specifications in the config file func NewListener(server *Server, addr string, config utils.ListenerConfig, bindMode os.FileMode) (result IRCListener, err error) { - baseListener, err := createBaseListener(addr, bindMode) + baseListener, err := createBaseListener(server, addr, bindMode) if err != nil { return } @@ -43,11 +44,14 @@ func NewListener(server *Server, addr string, config utils.ListenerConfig, bindM } } -func createBaseListener(addr string, bindMode os.FileMode) (listener net.Listener, err error) { +func createBaseListener(server *Server, addr string, bindMode os.FileMode) (listener net.Listener, err error) { addr = strings.TrimPrefix(addr, "unix:") if strings.HasPrefix(addr, "/") { // https://stackoverflow.com/a/34881585 - os.Remove(addr) + removeErr := os.Remove(addr) + if removeErr != nil && !errors.Is(removeErr, fs.ErrNotExist) { + server.logger.Warning("listeners", "could not delete unix domain listener", addr, removeErr.Error()) + } listener, err = net.Listen("unix", addr) if err == nil && bindMode != 0 { os.Chmod(addr, bindMode)