Add to check valid server_name 07/138007/3 accepted/tizen/4.0/unified/20170816.011044 accepted/tizen/4.0/unified/20170816.014558 accepted/tizen/4.0/unified/20170828.224011 accepted/tizen/unified/20170712.165003 submit/tizen/20170711.075158 submit/tizen_4.0/20170811.094300 submit/tizen_4.0/20170814.115522 submit/tizen_4.0/20170828.100002 submit/tizen_4.0_unified/20170814.115522
authorJiyong Min <jiyong.min@samsung.com>
Mon, 10 Jul 2017 23:35:40 +0000 (08:35 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Tue, 11 Jul 2017 04:00:35 +0000 (13:00 +0900)
 - If deactivated server_name is used in client applications and it is not null,
  getting apis returned database error and sending apis did not return error.
  It can make a mistake for developers.
  So it is needed to check whether server is activated.

Change-Id: I2c7aa60d534ef6ecec5a33708dfd6305fa9b7501
Signed-off-by: Jiyong Min <jiyong.min@samsung.com>
packaging/capi-media-controller.spec
src/media_controller_client.c

index 4767cc5140e4e47a3355c3cef7ca39a0d0df47ee..185fc0f302dabe18c61b477f0a31bd6aa78fa2e1 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-controller
 Summary:    A media controller library in Tizen Native API
-Version:    0.1.41
+Version:    0.1.42
 Release:    1
 Group:      Multimedia/API
 License:    Apache-2.0
index d5f1f46719da8018e6226ee319ef48fc48939d70..057090f8ef0dc797564f39a23bbc204a9eada67f 100755 (executable)
@@ -872,11 +872,17 @@ int mc_client_get_server_playback_info(mc_client_h client, const char *server_na
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
+       bool exist_server = FALSE;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(server_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
        mc_retvm_if(playback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "playback Handle is NULL");
 
+       ret = mc_db_check_server_table_exist(mc_client->db_handle, server_name, &exist_server);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
+       /* TODO: Change error to new type(ex. SERVER_NOT_ACTIVATED or SERVER_NOT_FOUND) */
+       mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
+
        ret = mc_db_get_playback_info(mc_client->db_handle, server_name, playback);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail mc_db_get_playback_info [%d]", ret);
 
@@ -887,11 +893,16 @@ int mc_client_get_server_metadata(mc_client_h client, const char *server_name, m
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
+       bool exist_server = FALSE;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(server_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
        mc_retvm_if(metadata == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "metadata Handle is NULL");
 
+       ret = mc_db_check_server_table_exist(mc_client->db_handle, server_name, &exist_server);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
+       mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
+
        ret = mc_db_get_metadata_info(mc_client->db_handle, server_name, metadata);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail mc_db_get_metadata_info [%d]", ret);
 
@@ -902,11 +913,16 @@ int mc_client_get_server_shuffle_mode(mc_client_h client, const char *server_nam
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
+       bool exist_server = FALSE;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(server_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
        mc_retvm_if(mode == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "mode is NULL");
 
+       ret = mc_db_check_server_table_exist(mc_client->db_handle, server_name, &exist_server);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
+       mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
+
        ret = mc_db_get_shuffle_mode(mc_client->db_handle, server_name, mode);
 
        return ret;
@@ -916,11 +932,16 @@ int mc_client_get_server_repeat_mode(mc_client_h client, const char *server_name
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
+       bool exist_server = FALSE;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(server_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
        mc_retvm_if(mode == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "mode is NULL");
 
+       ret = mc_db_check_server_table_exist(mc_client->db_handle, server_name, &exist_server);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
+       mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
+
        ret = mc_db_get_repeat_mode(mc_client->db_handle, server_name, mode);
 
        return ret;
@@ -944,20 +965,21 @@ int mc_client_send_playback_state_command(mc_client_h client, const char *server
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        char *message = NULL;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
+       bool exist_server = FALSE;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(server_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
        mc_retvm_if(((state < MC_PLAYBACK_STATE_PLAYING) || (state > MC_PLAYBACK_STATE_REWIND)), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "state is invalid");
 
-       message = g_strdup_printf("%s%s%d", mc_client->client_name, MC_STRING_DELIMITER, state);
-       mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
+       ret = mc_db_check_server_table_exist(mc_client->db_handle, server_name, &exist_server);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
+       mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
 
        ret = mc_util_set_command_availabe(mc_client->client_name, MC_COMMAND_PLAYBACKSTATE, NULL);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
-               mc_error("Error mc_util_set_command_availabe [%d]", ret);
-               MC_SAFE_G_FREE(message);
-               return ret;
-       }
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_util_set_command_availabe [%d]", ret);
+
+       message = g_strdup_printf("%s%s%d", mc_client->client_name, MC_STRING_DELIMITER, state);
+       mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
 
        char *interface_name = mc_util_get_interface_name(MC_SERVER, server_name);
        ret = mc_ipc_send_message(mc_client->dconn, NULL, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_STATE_CMD, message, 0);
@@ -977,10 +999,15 @@ int mc_client_send_custom_command(mc_client_h client, const char *server_name, c
        int size_r = 0;
        bundle_raw *raw_data = NULL;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
+       bool exist_server = FALSE;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(server_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
 
+       ret = mc_db_check_server_table_exist(mc_client->db_handle, server_name, &exist_server);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
+       mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
+
        ret = mc_util_set_command_availabe(mc_client->client_name, MC_COMMAND_CUSTOM, command);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("Error mc_util_set_command_availabe [%d]", ret);