aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Pervaz Boocha <mboocha@sudomsg.com>2026-02-23 19:53:35 +0530
committerMarc Pervaz Boocha <mboocha@sudomsg.com>2026-02-23 19:53:35 +0530
commitce1a721f19fe22cad661d837a10298b98bc05214 (patch)
tree04c4d11e9047afb5cc06ed339e63dd10e9988293
parentSplit out ChainHandler (diff)
downloadkit-ce1a721f19fe22cad661d837a10298b98bc05214.tar
kit-ce1a721f19fe22cad661d837a10298b98bc05214.tar.gz
kit-ce1a721f19fe22cad661d837a10298b98bc05214.tar.bz2
kit-ce1a721f19fe22cad661d837a10298b98bc05214.tar.lz
kit-ce1a721f19fe22cad661d837a10298b98bc05214.tar.xz
kit-ce1a721f19fe22cad661d837a10298b98bc05214.tar.zst
kit-ce1a721f19fe22cad661d837a10298b98bc05214.zip
Use go systemd package
-rw-r--r--go.mod7
-rw-r--r--go.sum4
-rw-r--r--http/http_test.go1
-rw-r--r--http/systemd_linux.go48
4 files changed, 10 insertions, 50 deletions
diff --git a/go.mod b/go.mod
index 3d23491..b775451 100644
--- a/go.mod
+++ b/go.mod
@@ -1,5 +1,8 @@
module go.sudomsg.com/kit
-go 1.25.0
+go 1.26.0
-require golang.org/x/sync v0.19.0
+require (
+ github.com/coreos/go-systemd/v22 v22.7.0
+ golang.org/x/sync v0.19.0
+)
diff --git a/go.sum b/go.sum
index e5b1c07..30ce3a9 100644
--- a/go.sum
+++ b/go.sum
@@ -1,4 +1,4 @@
-golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
-golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+github.com/coreos/go-systemd/v22 v22.7.0 h1:LAEzFkke61DFROc7zNLX/WA2i5J8gYqe0rSj9KI28KA=
+github.com/coreos/go-systemd/v22 v22.7.0/go.mod h1:xNUYtjHu2EDXbsxz1i41wouACIwT7Ybq9o0BQhMwD0w=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
diff --git a/http/http_test.go b/http/http_test.go
index 603dce3..d7eb3c4 100644
--- a/http/http_test.go
+++ b/http/http_test.go
@@ -51,4 +51,3 @@ func TestRunHTTPServers(t *testing.T) {
}
})
}
-
diff --git a/http/systemd_linux.go b/http/systemd_linux.go
index 9b52bd6..bf1e6a1 100644
--- a/http/systemd_linux.go
+++ b/http/systemd_linux.go
@@ -3,55 +3,13 @@
package http
import (
- "fmt"
- "net"
- "os"
- "strconv"
+ "github.com/coreos/go-systemd/v22/activation"
)
func getSystemdListeners() (Listeners, error) {
- pidStr := os.Getenv("LISTEN_PID")
- fdStr := os.Getenv("LISTEN_FDS")
-
- if pidStr == "" || fdStr == "" {
- return nil, nil // Not running under systemd
- }
-
- pid, err := strconv.Atoi(pidStr)
+ lns, err := activation.Listeners()
if err != nil {
- // Not our activation — another process might have inherited the env.
- return nil, nil
- }
- if pid != os.Getpid() {
- return nil, fmt.Errorf("LISTEN_PID %d does not match current PID %d", pid, os.Getpid())
- }
-
- defer func() {
- _ = os.Unsetenv("LISTEN_PID")
- _ = os.Unsetenv("LISTEN_FDS")
- }()
-
- nfds, err := strconv.ParseUint(fdStr, 10, 64)
- if err != nil {
- return nil, fmt.Errorf("invalid LISTEN_FDS: %w", err)
- }
- if nfds == 0 {
- return nil, nil // Nothing to do
- }
-
- lns := make(Listeners, 0, nfds)
- for i := range nfds {
- fd := i + 3
- file := os.NewFile(uintptr(fd), fmt.Sprintf("fd_%d", fd))
- if file == nil {
- return nil, fmt.Errorf("fd %d was nil", fd)
- }
- ln, err := net.FileListener(file)
- if err != nil {
- file.Close()
- return nil, fmt.Errorf("failed to create listener from fd %d: %w", fd, err)
- }
- lns = append(lns, ln)
+ return nil, err
}
return lns, nil