Skip to content

Commit

Permalink
Merge pull request #2161 from slingamn/logerror
Browse files Browse the repository at this point in the history
fix #2141
  • Loading branch information
slingamn committed May 29, 2024
2 parents ad0149b + 289b78d commit 60f7d11
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions irc/listeners.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package irc

import (
"errors"
"io/fs"
"net"
"net/http"
"os"
Expand All @@ -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
}
Expand All @@ -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)
Expand Down

0 comments on commit 60f7d11

Please sign in to comment.