Update
authornshero.lee <nshero.lee@samsung.com>
Thu, 21 Dec 2017 01:11:09 +0000 (10:11 +0900)
committernshero.lee <nshero.lee@samsung.com>
Thu, 21 Dec 2017 01:11:09 +0000 (10:11 +0900)
Signed-off-by: nshero.lee <nshero.lee@samsung.com>
src/adaptor.c
src/setup_network.c

index 2c145489887931a21668d4b0ab04e23b99d89326..400c1fadb21fa448efc909fca7af1aa9727378bd 100644 (file)
@@ -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
index 06ee7cf97dbba99f41d081b05f26c884d1b3f5ff..1ee508cb9c8056eb387df4c0ccafbac2251255ae 100644 (file)
@@ -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) {