Dbus interfaces should be registered on bus name acquired callback. 75/62275/2
authorNishant Chaprana <n.chaprana@samsung.com>
Tue, 15 Mar 2016 07:13:51 +0000 (12:43 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Tue, 15 Mar 2016 07:18:43 +0000 (12:48 +0530)
When registering dbus events on name acquired callback,
first dbus call always fail.
So now changed interface info registeration logic to register interface
at bus name acquired callback, by doing this we ensure that when first
dbus call comes interfaces are registered properly and we donot get
Unkonwn method error at library.

Change-Id: Iee93b8ea222bf0109115333b6bf1b6a6e9bdbeca
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
packaging/wifi-direct-manager.spec
src/wifi-direct-dbus.c

index b24f91d..0f972aa 100755 (executable)
@@ -1,6 +1,6 @@
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.145
+Version:       1.2.146
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index db48c18..f1845e2 100644 (file)
@@ -38,12 +38,19 @@ static GDBusConnection *__dbus_get_gdbus_conn(void)
        return g_connection;
 }
 
+static void __on_bus_acquired(GDBusConnection *connection,
+                             const gchar *name,
+                             gpointer user_data)
+{
+       WDS_LOGD("on_bus_acquired: %s", name);
+       wfd_manager_dbus_register();
+}
+
 static void __on_name_acquired(GDBusConnection *connection,
                               const gchar *name,
                               gpointer user_data)
 {
        WDS_LOGD("on_name_acquired: %s", name);
-       wfd_manager_dbus_register();
 }
 
 static void __on_name_lost(GDBusConnection *connection,
@@ -130,13 +137,15 @@ gboolean wfd_manager_dbus_init(void)
                return FALSE;
        }
 
-       g_owner_id = g_bus_own_name_on_connection(g_connection,
-                                                 WFD_MANAGER_SERVICE,
-                                                 G_BUS_NAME_OWNER_FLAGS_NONE,
-                                                 __on_name_acquired,
-                                                 __on_name_lost,
-                                                 NULL,
-                                                 NULL);
+
+       g_owner_id = g_bus_own_name(G_BUS_TYPE_SYSTEM,
+                                   WFD_MANAGER_SERVICE,
+                                   G_BUS_NAME_OWNER_FLAGS_NONE,
+                                   __on_bus_acquired,
+                                   __on_name_acquired,
+                                   __on_name_lost,
+                                   NULL,
+                                   NULL);
        if (g_owner_id == 0) {
                WDS_LOGE("Failed to get bus name");
                return FALSE;