[telepathy-mission-control/master] McdService: obtain the NMC bus name correctly and exit if we can't

Simon McVittie simon.mcvittie at collabora.co.uk
Wed May 13 08:21:27 PDT 2009


---
 src/mcd-service.c |   26 ++++++++++++--------------
 1 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/src/mcd-service.c b/src/mcd-service.c
index 6bd78a9..eee382f 100644
--- a/src/mcd-service.c
+++ b/src/mcd-service.c
@@ -55,6 +55,7 @@
 #include "mcd-dispatcher-context.h"
 #include "mcd-account-compat.h"
 #include "mcd-connection.h"
+#include "mcd-misc.h"
 #include "mcd-service.h"
 
 #include <libmcclient/mc-errors.h>
@@ -82,22 +83,19 @@ typedef struct _McdServicePrivate
 static void
 mcd_service_obtain_bus_name (McdService * obj)
 {
-    DBusError error;
-    DBusGConnection *connection;
-    
-    g_object_get (obj, "dbus-connection", &connection, NULL);
-    
-    dbus_error_init (&error);
-    
+    McdMaster *master = MCD_MASTER (obj);
+    GError *error = NULL;
+
     DEBUG ("Requesting MC dbus service");
-    
-    dbus_bus_request_name (dbus_g_connection_get_connection (connection),
-			   MISSION_CONTROL_DBUS_SERVICE, 0, &error);
-    if (dbus_error_is_set (&error))
+
+    if (!_mcd_dbus_daemon_request_name (mcd_master_get_dbus_daemon (master),
+                                        MISSION_CONTROL_DBUS_SERVICE,
+                                        TRUE /* idempotent */, &error))
     {
-	g_error ("Service name '%s' is already in use - request failed",
-		 MISSION_CONTROL_DBUS_SERVICE);
-	dbus_error_free (&error);
+        g_error ("Failed registering '%s' service: %s",
+                 MISSION_CONTROL_DBUS_SERVICE, error->message);
+        g_error_free (error);
+        exit (1);
     }
 }
 
-- 
1.5.6.5



More information about the telepathy-commits mailing list