diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-04-20 10:42:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-20 10:42:00 -0400 |
commit | e5e625b2a6481dd49d1d6303df1157c8a51dd7c2 (patch) | |
tree | af3212ad2ddcf805ff2f38a9e63d06e6c7472137 /pkg/systemd/activation.go | |
parent | bd711358525b09ebc4cb49094a674700b87f7ec0 (diff) | |
parent | 4e0326241b35d2549fdba5666f343c31279e18e4 (diff) | |
download | podman-e5e625b2a6481dd49d1d6303df1157c8a51dd7c2.tar.gz podman-e5e625b2a6481dd49d1d6303df1157c8a51dd7c2.tar.bz2 podman-e5e625b2a6481dd49d1d6303df1157c8a51dd7c2.zip |
Merge pull request #5872 from jwhonce/wip/options
V2 Fix support for tcp://[::]<port> connections
Diffstat (limited to 'pkg/systemd/activation.go')
-rw-r--r-- | pkg/systemd/activation.go | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/pkg/systemd/activation.go b/pkg/systemd/activation.go index c8b2389dc..8f75f9cca 100644 --- a/pkg/systemd/activation.go +++ b/pkg/systemd/activation.go @@ -3,38 +3,33 @@ package systemd import ( "os" "strconv" - "strings" ) // SocketActivated determine if podman is running under the socket activation protocol +// Criteria is based on the expectations of "github.com/coreos/go-systemd/v22/activation" func SocketActivated() bool { - pid, pid_found := os.LookupEnv("LISTEN_PID") - fds, fds_found := os.LookupEnv("LISTEN_FDS") - fdnames, fdnames_found := os.LookupEnv("LISTEN_FDNAMES") - - if !(pid_found && fds_found && fdnames_found) { + pid, found := os.LookupEnv("LISTEN_PID") + if !found { return false } - p, err := strconv.Atoi(pid) if err != nil || p != os.Getpid() { return false } + fds, found := os.LookupEnv("LISTEN_FDS") + if !found { + return false + } nfds, err := strconv.Atoi(fds) - if err != nil || nfds < 1 { + if err != nil || nfds == 0 { return false } - // First available file descriptor is always 3. - if nfds > 1 { - names := strings.Split(fdnames, ":") - for _, n := range names { - if strings.Contains(n, "podman") { - return true - } - } + // "github.com/coreos/go-systemd/v22/activation" will use and validate this variable's + // value. We're just providing a fast fail + if _, found = os.LookupEnv("LISTEN_FDNAMES"); !found { + return false } - return true } |