summaryrefslogtreecommitdiff
path: root/src/login/logind-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/logind-core.c')
-rw-r--r--src/login/logind-core.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/login/logind-core.c b/src/login/logind-core.c
index 1d85278c6..e7517794c 100644
--- a/src/login/logind-core.c
+++ b/src/login/logind-core.c
@@ -6,7 +6,7 @@
#include <sys/types.h>
#include <linux/vt.h>
#if ENABLE_UTMP
-//#include <utmpx.h>
+#include <utmpx.h>
#endif
#include "alloc-util.h"
@@ -17,7 +17,7 @@
#include "fd-util.h"
#include "logind.h"
#include "parse-util.h"
-//#include "path-util.h"
+#include "path-util.h"
#include "process-util.h"
#include "strv.h"
#include "terminal-util.h"
@@ -357,28 +357,29 @@ int manager_get_session_by_pid(Manager *m, pid_t pid, Session **ret) {
if (!pid_is_valid(pid))
return -EINVAL;
+ s = hashmap_get(m->sessions_by_leader, PID_TO_PTR(pid));
+ if (!s) {
#if 0 /// elogind does not support systemd units, but its own session system
+ r = cg_pid_get_unit(pid, &unit);
+ if (r < 0)
+ goto not_found;
+
s = hashmap_get(m->session_units, unit);
if (!s)
goto not_found;
- }
#else
- log_debug_elogind("Searching session for PID %u", pid);
- r = cg_pid_get_session(pid, &session_name);
- if (r < 0)
- goto not_found;
- s = hashmap_get(m->sessions_by_leader, PID_TO_PTR(pid));
- if (!s) {
- r = cg_pid_get_unit(pid, &unit);
+ log_debug_elogind("Searching session for PID %u", pid);
+ r = cg_pid_get_session(pid, &session_name);
if (r < 0)
goto not_found;
- s = hashmap_get(m->sessions, session_name);
- log_debug_elogind("Session Name \"%s\" -> Session \"%s\"",
- session_name, s && s->id ? s->id : "NULL");
- if (NULL == s)
- goto not_found;
+ s = hashmap_get(m->sessions, session_name);
+ log_debug_elogind("Session Name \"%s\" -> Session \"%s\"",
+ session_name, s && s->id ? s->id : "NULL");
+ if (NULL == s)
+ goto not_found;
#endif // 0
+ }
if (ret)
*ret = s;