Set signal name to dbus subscription
[platform/core/connectivity/bluetooth-agent.git] / hid-agent / bluetooth-hid-agent.c
index 323713e..031d16a 100644 (file)
@@ -29,7 +29,8 @@ static char *g_obj_path;
 
 static GDBusConnection *gdbus_conn;
 static GDBusProxy *profile_gproxy;
-static guint owner_sig_id;
+static guint interface_added_sig_id;
+static guint interface_removed_sig_id;
 static guint bluez_device_sig_id;
 static guint name_owner_sig_id;
 
@@ -742,8 +743,12 @@ static void __bt_hid_agent_dbus_init(void)
                __bt_hid_agent_register();
        }
 
-       owner_sig_id = g_dbus_connection_signal_subscribe(conn,
-                               NULL, BT_MANAGER_INTERFACE, NULL, NULL, NULL, 0,
+       interface_added_sig_id = g_dbus_connection_signal_subscribe(conn,
+                               NULL, BT_MANAGER_INTERFACE, BT_INTERFACES_ADDED, NULL, NULL, 0,
+                               __bt_hid_agent_filter_cb, NULL, NULL);
+
+       interface_removed_sig_id = g_dbus_connection_signal_subscribe(conn,
+                               NULL, BT_MANAGER_INTERFACE, BT_INTERFACES_REMOVED, NULL, NULL, 0,
                                __bt_hid_agent_filter_cb, NULL, NULL);
 
        bluez_device_sig_id = g_dbus_connection_signal_subscribe(conn,
@@ -764,9 +769,13 @@ static void __bt_hid_agent_dbus_deinit(void)
        }
 
        if (gdbus_conn) {
-               if (owner_sig_id > 0)
+               if (interface_added_sig_id > 0)
+                       g_dbus_connection_signal_unsubscribe(gdbus_conn,
+                                               interface_added_sig_id);
+
+               if (interface_removed_sig_id > 0)
                        g_dbus_connection_signal_unsubscribe(gdbus_conn,
-                                               owner_sig_id);
+                                               interface_removed_sig_id);
 
                if (bluez_device_sig_id > 0)
                        g_dbus_connection_signal_unsubscribe(gdbus_conn,
@@ -776,7 +785,8 @@ static void __bt_hid_agent_dbus_deinit(void)
                        g_dbus_connection_signal_unsubscribe(gdbus_conn,
                                                name_owner_sig_id);
 
-               owner_sig_id = 0;
+               interface_added_sig_id = 0;
+               interface_removed_sig_id = 0;
                bluez_device_sig_id = 0;
                name_owner_sig_id = 0;