diff --git a/cmd/serve/sftp/server.go b/cmd/serve/sftp/server.go index 0b89e03cc..843b3c640 100644 --- a/cmd/serve/sftp/server.go +++ b/cmd/serve/sftp/server.go @@ -21,13 +21,13 @@ import ( "path/filepath" "strings" - sdActivation "github.com/coreos/go-systemd/v22/activation" "github.com/rclone/rclone/cmd/serve/proxy" "github.com/rclone/rclone/cmd/serve/proxy/proxyflags" "github.com/rclone/rclone/fs" "github.com/rclone/rclone/fs/config" "github.com/rclone/rclone/lib/env" "github.com/rclone/rclone/lib/file" + sdActivation "github.com/rclone/rclone/lib/sdactivation" "github.com/rclone/rclone/vfs" "github.com/rclone/rclone/vfs/vfscommon" "golang.org/x/crypto/ssh" diff --git a/lib/http/server.go b/lib/http/server.go index 2b5270d98..acc07c4b2 100644 --- a/lib/http/server.go +++ b/lib/http/server.go @@ -17,11 +17,11 @@ import ( "sync" "time" - sdActivation "github.com/coreos/go-systemd/v22/activation" "github.com/go-chi/chi/v5" "github.com/rclone/rclone/fs" "github.com/rclone/rclone/fs/config/flags" "github.com/rclone/rclone/lib/atexit" + sdActivation "github.com/rclone/rclone/lib/sdactivation" "github.com/spf13/pflag" ) diff --git a/lib/sdactivation/sdactivation_stub.go b/lib/sdactivation/sdactivation_stub.go new file mode 100644 index 000000000..e5fbff553 --- /dev/null +++ b/lib/sdactivation/sdactivation_stub.go @@ -0,0 +1,24 @@ +//go:build windows || plan9 +// +build windows plan9 + +// Package sdactivation provides support for systemd socket activation, +// wrapping the coreos/go-systemd package. +// This wraps the underlying go-systemd binary, as it fails to build on plan9 +// https://github.com/coreos/go-systemd/pull/440 +package sdactivation + +import ( + "net" +) + +// ListenersWithNames maps a listener name to a set of net.Listener instances. +// This wraps the underlying go-systemd binary, as it fails to build on plan9 +// https://github.com/coreos/go-systemd/pull/440 +func ListenersWithNames() (map[string][]net.Listener, error) { + return make(map[string][]net.Listener), nil +} + +// Listeners returns a slice containing a net.Listener for each matching socket type passed to this process. +func Listeners() ([]net.Listener, error) { + return nil, nil +} diff --git a/lib/sdactivation/sdactivation_unix.go b/lib/sdactivation/sdactivation_unix.go new file mode 100644 index 000000000..523321bcf --- /dev/null +++ b/lib/sdactivation/sdactivation_unix.go @@ -0,0 +1,24 @@ +//go:build !windows && !plan9 +// +build !windows,!plan9 + +// Package sdactivation provides support for systemd socket activation, wrapping +// the coreos/go-systemd package. +// This wraps the underlying go-systemd library, as it fails to build on plan9 +// https://github.com/coreos/go-systemd/pull/440 +package sdactivation + +import ( + "net" + + sdActivation "github.com/coreos/go-systemd/v22/activation" +) + +// ListenersWithNames maps a listener name to a set of net.Listener instances. +func ListenersWithNames() (map[string][]net.Listener, error) { + return sdActivation.ListenersWithNames() +} + +// Listeners returns a slice containing a net.Listener for each matching socket type passed to this process. +func Listeners() ([]net.Listener, error) { + return sdActivation.Listeners() +}