From a89730b8379f609a68b25268ca385d4071d1ba56 Mon Sep 17 00:00:00 2001 From: "nshero.lee" Date: Thu, 21 Dec 2017 10:11:09 +0900 Subject: [PATCH] Update Signed-off-by: nshero.lee --- src/adaptor.c | 19 +++--- src/setup_network.c | 149 ++++++++++++++++++++++++++------------------ 2 files changed, 99 insertions(+), 69 deletions(-) diff --git a/src/adaptor.c b/src/adaptor.c index 2c14548..400c1fa 100644 --- a/src/adaptor.c +++ b/src/adaptor.c @@ -238,6 +238,7 @@ static int __set_network(sa_network_s *network) // 1. check network state // 2. if it is connected, read detail info ret = sa_network_get_state(&conn_state, &conn_type); + if (ret == SA_ERROR_NONE) { _D("Device Network : T[%s] S[%s]", __print_connection_type(conn_type), __print_connection_state(conn_state)); if (conn_state == SA_NETWORK_STATE_CONNECTED) { @@ -273,6 +274,7 @@ static int __set_network(sa_network_s *network) ret = sa_network_set_connection(network); } } + return ret; } @@ -354,22 +356,23 @@ int main(int argc, char *argv[]) sa_error_e ret = SA_ERROR_NONE; _D("start setup-adaptor"); - //Check Config file if (SA_FILE_STATE_EXIST == sa_inputfile_get_config_state()) { - // Register callback to receive file change event + // Waiting for booting sleep(10); + // Register callback to receive file change event ret = sa_inputfile_register_cb(__monitor_file_state_cb); - if (ret != SA_ERROR_NONE) { + if (ret == SA_ERROR_NONE) { + // Keep checking callback from input + while(1) { + sleep(1); + } + } else { _E("__init_event_listener error [%d]", ret); - } + } } else { _D("config file is not existed, setup-adaptor exit"); } - while(1) { - sleep(1); - } - return 0; } \ No newline at end of file diff --git a/src/setup_network.c b/src/setup_network.c index 06ee7cf..1ee508c 100644 --- a/src/setup_network.c +++ b/src/setup_network.c @@ -346,85 +346,112 @@ static int __start_setup_network(void) return 0; } +static int __init_wifi_handle(wifi_manager_h *wifi) { + + int err_code = 0; + + err_code = wifi_manager_initialize(&wifi); + if (err_code == WIFI_MANAGER_ERROR_NONE || + err_code == WIFI_MANAGER_ERROR_ALREADY_INITIALIZED) { + _D(" Create handle for wiri"); + } else { + _E("create wifi handle error [%s]", __print_wifi_error(err_code)); + return -1; + } + + return 0; +} + static int __connect_wifi(sa_wifi_s *info) { int rv = 0; bool state = false; sa_error_e ret = SA_ERROR_UNKNOWN; sa_network_state_e file_state = NETWORK_WIFI_STATE_DEACTIVATED; + wifi_manager_h wifi = NULL; if (info == NULL) { return -1; } - // if wifi is already connected, it would be diconnected - __set_setup_network_wifi_state(NETWORK_WIFI_STATE_DEACTIVATED); - - while(NETWORK_WIFI_STATE_CONNECTED != __get_setup_network_wifi_state()) { + if (!__init_wifi_handle(&wifi)) { + // if wifi is already connected, it would be diconnected + __set_setup_network_wifi_state(NETWORK_WIFI_STATE_DEACTIVATED); - _D("Enter while [%d]", __get_setup_network_wifi_state()); + while(NETWORK_WIFI_STATE_CONNECTED != __get_setup_network_wifi_state()) { - // check wifi state whether it is activated or not - switch(__get_setup_network_wifi_state()) { - case NETWORK_WIFI_STATE_DEACTIVATED: - _D("deativated state"); - rv = wifi_manager_is_activated(wifi_handle, &state); - if (rv != WIFI_MANAGER_ERROR_NONE) { - _D("Fail to get Wi-Fi device state [%s]", __print_wifi_error(rv)); - ret = SA_ERROR_UNKNOWN; - break; - } - - if (state == FALSE) { - _D("ativating state"); - rv = wifi_manager_activate(wifi_handle, __activated_callback, NULL); - __set_setup_network_wifi_state(NETWORK_WIFI_STATE_ACTIVATING); - if (rv == WIFI_MANAGER_ERROR_NONE || - rv == CONNECTION_ERROR_NOW_IN_PROGRESS || - rv == WIFI_MANAGER_ERROR_ALREADY_EXISTS) { - ; + _D("Enter while [%d]", __get_setup_network_wifi_state()); + // check wifi state whether it is activated or not + switch(__get_setup_network_wifi_state()) { + case NETWORK_WIFI_STATE_DEACTIVATED: + _D("deativated state"); + rv = wifi_manager_is_activated(wifi, &state); + if (rv != WIFI_MANAGER_ERROR_NONE) { + _D("Fail to get Wi-Fi device state [%s]", __print_wifi_error(rv)); + ret = SA_ERROR_UNKNOWN; + break; + } + + if (state == FALSE) { + _D("ativating state"); + rv = wifi_manager_activate(wifi, __activated_callback, NULL); + __set_setup_network_wifi_state(NETWORK_WIFI_STATE_ACTIVATING); + if (rv == WIFI_MANAGER_ERROR_NONE || + rv == CONNECTION_ERROR_NOW_IN_PROGRESS || + rv == WIFI_MANAGER_ERROR_ALREADY_EXISTS) { + ; + } else { + _D("First activate Wi-Fi device [%s]", __print_wifi_error(rv)); + break; + } + rv = wifi_manager_activate(wifi, __activated_callback, NULL); + if (rv == WIFI_MANAGER_ERROR_NONE || + rv == CONNECTION_ERROR_NOW_IN_PROGRESS || + rv == WIFI_MANAGER_ERROR_ALREADY_EXISTS) { + ; + } else { + _D("First activate Wi-Fi device [%s]", __print_wifi_error(rv)); + break; + } } else { - _D("First activate Wi-Fi device [%s]", __print_wifi_error(rv)); + _D("Already Activated"); + __set_setup_network_wifi_state(NETWORK_WIFI_STATE_ACTIVATED); + } + break; + case NETWORK_WIFI_STATE_ACTIVATED: + _D("ativated state"); + + rv = wifi_manager_scan(wifi, __scan_request_callback, NULL); + __set_setup_network_wifi_state(NETWORK_WIFI_STATE_SCANNING); + _D("scanning state"); + if (rv != WIFI_MANAGER_ERROR_NONE) { + _D("Scan request failed [%s]", __print_wifi_error(rv)); + ret = SA_ERROR_UNKNOWN; break; + } else { + _D("scan request succeeded"); } - } else { - _D("Already Activated"); - __set_setup_network_wifi_state(NETWORK_WIFI_STATE_ACTIVATED); - } - break; - case NETWORK_WIFI_STATE_ACTIVATED: - _D("ativated state"); - - rv = wifi_manager_scan(wifi_handle, __scan_request_callback, NULL); - __set_setup_network_wifi_state(NETWORK_WIFI_STATE_SCANNING); - _D("scanning state"); - if (rv != WIFI_MANAGER_ERROR_NONE) { - _D("Scan request failed [%s]", __print_wifi_error(rv)); - ret = SA_ERROR_UNKNOWN; break; - } else { - _D("scan request succeeded"); - } - break; - case NETWORK_WIFI_STATE_SCANNED: - // connecting - _D("scanned state"); - __set_setup_network_wifi_state(NETWORK_WIFI_STATE_CONNECTING); - __set_setup_network_wifi_password(info->password); - _D("connecting state"); - rv = wifi_manager_foreach_found_ap(wifi_handle, __found_connect_ap_callback, info->ssid); - - if (rv != WIFI_MANAGER_ERROR_NONE) { - _D("Fail to connect (can't get AP list) [%s]", __print_wifi_error(rv)); - ret = SA_ERROR_UNKNOWN; + case NETWORK_WIFI_STATE_SCANNED: + // connecting + _D("scanned state"); + __set_setup_network_wifi_state(NETWORK_WIFI_STATE_CONNECTING); + __set_setup_network_wifi_password(info->password); + _D("connecting state"); + rv = wifi_manager_foreach_found_ap(wifi, __found_connect_ap_callback, info->ssid); + + if (rv != WIFI_MANAGER_ERROR_NONE) { + _D("Fail to connect (can't get AP list) [%s]", __print_wifi_error(rv)); + ret = SA_ERROR_UNKNOWN; + break; + } break; + default: + break; } - break; - default: - break; - } - sleep(1); + sleep(1); + } } return ret; @@ -553,11 +580,11 @@ sa_error_e sa_network_set_connection(sa_network_s *info) return SA_ERROR_INVALID_PARAMETER; } - if (!__get_setup_network_initialized()) { + /*if (!__get_setup_network_initialized()) { if(__start_setup_network()) { _E("not ready to use network api due to async reply from network api"); } - } + }*/ // first priority is wifi if (info->wifi != NULL) { -- 2.34.1