Browse Source

fix #2141

Log errors from attempting to delete a unix domain socket path
tags/v2.14.0-rc1
Shivaram Lingamneni 1 month ago
parent
commit
289b78d2fd
1 changed files with 7 additions and 3 deletions
  1. 7
    3
      irc/listeners.go

+ 7
- 3
irc/listeners.go View File

5
 
5
 
6
 import (
6
 import (
7
 	"errors"
7
 	"errors"
8
+	"io/fs"
8
 	"net"
9
 	"net"
9
 	"net/http"
10
 	"net/http"
10
 	"os"
11
 	"os"
29
 
30
 
30
 // NewListener creates a new listener according to the specifications in the config file
31
 // NewListener creates a new listener according to the specifications in the config file
31
 func NewListener(server *Server, addr string, config utils.ListenerConfig, bindMode os.FileMode) (result IRCListener, err error) {
32
 func NewListener(server *Server, addr string, config utils.ListenerConfig, bindMode os.FileMode) (result IRCListener, err error) {
32
-	baseListener, err := createBaseListener(addr, bindMode)
33
+	baseListener, err := createBaseListener(server, addr, bindMode)
33
 	if err != nil {
34
 	if err != nil {
34
 		return
35
 		return
35
 	}
36
 	}
43
 	}
44
 	}
44
 }
45
 }
45
 
46
 
46
-func createBaseListener(addr string, bindMode os.FileMode) (listener net.Listener, err error) {
47
+func createBaseListener(server *Server, addr string, bindMode os.FileMode) (listener net.Listener, err error) {
47
 	addr = strings.TrimPrefix(addr, "unix:")
48
 	addr = strings.TrimPrefix(addr, "unix:")
48
 	if strings.HasPrefix(addr, "/") {
49
 	if strings.HasPrefix(addr, "/") {
49
 		// https://stackoverflow.com/a/34881585
50
 		// https://stackoverflow.com/a/34881585
50
-		os.Remove(addr)
51
+		removeErr := os.Remove(addr)
52
+		if removeErr != nil && !errors.Is(removeErr, fs.ErrNotExist) {
53
+			server.logger.Warning("listeners", "could not delete unix domain listener", addr, removeErr.Error())
54
+		}
51
 		listener, err = net.Listen("unix", addr)
55
 		listener, err = net.Listen("unix", addr)
52
 		if err == nil && bindMode != 0 {
56
 		if err == nil && bindMode != 0 {
53
 			os.Chmod(addr, bindMode)
57
 			os.Chmod(addr, bindMode)

Loading…
Cancel
Save