aboutsummaryrefslogtreecommitdiff
path: root/forged/internal/common/misc/net.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-08-17 14:01:34 +0800
committerRunxi Yu <me@runxiyu.org>2025-08-17 14:01:34 +0800
commita5c7b4359722296eba8a52923a8133d1f4367cf0 (patch)
treee389a5fd22d8b99713be543304b4931dbffb1a05 /forged/internal/common/misc/net.go
parentLint database (diff)
downloadforge-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.go18
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)
}