about summary refs log tree commit diff
path: root/src/nm-session-monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-session-monitor.c')
-rw-r--r--src/nm-session-monitor.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/nm-session-monitor.c b/src/nm-session-monitor.c
index 23d41d7e..b67c537c 100644
--- a/src/nm-session-monitor.c
+++ b/src/nm-session-monitor.c
@@ -28,24 +28,26 @@
 #include <string.h>
 #include <sys/stat.h>
 
-#if defined (SESSION_TRACKING_SYSTEMD) && defined (SESSION_TRACKING_ELOGIND)
+#if SESSION_TRACKING_SYSTEMD && SESSION_TRACKING_ELOGIND
 #error Cannot build both systemd-logind and elogind support
 #endif
 
-#ifdef SESSION_TRACKING_SYSTEMD
+#if SESSION_TRACKING_SYSTEMD
 #include <systemd/sd-login.h>
 #define LOGIND_NAME "systemd-logind"
 #endif
 
-#ifdef SESSION_TRACKING_ELOGIND
+#if SESSION_TRACKING_ELOGIND
 #include <elogind/sd-login.h>
 #define LOGIND_NAME "elogind"
-/* Re-Use SESSION_TRACKING_SYSTEMD as elogind substitutes systemd-login */
-#define SESSION_TRACKING_SYSTEMD 1
 #endif
 
 #include "NetworkManagerUtils.h"
 
+#define SESSION_TRACKING_XLOGIND (SESSION_TRACKING_SYSTEMD || SESSION_TRACKING_ELOGIND)
+
+#define CKDB_PATH "/var/run/ConsoleKit/database"
+
 /*****************************************************************************/
 
 enum {
@@ -58,14 +60,14 @@ static guint signals[LAST_SIGNAL] = { 0 };
 struct _NMSessionMonitor {
 	GObject parent;
 
-#ifdef SESSION_TRACKING_SYSTEMD
+#if SESSION_TRACKING_XLOGIND
 	struct {
 		sd_login_monitor *monitor;
 		guint watch;
 	} sd;
 #endif
 
-#ifdef SESSION_TRACKING_CONSOLEKIT
+#if SESSION_TRACKING_CONSOLEKIT
 	struct {
 		GFileMonitor *monitor;
 		GHashTable *cache;
@@ -85,7 +87,7 @@ G_DEFINE_TYPE (NMSessionMonitor, nm_session_monitor, G_TYPE_OBJECT);
 
 /*****************************************************************************/
 
-#ifdef SESSION_TRACKING_SYSTEMD
+#if SESSION_TRACKING_XLOGIND
 static gboolean
 st_sd_session_exists (NMSessionMonitor *monitor, uid_t uid, gboolean active)
 {
@@ -143,11 +145,11 @@ st_sd_finalize (NMSessionMonitor *monitor)
 	}
 	nm_clear_g_source (&monitor->sd.watch);
 }
-#endif /* SESSION_TRACKING_SYSTEMD */
+#endif /* SESSION_TRACKING_XLOGIND */
 
 /*****************************************************************************/
 
-#ifdef SESSION_TRACKING_CONSOLEKIT
+#if SESSION_TRACKING_CONSOLEKIT
 typedef struct {
 	gboolean active;
 } CkSession;
@@ -186,7 +188,7 @@ ck_load_cache (GHashTable *cache)
 		if (error)
 			goto out;
 
-		g_hash_table_insert (cache, GUINT_TO_POINTER (uid), g_memdup (&session, sizeof session));
+		g_hash_table_insert (cache, GUINT_TO_POINTER (uid), nm_memdup (&session, sizeof session));
 	}
 
 	finished = TRUE;
@@ -352,12 +354,12 @@ nm_session_monitor_session_exists (NMSessionMonitor *self,
 {
 	g_return_val_if_fail (NM_IS_SESSION_MONITOR (self), FALSE);
 
-#ifdef SESSION_TRACKING_SYSTEMD
+#if SESSION_TRACKING_XLOGIND
 	if (st_sd_session_exists (self, uid, active))
 		return TRUE;
 #endif
 
-#ifdef SESSION_TRACKING_CONSOLEKIT
+#if SESSION_TRACKING_CONSOLEKIT
 	if (ck_session_exists (self, uid, active))
 		return TRUE;
 #endif
@@ -370,12 +372,12 @@ nm_session_monitor_session_exists (NMSessionMonitor *self,
 static void
 nm_session_monitor_init (NMSessionMonitor *monitor)
 {
-#ifdef SESSION_TRACKING_SYSTEMD
+#if SESSION_TRACKING_XLOGIND
 	st_sd_init (monitor);
 	_LOGD ("using "LOGIND_NAME" session tracking");
 #endif
 
-#ifdef SESSION_TRACKING_CONSOLEKIT
+#if SESSION_TRACKING_CONSOLEKIT
 	ck_init (monitor);
 	_LOGD ("using ConsoleKit session tracking");
 #endif
@@ -384,11 +386,11 @@ nm_session_monitor_init (NMSessionMonitor *monitor)
 static void
 finalize (GObject *object)
 {
-#ifdef SESSION_TRACKING_SYSTEMD
+#if SESSION_TRACKING_XLOGIND
 	st_sd_finalize (NM_SESSION_MONITOR (object));
 #endif
 
-#ifdef SESSION_TRACKING_CONSOLEKIT
+#if SESSION_TRACKING_CONSOLEKIT
 	ck_finalize (NM_SESSION_MONITOR (object));
 #endif