From bb88b769afb2a7b667919dd52de1d51ab60aaacf Mon Sep 17 00:00:00 2001 From: David Barth Date: Fri, 19 Feb 2010 13:28:45 +0100 Subject: prevent crash in g_error when gdm is not running --- src/users-service-dbus.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index d377089..0e5c922 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -1,3 +1,4 @@ +/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ /* * Copyright 2009 Canonical Ltd. * @@ -183,7 +184,8 @@ users_service_dbus_init (UsersServiceDbus *self) create_ck_proxy (self); create_seat_proxy (self); - users_loaded (priv->gdm_proxy, self); + if (priv->gdm_proxy) + users_loaded (priv->gdm_proxy, self); } static void @@ -214,7 +216,7 @@ create_gdm_proxy (UsersServiceDbus *self) { if (error != NULL) { - g_error ("Unable to get DisplayManager proxy on system bus: %s", error->message); + g_warning ("Unable to get DisplayManager proxy on system bus: %s", error->message); g_error_free (error); } @@ -679,6 +681,8 @@ users_loaded (DBusGProxy *proxy, GError *error = NULL; gint count; + g_return_if_fail (proxy != NULL); + service = (UsersServiceDbus *)user_data; priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); @@ -859,6 +863,8 @@ gboolean start_new_user_session (UsersServiceDbus *self, UserData *user) { + g_return_val_if_fail (IS_USERS_SERVICE_DBUS (self), FALSE); + UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); GError *error = NULL; char *ssid; -- cgit v1.2.3 From 7636e191ecf68f41ef28ae5e8811467e993aa108 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 23 Feb 2010 16:55:45 -0600 Subject: Changed names to patch current upower --- src/session-service.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/session-service.c b/src/session-service.c index 9fb9ee7..289bff8 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -226,7 +226,7 @@ up_changed_cb (DBusGProxy * proxy, gpointer user_data) G_TYPE_STRING, UP_INTERFACE, G_TYPE_STRING, - "can-suspend", + "CanSuspend", G_TYPE_INVALID, G_TYPE_VALUE, G_TYPE_INVALID); @@ -242,7 +242,7 @@ up_changed_cb (DBusGProxy * proxy, gpointer user_data) G_TYPE_STRING, UP_INTERFACE, G_TYPE_STRING, - "can-hibernate", + "CanHibernate", G_TYPE_INVALID, G_TYPE_VALUE, G_TYPE_INVALID); -- cgit v1.2.3 From 02ab93a720729796e63b66a521edd647c26182cb Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 24 Feb 2010 11:26:24 -0600 Subject: Adding a fallback for now gnome-session detected. --- src/gtk-dialog/gtk-logout-helper.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/gtk-dialog/gtk-logout-helper.c b/src/gtk-dialog/gtk-logout-helper.c index d8aea6b..29f0add 100644 --- a/src/gtk-dialog/gtk-logout-helper.c +++ b/src/gtk-dialog/gtk-logout-helper.c @@ -29,6 +29,33 @@ with this program. If not, see . #include "ck-pk-helper.h" #include "gconf-helper.h" +static void +consolekit_fallback (LogoutDialogAction action) +{ + DBusGConnection * sbus = dbus_g_bus_get(DBUS_BUS_SYSTEM, NULL); + g_return_if_fail(sbus != NULL); /* worst case */ + DBusGProxy * proxy = dbus_g_proxy_new_for_name(sbus, "org.freedesktop.ConsoleKit", + "/org/freedesktop/ConsoleKit/Manager", + "org.freedesktop.ConsoleKit.Manager"); + + if (proxy == NULL) { + g_warning("Unable to get consolekit proxy"); + return; + } + + switch (action) { + case LOGOUT_DIALOG_LOGOUT: { + g_warning("Unable to fallback to ConsoleKit for logout as it's a session issue. We need some sort of session handler."); + break; + } + default: + g_warning("Unknown action"); + break; + } + + g_object_unref(proxy); +} + static void session_action (LogoutDialogAction action) { @@ -50,6 +77,8 @@ session_action (LogoutDialogAction action) if (sm_proxy == NULL) { g_warning("Unable to get DBus proxy to SessionManager interface: %s", error->message); g_error_free(error); + + consolekit_fallback(action); return; } -- cgit v1.2.3 From 8985b002f45ca55cabf32225c7a483ea36905c86 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 24 Feb 2010 11:39:50 -0600 Subject: Adding in shutdown and restart --- src/gtk-dialog/gtk-logout-helper.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/gtk-dialog/gtk-logout-helper.c b/src/gtk-dialog/gtk-logout-helper.c index 29f0add..4c6614c 100644 --- a/src/gtk-dialog/gtk-logout-helper.c +++ b/src/gtk-dialog/gtk-logout-helper.c @@ -44,16 +44,27 @@ consolekit_fallback (LogoutDialogAction action) } switch (action) { - case LOGOUT_DIALOG_LOGOUT: { + case LOGOUT_DIALOG_LOGOUT: g_warning("Unable to fallback to ConsoleKit for logout as it's a session issue. We need some sort of session handler."); break; - } + case LOGOUT_DIALOG_SHUTDOWN: + dbus_g_proxy_call_no_reply(proxy, + "Stop", + G_TYPE_INVALID); + break; + case LOGOUT_DIALOG_RESTART: + dbus_g_proxy_call_no_reply(proxy, + "Restart", + G_TYPE_INVALID); + break; default: g_warning("Unknown action"); break; } g_object_unref(proxy); + + return; } static void -- cgit v1.2.3 From ab02e295a6e21e1acb577516f0796d0ff4cc7092 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 25 Feb 2010 11:54:38 -0600 Subject: 0.2.4 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 221da2c..b3bfd8b 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ AC_INIT(src/indicator-session.c) AC_PREREQ(2.53) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(indicator-session, 0.2.3) +AM_INIT_AUTOMAKE(indicator-session, 0.2.4) AM_MAINTAINER_MODE -- cgit v1.2.3