[gnome-settings-daemon] smartcard: use common session proxy



commit bed7ce876af9089d898ae88deb6af5408d1e9227
Author: Ray Strode <rstrode redhat com>
Date:   Fri Aug 2 16:07:41 2013 -0400

    smartcard: use common session proxy
    
    Several existing plugins talk to the session manager, and so
    there's API for gaining access to a common proxy singleton.
    
    This commit drops the smartcard plugin specific way of getting
    a SessionManager D-Bus proxy in favor of using the common API.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=705127

 plugins/smartcard/Makefile.am                  |   15 +-
 plugins/smartcard/gsd-smartcard-manager.c      |   40 +--
 plugins/smartcard/org.gnome.SessionManager.xml |  451 ------------------------
 3 files changed, 4 insertions(+), 502 deletions(-)
---
diff --git a/plugins/smartcard/Makefile.am b/plugins/smartcard/Makefile.am
index 22a2f88..298113b 100644
--- a/plugins/smartcard/Makefile.am
+++ b/plugins/smartcard/Makefile.am
@@ -3,9 +3,8 @@ libsmartcard_headers = gsd-smartcard-manager.h \
                       gsd-smartcard-utils.h
 dbus_built_sources = org.gnome.SettingsDaemon.Smartcard.c org.gnome.SettingsDaemon.Smartcard.h
 screensaver_dbus_built_sources = org.gnome.ScreenSaver.c org.gnome.ScreenSaver.h
-session_manager_dbus_built_sources = org.gnome.SessionManager.c org.gnome.SessionManager.h
 enum_built_sources = gsd-smartcard-enum-types.h gsd-smartcard-enum-types.c
-BUILT_SOURCES = $(dbus_built_sources) $(screensaver_dbus_built_sources) 
$(session_manager_dbus_built_sources) $(enum_built_sources)
+BUILT_SOURCES = $(dbus_built_sources) $(screensaver_dbus_built_sources) $(enum_built_sources)
 
 libexec_PROGRAMS = gsd-test-smartcard
 
@@ -29,15 +28,6 @@ $(screensaver_dbus_built_sources) : Makefile.am org.gnome.ScreenSaver.xml
                           "org.gtk.GDBus.C.Name" ScreenSaver   \
                $(srcdir)/org.gnome.ScreenSaver.xml
 
-$(session_manager_dbus_built_sources) : Makefile.am org.gnome.SessionManager.xml
-       gdbus-codegen                                           \
-               --interface-prefix org.gnome.SessionManager.    \
-               --generate-c-code org.gnome.SessionManager      \
-               --c-namespace Gsd                               \
-               --annotate "org.gnome.SessionManager"           \
-                          "org.gtk.GDBus.C.Name" SessionManager        \
-               $(srcdir)/org.gnome.SessionManager.xml
-
 gsd-smartcard-enum-types.h: gsd-smartcard-enum-types.h.in $(libsmartcard_headers)
        $(AM_V_GEN) $(GLIB_MKENUMS) --template $^ > $@
 
@@ -47,7 +37,6 @@ gsd-smartcard-enum-types.c: gsd-smartcard-enum-types.c.in $(libsmartcard_headers
 gsd_test_smartcard_SOURCES =        \
        $(dbus_built_sources)   \
        $(screensaver_dbus_built_sources) \
-       $(session_manager_dbus_built_sources) \
        $(enum_built_sources)   \
        gsd-smartcard-service.c \
        gsd-smartcard-service.h \
@@ -85,7 +74,6 @@ libsmartcard_la_SOURCES = \
        $(libsmartcard_headers) \
        $(dbus_built_sources) \
        $(screensaver_dbus_built_sources) \
-       $(session_manager_dbus_built_sources) \
        $(enum_built_sources) \
        gsd-smartcard-manager.c \
        gsd-smartcard-plugin.c  \
@@ -127,7 +115,6 @@ EXTRA_DIST = \
        gsd-smartcard-enum-types.c.in \
        gsd-smartcard-enum-types.h.in \
        org.gnome.ScreenSaver.xml \
-       org.gnome.SessionManager.xml \
        org.gnome.SettingsDaemon.Smartcard.xml \
        $(plugin_in_files)
 
diff --git a/plugins/smartcard/gsd-smartcard-manager.c b/plugins/smartcard/gsd-smartcard-manager.c
index 4ac31ae..f5d68c0 100644
--- a/plugins/smartcard/gsd-smartcard-manager.c
+++ b/plugins/smartcard/gsd-smartcard-manager.c
@@ -26,13 +26,13 @@
 
 #include "gnome-settings-plugin.h"
 #include "gnome-settings-profile.h"
+#include "gnome-settings-session.h"
 #include "gsd-smartcard-manager.h"
 #include "gsd-smartcard-service.h"
 #include "gsd-smartcard-enum-types.h"
 #include "gsd-smartcard-utils.h"
 
 #include "org.gnome.ScreenSaver.h"
-#include "org.gnome.SessionManager.h"
 
 #include <prerror.h>
 #include <prinit.h>
@@ -794,32 +794,6 @@ lock_screen (GsdSmartcardManager *self)
 }
 
 static void
-on_got_session_manager_to_log_out (GObject             *object,
-                                   GAsyncResult        *result,
-                                   GsdSmartcardManager *self)
-{
-        GsdSmartcardManagerPrivate *priv = self->priv;
-        GsdSessionManager *session_manager;
-        GError *error = NULL;
-
-        session_manager = gsd_session_manager_proxy_new_for_bus_finish (result, &error);
-
-        if (session_manager == NULL) {
-                g_warning ("Couldn't find session manager service to log out: %s",
-                           error->message);
-                g_error_free (error);
-                return;
-        }
-
-        if (priv->session_manager != NULL)
-                g_object_unref (session_manager);
-
-        priv->session_manager = session_manager;
-
-        log_out (self);
-}
-
-static void
 on_logged_out (GsdSessionManager   *session_manager,
                GAsyncResult        *result,
                GsdSmartcardManager *self)
@@ -841,16 +815,8 @@ log_out (GsdSmartcardManager *self)
 {
         GsdSmartcardManagerPrivate *priv = self->priv;
 
-        if (priv->session_manager == NULL) {
-                gsd_session_manager_proxy_new_for_bus (G_BUS_TYPE_SESSION,
-                                                       G_DBUS_PROXY_FLAGS_NONE,
-                                                       "org.gnome.SessionManager",
-                                                       "/org/gnome/SessionManager",
-                                                       priv->cancellable,
-                                                       (GAsyncReadyCallback) 
on_got_session_manager_to_log_out,
-                                                       self);
-                return;
-        }
+        if (priv->session_manager == NULL)
+                priv->session_manager = gnome_settings_session_get_session_proxy ();
 
         gsd_session_manager_call_logout (priv->session_manager,
                                          GSD_SESSION_MANAGER_LOGOUT_MODE_FORCE,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]