Fixed TPLDOCKER-381 defect regarding invalid ssid connection
authorhwajeong.son <hwajeong.son@samsung.com>
Mon, 1 Oct 2018 10:48:53 +0000 (19:48 +0900)
committerhwajeong.son <hwajeong.son@samsung.com>
Mon, 1 Oct 2018 10:48:53 +0000 (19:48 +0900)
If setup-adaptor tries to connection with invalid ssid,
it will not be completed properly.

1) wifi ssid : docker, password : dockerdocker111 => Okay (invaild password case)
2) wifi ssid : docker11, password : dockerdocker => Fail (invalid ssid case)

setup-adaptor uses __wifi_scan_finished_cb function to connect.
wifi_manager_foreach_found_ap will be worked according to __wifi_connect_ap_cb() return
If all of ssids are searched and compared, it will go down and has to meet
__wifi_exit_loop() function to be completed properly.

src/setup_network.c

index 37d1d71c160bc7c9978414d1cef6a96f063da6d5..6199fbc3cec3eee19455a5fb1d860f5e98f61b58 100755 (executable)
@@ -269,11 +269,18 @@ static bool __wifi_connect_ap_cb(wifi_manager_ap_h ap, void *user_data)
 
 static void __wifi_scan_finished_cb(wifi_manager_error_e result, void *user_data)
 {
+       int rv = 0;
        _wifi_data_s *wifi_data = (_wifi_data_s *) user_data;
 
        _D("__wifi_scan_finished_cb() result=[%s]", __print_wifi_error(result));
 
-       wifi_manager_foreach_found_ap(wifi_data->wifi_h, __wifi_connect_ap_cb, wifi_data);
+       rv = wifi_manager_foreach_found_ap(wifi_data->wifi_h, __wifi_connect_ap_cb, wifi_data);
+
+       if (rv != WIFI_MANAGER_ERROR_NONE)
+               _E("Fail to connect (can't get AP list) [%s]", __print_wifi_error(rv));
+
+       _D("Connection step finished");
+       __wifi_exit_loop(wifi_data);
 }
 
 static void __wifi_state_changed_cb(wifi_manager_device_state_e state, void *user_data)