diff options
author | Runxi Yu <me@runxiyu.org> | 2025-08-17 14:01:34 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-08-17 14:01:34 +0800 |
commit | a5c7b4359722296eba8a52923a8133d1f4367cf0 (patch) | |
tree | e389a5fd22d8b99713be543304b4931dbffb1a05 /forged/internal/common/misc/net.go | |
parent | Lint database (diff) | |
download | forge-a5c7b4359722296eba8a52923a8133d1f4367cf0.tar.gz forge-a5c7b4359722296eba8a52923a8133d1f4367cf0.tar.zst forge-a5c7b4359722296eba8a52923a8133d1f4367cf0.zip |
Lint misc
Diffstat (limited to 'forged/internal/common/misc/net.go')
-rw-r--r-- | forged/internal/common/misc/net.go | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/forged/internal/common/misc/net.go b/forged/internal/common/misc/net.go index 2c6b0a5..967ea77 100644 --- a/forged/internal/common/misc/net.go +++ b/forged/internal/common/misc/net.go @@ -1,20 +1,23 @@ package misc import ( + "context" "errors" "fmt" "net" "syscall" ) -func ListenUnixSocket(path string) (listener net.Listener, replaced bool, err error) { - listener, err = net.Listen("unix", path) +func ListenUnixSocket(ctx context.Context, path string) (listener net.Listener, replaced bool, err error) { + listenConfig := net.ListenConfig{} //exhaustruct:ignore + listener, err = listenConfig.Listen(ctx, "unix", path) if errors.Is(err, syscall.EADDRINUSE) { replaced = true - if unlinkErr := syscall.Unlink(path); unlinkErr != nil { + unlinkErr := syscall.Unlink(path) + if unlinkErr != nil { return listener, false, fmt.Errorf("remove existing socket %q: %w", path, unlinkErr) } - listener, err = net.Listen("unix", path) + listener, err = listenConfig.Listen(ctx, "unix", path) } if err != nil { return listener, replaced, fmt.Errorf("listen on unix socket %q: %w", path, err) @@ -22,14 +25,15 @@ func ListenUnixSocket(path string) (listener net.Listener, replaced bool, err er return listener, replaced, nil } -func Listen(net_, addr string) (listener net.Listener, err error) { +func Listen(ctx context.Context, net_, addr string) (listener net.Listener, err error) { if net_ == "unix" { - listener, _, err = ListenUnixSocket(addr) + listener, _, err = ListenUnixSocket(ctx, addr) if err != nil { return listener, fmt.Errorf("listen unix socket for web: %w", err) } } else { - listener, err = net.Listen(net_, addr) + listenConfig := net.ListenConfig{} //exhaustruct:ignore + listener, err = listenConfig.Listen(ctx, net_, addr) if err != nil { return listener, fmt.Errorf("listen %s for web: %w", net_, err) } |