#include <net_connection.h>
#include <wifi-manager.h>
+#include <vconf.h>
+#include <vconf-internal-keys.h>
#if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
#include "ocprovisioningmanager.h"
}
+void _wifi_state_changed_cb(wifi_manager_device_state_e state, void *user_data)
+{
+ UA_LOG("_wifi_state_changed_cb() state=[%d]", state);
+
+ if (state == WIFI_MANAGER_DEVICE_STATE_ACTIVATED) {
+ wifi_manager_scan(wifi_h, _wifi_scan_finished_cb, user_data);
+ wifi_manager_unset_device_state_changed_cb(wifi_h);
+ }
+}
+
void _wifi_activate_cb(wifi_manager_error_e result, void *user_data)
{
UA_LOG("_wifi_activate_cb() result=[%s]", __test_convert_error_to_string(result));
}
-
void _wifi_auto_connect(ua_wifi_info_s *wifi_info)
{
UA_LOG("Enter");
}
if (wifi_info->ap_name && strlen(wifi_info->ap_name) > 0) {
+#if 0
wifi_manager_is_activated(wifi_h, &wifi_state);
UA_LOG("Wifi activate state = [%s]", wifi_state?"TRUE":"FALSE");
-
if (wifi_state == false) {
+
wifi_manager_set_background_scan_cb(wifi_h, _wifi_scan_finished_cb, (void *)wifi_info);
rv = wifi_manager_activate(wifi_h, _wifi_activate_cb, NULL);
} else {
wifi_manager_scan(wifi_h, _wifi_scan_finished_cb, (void *)wifi_info);
}
+#else
+ int vconf_val = 0;
+ vconf_get_int("file/private/wifi/last_power_state", &vconf_val);
+ UA_LOG("wifi last power state = [%d]", vconf_val);
+ if (vconf_val > VCONFKEY_WIFI_OFF) { // auto activated
+ wifi_manager_connection_state_e connection_state;
+ wifi_manager_get_connection_state(wifi_h, &connection_state);
+ UA_LOG("Wifi connection state = [%d]", connection_state);
+ if (connection_state == WIFI_MANAGER_CONNECTION_STATE_CONNECTED) {
+ pthread_mutex_lock(&thd_mutex);
+ g_wifi_connected = true;
+ pthread_mutex_unlock(&thd_mutex);
+ } else {
+ wifi_manager_set_connection_state_changed_cb(wifi_h, _wifi_connection_state_changed_cb, NULL);
+ }
+ } else {
+ wifi_manager_is_activated(wifi_h, &wifi_state);
+ UA_LOG("Wifi activate state = [%s]", wifi_state?"TRUE":"FALSE");
+ if (wifi_state == false) {
+ wifi_manager_set_device_state_changed_cb(wifi_h, _wifi_state_changed_cb, (void *)wifi_info);
+ rv = wifi_manager_activate(wifi_h, _wifi_activate_cb, NULL);
+ UA_LOG("wifi_manager_activate() return=[%s]", __test_convert_error_to_string((wifi_manager_error_e)rv));
+ } else {
+ wifi_manager_scan(wifi_h, _wifi_scan_finished_cb, (void *)wifi_info);
+ }
+ }
+#endif
} else {
wifi_manager_connection_state_e connection_state;
wifi_manager_get_connection_state(wifi_h, &connection_state);