[gnome-online-accounts/gnome-3-20] daemon: Abstract the way we initialize the Kerberos provider



commit 522f2b3c744256cbb6b89a9c7d97ca2e1e3f6f22
Author: Debarshi Ray <debarshir gnome org>
Date:   Fri May 20 14:55:40 2016 +0200

    daemon: Abstract the way we initialize the Kerberos provider
    
    The Kerberos backend needs to perform some class-wide (ie. not
    instance-specific) initialization when goa-daemon starts. This code is
    embedded into the class' type registration code.
    
    There is no reason to call out to the Kerberos provider explicitly by
    creating a dummy instance. The provider class will perform all
    necessary initialization at the time of extension registration. Merely
    ensuring the extensions are registered is better because it makes the
    backend implementation details more opaque.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766733

 src/daemon/goadaemon.c               |   27 +++------------------------
 src/goabackend/goakerberosprovider.c |    1 +
 2 files changed, 4 insertions(+), 24 deletions(-)
---
diff --git a/src/daemon/goadaemon.c b/src/daemon/goadaemon.c
index 55d9ea2..980015b 100644
--- a/src/daemon/goadaemon.c
+++ b/src/daemon/goadaemon.c
@@ -28,6 +28,7 @@
 
 #include "goadaemon.h"
 #include "goabackend/goabackend.h"
+#include "goabackend/goaprovider-priv.h"
 #include "goabackend/goautils.h"
 
 struct _GoaDaemon
@@ -210,26 +211,6 @@ on_network_monitor_network_changed (GoaDaemon *self, gboolean available)
   queue_check_credentials (self);
 }
 
-#ifdef GOA_KERBEROS_ENABLED
-static void
-activate_identity_service (GoaDaemon *self)
-{
-  GoaProvider *provider;
-
-  /* We activate the identity service implicitly by using the kerberos
-   * backend.  This way if the kerberos backend isn't enabled, we don't
-   * end up starting the identity service needlessly
-   */
-  provider = goa_provider_get_for_provider_type (GOA_KERBEROS_NAME);
-
-  if (provider != NULL)
-    {
-      g_debug ("activated kerberos provider");
-      g_object_unref (provider);
-    }
-}
-#endif
-
 static void
 goa_daemon_init (GoaDaemon *self)
 {
@@ -243,6 +224,8 @@ goa_daemon_init (GoaDaemon *self)
   goa_error_domain = GOA_ERROR;
   goa_error_domain; /* shut up -Wunused-but-set-variable */
 
+  goa_provider_ensure_builtins_loaded ();
+
   /* TODO: maybe nicer to pass in a GDBusConnection* construct property */
   self->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
 
@@ -291,10 +274,6 @@ goa_daemon_init (GoaDaemon *self)
   g_dbus_object_manager_server_set_connection (self->object_manager, self->connection);
 
   queue_check_credentials (self);
-
-#ifdef GOA_KERBEROS_ENABLED
-  activate_identity_service (self);
-#endif
 }
 
 static void
diff --git a/src/goabackend/goakerberosprovider.c b/src/goabackend/goakerberosprovider.c
index d11815a..87314bc 100644
--- a/src/goabackend/goakerberosprovider.c
+++ b/src/goabackend/goakerberosprovider.c
@@ -85,6 +85,7 @@ goa_kerberos_provider_module_init (void)
 {
   create_object_manager ();
   create_identity_manager ();
+  g_debug ("activated kerberos provider");
 }
 
 static const gchar *


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