Mercurial > vanilla
comparison mate/mate-session-manager/systemd-dependency.patch @ 471:31b4a03cced1
mate/mate-session-manager: initial import, closes #1464
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 06 Apr 2019 13:24:26 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
470:bf45d0fd8127 | 471:31b4a03cced1 |
---|---|
1 From https://github.com/mate-desktop/mate-session-manager/commit/254a091b31517a25bc037b31daff27fbb74ac90d | |
2 | |
3 From 254a091b31517a25bc037b31daff27fbb74ac90d Mon Sep 17 00:00:00 2001 | |
4 From: Victor Kareh <vkareh@redhat.com> | |
5 Date: Wed, 6 Mar 2019 09:20:36 -0500 | |
6 Subject: [PATCH] Guard against missing systemd | |
7 | |
8 --- | |
9 mate-session/gsm-systemd.c | 19 +++++++++++++++++++ | |
10 1 file changed, 19 insertions(+) | |
11 | |
12 diff --git a/mate-session/gsm-systemd.c b/mate-session/gsm-systemd.c | |
13 index da3f23b..d03cafd 100644 | |
14 --- a/mate-session/gsm-systemd.c | |
15 +++ b/mate-session/gsm-systemd.c | |
16 @@ -429,16 +429,31 @@ gsm_systemd_is_last_session_for_user (GsmSystemd *manager) | |
17 gboolean is_last_session; | |
18 int ret, i; | |
19 | |
20 +#ifdef HAVE_SYSTEMD | |
21 ret = sd_pid_get_session (getpid (), &session); | |
22 +#endif | |
23 + | |
24 + if (session == NULL) { | |
25 + return FALSE; | |
26 + } | |
27 | |
28 if (ret != 0) { | |
29 + free (session); | |
30 return FALSE; | |
31 } | |
32 | |
33 +#ifdef HAVE_SYSTEMD | |
34 ret = sd_uid_get_sessions (getuid (), FALSE, &sessions); | |
35 +#endif | |
36 + | |
37 + if (sessions == NULL) { | |
38 + free (session); | |
39 + return FALSE; | |
40 + } | |
41 | |
42 if (ret <= 0) { | |
43 free (session); | |
44 + free (sessions); | |
45 return FALSE; | |
46 } | |
47 | |
48 @@ -450,7 +465,9 @@ gsm_systemd_is_last_session_for_user (GsmSystemd *manager) | |
49 if (g_strcmp0 (sessions[i], session) == 0) | |
50 continue; | |
51 | |
52 +#ifdef HAVE_SYSTEMD | |
53 ret = sd_session_get_state (sessions[i], &state); | |
54 +#endif | |
55 | |
56 if (ret != 0) | |
57 continue; | |
58 @@ -461,7 +478,9 @@ gsm_systemd_is_last_session_for_user (GsmSystemd *manager) | |
59 } | |
60 free (state); | |
61 | |
62 +#ifdef HAVE_SYSTEMD | |
63 ret = sd_session_get_type (sessions[i], &type); | |
64 +#endif | |
65 | |
66 if (ret != 0) | |
67 continue; |