From: Cheoleun Moon Date: Tue, 18 Feb 2020 10:07:54 +0000 (+0900) Subject: Return error if cancel is called before the command is not done X-Git-Tag: submit/tizen/20200403.050222~2^2~60^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=045cb8acc91b088319cb35810b0747e53acc5750;p=platform%2Fcore%2Fapi%2Fwifi-aware.git Return error if cancel is called before the command is not done --- diff --git a/src/wifi-aware-private.c b/src/wifi-aware-private.c index db0328c..596cc73 100644 --- a/src/wifi-aware-private.c +++ b/src/wifi-aware-private.c @@ -250,6 +250,13 @@ static void __add_published_callback(wifi_aware_publish_h publish, handle->published_cb_data = user_data; } +static int __is_published(wifi_aware_publish_h publish) +{ + RET_IF(publish == NULL, "wifi_aware_publish_h is NULL"); + wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish; + return handle->publish_id > 0; +} + static void __wifi_aware_publish_set_id(wifi_aware_publish_h publish, unsigned int publish_id) { RET_IF(publish == NULL, "wifi_aware_publish_h is NULL"); @@ -305,6 +312,13 @@ static void __add_subscribed_callback(wifi_aware_subscribe_h subscribe, handle->subscribed_cb_data = user_data; } +static int __is_subscribed(wifi_aware_subscribe_h subscribe) +{ + RET_IF(subscribe == NULL, "wifi_aware_subscribe_h is NULL"); + wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe; + return handle->subscribe_id > 0; +} + static void __wifi_aware_subscribe_invoke_callback(wifi_aware_error_e error, wifi_aware_subscribe_h subscribe) { RET_IF(subscribe == NULL, "wifi_aware_subscribe_h is NULL"); @@ -461,6 +475,7 @@ int _wifi_aware_publish_handle_create(wifi_aware_h wifi_aware, wifi_aware_publis void _wifi_aware_publish_request_set_default_values(wifi_aware_publish_h publish) { wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish; + handle->publish_id = 0; handle->req.ttl = 0; handle->req.publish_type = WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED; //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN); @@ -547,6 +562,13 @@ int _wifi_aware_publish_request(wifi_aware_publish_h publish, int _wifi_aware_cancel_publish_request(wifi_aware_publish_h publish) { + RET_VAL_IF(publish == NULL, 0, "wifi_aware_publish_h is NULL"); + + if (!__is_published(publish)) { + WIFI_AWARE_LOGE("The publish is not done yet"); + return WIFI_AWARE_ERROR_INVALID_OPERATION; + } + return wifi_aware_gdbus_cancel_publish(publish, __get_client_id_with_publish(publish)); } @@ -579,6 +601,7 @@ void _wifi_aware_subscribe_set_default_values( wifi_aware_subscribe_h subscribe) { wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe; + handle->subscribe_id = 0; handle->req.ttl = 0; handle->req.subscribe_type = WIFI_AWARE_SUBSCRIBE_TYPE_PASSIVE; //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN); @@ -642,6 +665,8 @@ unsigned int _wifi_aware_subscribe_get_id(wifi_aware_subscribe_h subscribe) int _wifi_aware_subscribe_request(wifi_aware_subscribe_h subscribe, wifi_aware_subscribed_cb callback, void *user_data) { + RET_VAL_IF(subscribe == NULL, 0, "wifi_aware_subscribe_h is NULL"); + __add_subscribed_callback(subscribe, callback, user_data); return wifi_aware_gdbus_subscribe(subscribe, @@ -651,6 +676,13 @@ int _wifi_aware_subscribe_request(wifi_aware_subscribe_h subscribe, int _wifi_aware_cancel_subscribe_request(wifi_aware_subscribe_h subscribe) { + RET_VAL_IF(subscribe == NULL, 0, "wifi_aware_subscribe_h is NULL"); + + if (!__is_subscribed(subscribe)) { + WIFI_AWARE_LOGE("The subscribe is not done yet"); + return WIFI_AWARE_ERROR_INVALID_OPERATION; + } + return wifi_aware_gdbus_cancel_subscribe(subscribe, __get_client_id_with_subscribe(subscribe)); } @@ -658,6 +690,8 @@ int _wifi_aware_cancel_subscribe_request(wifi_aware_subscribe_h subscribe) int _wifi_aware_update_subscribe_request(wifi_aware_subscribe_h subscribe, wifi_aware_subscribed_cb callback, void *user_data) { + RET_VAL_IF(subscribe == NULL, 0, "wifi_aware_subscribe_h is NULL"); + __add_subscribed_callback(subscribe, callback, user_data); return wifi_aware_gdbus_update_subscribe(subscribe,