+static gboolean __check_and_set_technology_enable(gpointer data)
+{
+ static int retry_count = NETCONFIG_TECH_WAITING_COUNT;
+ gboolean value_enable = TRUE;
+ gboolean reply = FALSE;
+ GVariant *param0 = NULL;
+ GVariant *params = NULL;
+ char key[] = "Powered";
+
+ if (wifi_state_is_technology_available() == FALSE) {
+ retry_count--;
+ if (retry_count > 0)
+ return TRUE;
+ }
+
+ param0 = g_variant_new_boolean(value_enable);
+ params = g_variant_new("(sv)", key, param0);
+
+ reply = netconfig_invoke_dbus_method_nonblock(CONNMAN_SERVICE,
+ CONNMAN_WIFI_TECHNOLOGY_PREFIX,
+ CONNMAN_TECHNOLOGY_INTERFACE,
+ "SetProperty", params, __technology_reply);
+
+ if (reply != TRUE) {
+ ERR("Fail to set technology enable");
+ wifi_state_update_power_state(FALSE);
+
+ retry_count = NETCONFIG_TECH_WAITING_COUNT;
+ return FALSE;
+ }
+
+ retry_count = NETCONFIG_TECH_WAITING_COUNT;
+ return FALSE;
+}
+