+static void _ws_manage_group_iface_signal(const gchar *group_iface_obj_path,
+ gboolean is_created)
+{
+ __WDP_LOG_FUNC_ENTER__;
+ GDBusConnection *connection;
+
+ if (!g_pd) {
+ WDP_LOGD("Ignore");
+ __WDP_LOG_FUNC_EXIT__;
+ return;
+ }
+
+ if (!g_strcmp0(g_pd->iface_path, group_iface_obj_path)) {
+ WDP_LOGD("group iface is p2p iface, ignore");
+ __WDP_LOG_FUNC_EXIT__;
+ return;
+ }
+
+ connection = g_pd->g_dbus;
+ int i;
+ if (is_created) {
+ /* subscribe Interface iface signal */
+ for (i = 0; ws_group_interface_signal_map[i].member != NULL; i++) {
+ ws_group_interface_signal_map[i].sub_id =
+ g_dbus_connection_signal_subscribe(connection,
+ SUPPLICANT_SERVICE, /* bus name */
+ ws_group_interface_signal_map[i].interface, /* interface */
+ ws_group_interface_signal_map[i].member, /* member */
+ group_iface_obj_path, /* object path */
+ NULL, /* arg0 */
+ G_DBUS_SIGNAL_FLAGS_NONE,
+ ws_group_interface_signal_map[i].function,
+ NULL, NULL);
+ WDP_LOGD("Subscribed Interface iface signal [%s]", ws_group_interface_signal_map[i].member);
+ }
+
+ } else {
+ for (i = 0; ws_group_interface_signal_map[i].member != NULL; i++) {
+ g_dbus_connection_signal_unsubscribe(connection, ws_group_interface_signal_map[i].sub_id);
+ ws_group_interface_signal_map[i].sub_id = 0;
+ }
+ }
+ __WDP_LOG_FUNC_EXIT__;
+ return;
+}
+