modules/setting/wifi-direct:Fix. Initialization added. 65/67165/2
authorRadoslaw Czerski <r.czerski@samsung.com>
Mon, 25 Apr 2016 14:54:55 +0000 (16:54 +0200)
committerRadoslaw Czerski <r.czerski@samsung.com>
Mon, 25 Apr 2016 14:54:55 +0000 (16:54 +0200)
Change-Id: I4da037d29a29b783e9c27d049cb1f57a953dd45c
Signed-off-by: Radoslaw Czerski <r.czerski@samsung.com>
src/modules/setting/wifi-direct.c

index 00336fea7c0cc4e625ce2343b8071cc74f2dd7d6..3deb1efc2cb2efecd3ae0b33b4df499298d8667b 100644 (file)
@@ -179,8 +179,16 @@ static int register_wifi_direct_module(void *data)
 
        set_app_state(data);
 
+       ret = wifi_direct_initialize();
+       retvm_if(ret != WIFI_DIRECT_ERROR_NONE, FAIL,
+                       "wifi_direct_initialize failed[%d]: %s", ret, get_error_message(ret));
+
        ret = wifi_direct_set_connection_state_changed_cb(indicator_wifi_direct_change_cb, data);
-       retv_if(ret != WIFI_DIRECT_ERROR_NONE, FAIL);
+       if(ret != WIFI_DIRECT_ERROR_NONE) {
+               _E("wifi_direct_set_connection_state_changed_cb failed[%d]: %s", ret, get_error_message(ret));
+               wifi_direct_deinitialize();
+               return FAIL;
+       }
 
        // Second parameter is not used. This is made to avoid creating two almost same functions
        indicator_wifi_direct_change_cb(WIFI_DIRECT_ERROR_NONE, WIFI_DIRECT_DISCONNECTION_RSP, NULL, data);
@@ -193,7 +201,15 @@ static int unregister_wifi_direct_module(void)
        int ret;
 
        ret = wifi_direct_unset_connection_state_changed_cb();
-       retv_if(ret != WIFI_DIRECT_ERROR_NONE, FAIL);
+       if (ret != WIFI_DIRECT_ERROR_NONE) {
+               _E("wifi_direct_unset_connection_state_changed_cb failed[%d]: %s", ret, get_error_message(ret));
+               wifi_direct_deinitialize();
+               return FAIL;
+       }
+
+       ret = wifi_direct_deinitialize();
+       retvm_if(ret != WIFI_DIRECT_ERROR_NONE, FAIL,
+                       "wifi_direct_deinitialize failed[%d]: %s", ret, get_error_message(ret));
 
        return ret;
 }