Add preconditions 58/188658/1
authorJihoon Jung <jh8801.jung@samsung.com>
Fri, 7 Sep 2018 06:29:14 +0000 (15:29 +0900)
committerJihoon Jung <jh8801.jung@samsung.com>
Fri, 7 Sep 2018 06:29:14 +0000 (15:29 +0900)
Change-Id: Ic8765b2eaaddf6cd3f0176259f3d9acaa7defa0b
Signed-off-by: Jihoon Jung <jh8801.jung@samsung.com>
src/mdg.c

index 735f1a0..3fccf4c 100755 (executable)
--- a/src/mdg.c
+++ b/src/mdg.c
@@ -347,6 +347,8 @@ EXPORT_API int mdg_device_send_data(mdg_h handle,
        cond_expr_ret(len <= 0, MDG_ERROR_INVALID_PARAMETER);
        CHECK_HANDLE_IS_VALID(handle);
 
+       cond_expr_ret(dev->type == MDG_DEVICE_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_DEVICE);
+
        buf = g_try_malloc0(len + 1);
        if (NULL == buf) {
                /* LCOV_EXCL_START */
@@ -400,6 +402,8 @@ EXPORT_API int mdg_device_send_file(mdg_h handle, mdg_device_h device,
        mdg_check_null_ret_error("dev", dev, MDG_ERROR_INVALID_PARAMETER);
        mdg_check_null_ret_error("file_path", file_path, MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(dev->type == MDG_DEVICE_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_DEVICE);
+
        mdg_device_h cloned_device = NULL;
        mdg_device_info_clone(&cloned_device, device);
 
@@ -508,6 +512,8 @@ EXPORT_API int mdg_group_delete(mdg_h handle, mdg_group_h group)
        mdg_group_s *grp = (mdg_group_s *)group;
        mdg_check_null_ret_error("grp", grp, MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(grp->type == MDG_GROUP_TYPE_REMOTE, MDG_ERROR_NOT_PROPER_GROUP);
+
        /* create group to daemon using gdbus */
        group_call_delete_sync(_handle->group_proxy, grp->group_name, &ret, NULL, &error);
 
@@ -531,6 +537,8 @@ EXPORT_API int mdg_group_foreach_device(mdg_h handle, mdg_group_h group,
        mdg_group_s *grp = (mdg_group_s *)group;
        mdg_check_null_ret_error("grp", grp, MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(grp->type == MDG_GROUP_TYPE_REMOTE, MDG_ERROR_NOT_PROPER_GROUP);
+
        group_call_foreach_device_sync(_handle->group_proxy, grp->group_name, &ret, &va, NULL, &error);
        count = g_variant_n_children(va);
 
@@ -577,6 +585,10 @@ EXPORT_API int mdg_group_invite_device(mdg_h handle,
        mdg_device_s *dev = (mdg_device_s *)device;
        mdg_check_null_ret_error("dev", dev, MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(grp->type == MDG_GROUP_TYPE_REMOTE, MDG_ERROR_NOT_PROPER_GROUP);
+       cond_expr_ret(dev->type == MDG_DEVICE_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_DEVICE);
+       cond_expr_ret(dev->is_invited == true, MDG_ERROR_NOT_PROPER_DEVICE);
+
        mdg_device_h cloned_device = NULL;
        mdg_device_info_clone(&cloned_device, device);
 
@@ -611,6 +623,10 @@ EXPORT_API int mdg_group_eject_device(mdg_h handle,
        mdg_group_s *grp = (mdg_group_s *)group;
        mdg_check_null_ret_error("grp", grp, MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(grp->type == MDG_GROUP_TYPE_REMOTE, MDG_ERROR_NOT_PROPER_GROUP);
+       cond_expr_ret(dev->type == MDG_DEVICE_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_DEVICE);
+       cond_expr_ret(dev->is_invited == false, MDG_ERROR_NOT_PROPER_DEVICE);
+
        _handle->device_eject_finish_cb.finish_cb = finish_cb;
        _handle->device_eject_finish_cb.user_data = user_data;
 
@@ -945,6 +961,8 @@ EXPORT_API int mdg_request_create_group(mdg_h handle,
        mdg_check_null_ret_error("group_name", group_name,
                MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(dev->type == MDG_DEVICE_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_DEVICE);
+
        _DBG("Device id : %s", dev->device_id);
 
        group_call_request_create_group_sync(_handle->group_proxy, dev->device_id,
@@ -975,6 +993,8 @@ EXPORT_API int mdg_request_invite_device(mdg_h handle,
        mdg_device_s *dev = (mdg_device_s *)device;
        mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(grp->type == MDG_GROUP_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_GROUP);
+
        _DBG("%s", grp->device_id);
        _DBG("%s", grp->group_name);
        _DBG("%s", dev->device_id);
@@ -1012,6 +1032,8 @@ EXPORT_API int mdg_request_eject_device(mdg_h handle,
        mdg_device_s *dev = (mdg_device_s *)device;
        mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER);
 
+       cond_expr_ret(grp->type == MDG_GROUP_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_GROUP);
+
        _DBG("%s", grp->device_id);
        _DBG("%s", grp->group_name);
        _DBG("%s", dev->device_id);
@@ -1041,6 +1063,9 @@ EXPORT_API int mdg_request_channel_list(mdg_h handle, mdg_device_h device,
 
        mdg_device_s *dev = (mdg_device_s *)device;
        mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER);
+
+       cond_expr_ret(dev->type == MDG_DEVICE_TYPE_LOCAL, MDG_ERROR_NOT_PROPER_DEVICE);
+
        _handle->request_channel_list_finish_cb.finish_cb = finish_cb;
        _handle->request_channel_list_finish_cb.user_data = user_data;