Fix logic for parsing wifi_direct state callback 78/261578/1
authorNishant Chaprana <n.chaprana@samsung.com>
Wed, 21 Jul 2021 11:44:29 +0000 (17:14 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Wed, 21 Jul 2021 11:49:34 +0000 (17:19 +0530)
1. Return ongoing dbus call when error occurs in _wifi_direct_state_cb
2. Check for wifi_direct state post checking error_code
3. unregister callback and deinitialize wifi-direct at callback entry

Change-Id: I43e7a68b0587579531c5f9fab030385054dba897
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
src/mobileap_wifi.c

index 7fec499..82d2770 100755 (executable)
@@ -195,11 +195,6 @@ static void _wifi_direct_state_cb(int error_code, wifi_direct_device_state_e sta
        int ret = 0;
        void *obj = user_data;
 
-       if (state != WIFI_DIRECT_DEVICE_STATE_DEACTIVATED) {
-               ERR("Unknown state : %d\n", state);
-               return;
-       }
-
        wifi_direct_unset_device_state_changed_cb();
        wifi_direct_deinitialize();
 
@@ -208,6 +203,13 @@ static void _wifi_direct_state_cb(int error_code, wifi_direct_device_state_e sta
                ret = MOBILE_AP_ERROR_INTERNAL;
                goto DONE;
        }
+
+       if (state != WIFI_DIRECT_DEVICE_STATE_DEACTIVATED) {
+               ERR("Unknown state : %d\n", state);
+               ret = MOBILE_AP_ERROR_INTERNAL;
+               goto DONE;
+       }
+
        DBG("Wi-Fi direct is turned off\n");
 
        wifi_manager_is_activated(wifi_manager, &wifi_state);