media_controller_util refactoring 78/312578/2 accepted/tizen_unified_toolchain accepted/tizen_unified_x_asan accepted/tizen/unified/20240614.084852 accepted/tizen/unified/dev/20240620.004048 accepted/tizen/unified/toolchain/20240624.121419 accepted/tizen/unified/x/20240614.160418 accepted/tizen/unified/x/asan/20240625.092247
authorMinje Ahn <minje.ahn@samsung.com>
Wed, 12 Jun 2024 01:28:15 +0000 (10:28 +0900)
committerHaejeong kim <backto.kim@samsung.com>
Wed, 12 Jun 2024 07:08:50 +0000 (07:08 +0000)
1. Checked only an app name not a full interface name.
2. Changed the substitution pattern from 'APPID_SEP' to '__'.
3. Used g_autofree.
4. Used g_uuid_string_random() instead. (Remove uuid dependency)

Change-Id: I54adcf7461dbe25482fedf2b442a1a8fb8498a27
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
CMakeLists.txt
include/media_controller_private.h
packaging/capi-media-controller.spec
src/media_controller_client.c
src/media_controller_ipc.c
src/media_controller_server.c
src/media_controller_util.c

index c4ce5e0..9f71766 100644 (file)
@@ -1,4 +1,4 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6...2.8.12)
 
 SET(Services
         "application"
@@ -26,7 +26,7 @@ SET(submodule "controller")
 SET(fw_name "${project_prefix}-${service}-${submodule}")
 
 # for package file
-SET(dependents "capi-base-common glib-2.0 gio-2.0 dlog sqlite3 aul bundle libtzplatform-config cynara-client cynara-session cynara-creds-socket uuid vconf")
+SET(dependents "capi-base-common glib-2.0 gio-2.0 dlog sqlite3 aul bundle libtzplatform-config cynara-client cynara-session cynara-creds-socket vconf")
 SET(pc_dependents "capi-base-common bundle")
 
 PROJECT(${fw_name})
index 851ee45..6e96628 100644 (file)
@@ -397,11 +397,10 @@ typedef struct {
 
 /* util */
 int _mc_util_get_own_name(char **name);
-char* _mc_util_get_interface_name(const char *type, const char *name);
-int _mc_util_make_filter_interface_name(const char *prefix, const char *filter, char **interface_name);
+char * _mc_util_get_interface_name(const char *type, const char *name);
+char * _mc_util_make_filter_interface_name(const char *filter);
 int _mc_util_set_command_available(mc_priv_type_e priv_type, const char *name, const char *command_type, const char *command);
 int _mc_util_get_command_available(mc_priv_type_e priv_type, const char *name, const char *command_type, const char *command);
-char *_mc_util_generate_uuid(void);
 int _mc_util_bundle_to_string(bundle *bundle_data, char **str_data);
 gboolean _mc_util_is_valid_playback_action(mc_playback_action_e action);
 gboolean _mc_util_is_valid_display_mode(mc_display_mode_e mode);
index 986d972..6f95938 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-controller
 Summary:    A media controller library in Tizen Native API
-Version:    1.0.3
+Version:    1.0.4
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
@@ -20,7 +20,6 @@ BuildRequires:  pkgconfig(libsystemd)
 BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgconfig(cynara-client)
 BuildRequires:  pkgconfig(cynara-session)
-BuildRequires:  pkgconfig(uuid)
 BuildRequires:  pkgconfig(capi-appfw-app-control)
 BuildRequires:  pkgconfig(vconf)
 
index 9259c74..63870f0 100644 (file)
@@ -447,19 +447,15 @@ static int __mc_client_destroy(media_controller_client_s *mc_client)
 static int __mc_client_register_filter_listener(media_controller_client_s *mc_client, GList **filter_list, const char *server_name, const char *signal_name, mc_signal_received_cb callback, void *user_data)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *filter_interface_name = NULL;
+       g_autofree gchar *filter = _mc_util_make_filter_interface_name(server_name);
 
        mc_debug("signal = [%s]", signal_name);
+       mc_retvm_if(!filter, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Fail _mc_util_make_filter_interface_name");
 
-       ret = _mc_util_make_filter_interface_name(MC_DBUS_UPDATE_INTERFACE, server_name, &filter_interface_name);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Fail _mc_util_make_filter_interface_name");
-
-       ret = _mc_ipc_register_listener(&mc_client->listeners, mc_client->dconn, filter_interface_name, signal_name, callback, user_data);
+       ret = _mc_ipc_register_listener(&mc_client->listeners, mc_client->dconn, filter, signal_name, callback, user_data);
        if (ret == MEDIA_CONTROLLER_ERROR_NONE)
                *filter_list = g_list_append(*filter_list, g_strdup(server_name));
 
-       g_free(filter_interface_name);
-
        return ret;
 }
 
@@ -516,7 +512,7 @@ static int __mc_client_send_command(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;
-       char *interface_name = NULL;
+       g_autofree gchar *interface_name = NULL;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(command_type), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid command_type");
@@ -533,8 +529,6 @@ static int __mc_client_send_command(mc_client_h client, const char *server_name,
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error _mc_ipc_send_message [%d]", ret);
 
-       g_free(interface_name);
-
        return ret;
 }
 
@@ -567,9 +561,8 @@ int mc_client_create(mc_client_h *client)
 
 static int __mc_client_set_updated_cb(mc_client_h client, mc_client_receive_event_e event, void *callback, void *user_data)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
-       char *interface_name = NULL;
+       g_autofree gchar *interface_name = NULL;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL");
@@ -590,19 +583,15 @@ static int __mc_client_set_updated_cb(mc_client_h client, mc_client_receive_even
                interface_name = g_strdup(MC_DBUS_UPDATE_INTERFACE);
        }
 
-       ret = _mc_ipc_register_listener(&mc_client->listeners, mc_client->dconn, interface_name, cb_event[event].signal_name,
-                                       cb_event[event].cb_func, (void *)&(mc_client->updated_cb[event]));
-
-       g_free(interface_name);
-
-       return ret;
+       return _mc_ipc_register_listener(&mc_client->listeners, mc_client->dconn, interface_name, cb_event[event].signal_name,
+               cb_event[event].cb_func, (void *)&(mc_client->updated_cb[event]));
 }
 
 static int __mc_client_unset_updated_cb(mc_client_h client, mc_client_receive_event_e event)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
-       char *interface_name = NULL;
+       g_autofree gchar *interface_name = NULL;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(((event < MC_CLIENT_EVENT_SERVER_STATE) || (event >= MC_CLIENT_EVENT_MAX)) , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid event [%d]", event);
@@ -611,8 +600,6 @@ static int __mc_client_unset_updated_cb(mc_client_h client, mc_client_receive_ev
                interface_name = _mc_util_get_interface_name(MC_CLIENT, mc_client->client_name);
 
                ret = _mc_ipc_unregister_listener(&mc_client->listeners, interface_name, cb_event[event].signal_name);
-
-               g_free(interface_name);
        } else {
                ret = _mc_ipc_unregister_listener(&mc_client->listeners, MC_DBUS_UPDATE_INTERFACE, cb_event[event].signal_name);
 
@@ -1400,8 +1387,9 @@ int mc_client_send_search_cmd(mc_client_h client, const char *server_name, mc_se
 int mc_client_send_event_reply(mc_client_h client, const char *server_name, const char *request_id, int result_code, bundle *data)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *message = NULL;
-       char *bundle_str = NULL;
+       g_autofree gchar *message = NULL;
+       g_autofree gchar *bundle_str = NULL;
+       g_autofree gchar *interface_name = NULL;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
@@ -1412,17 +1400,13 @@ int mc_client_send_event_reply(mc_client_h client, const char *server_name, cons
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error when make string from bundle");
 
        message = g_strdup_printf("%s%s%d%s%s", mc_client->client_name, MC_STRING_DELIMITER, result_code, MC_STRING_DELIMITER, bundle_str);
-       g_free(bundle_str);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Error when making message");
 
-       char *interface_name = _mc_util_get_interface_name(MC_SERVER, server_name);
+       interface_name = _mc_util_get_interface_name(MC_SERVER, server_name);
        ret = _mc_ipc_send_reply(mc_client->dconn, NULL, interface_name, MC_DBUS_SIGNAL_NAME_EVENT_REPLY, message, request_id);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error _mc_ipc_send_message [%d]", ret);
 
-       g_free(message);
-       g_free(interface_name);
-
        return ret;
 }
 
index a974a01..e9e150c 100644 (file)
@@ -278,32 +278,29 @@ int _mc_ipc_unregister_all_listener(GList **listener_list)
 
 int _mc_ipc_unregister_filter_listener(GList **listener_list, const char *server_name, const char *signal_name)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *filter_interface = NULL;
+       g_autofree gchar *filter = NULL;
 
        mc_retvm_if(!listener_list, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "listener_list is NULL");
        mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "server_name is NULL");
        mc_retvm_if(!signal_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "signal_name is NULL");
 
-       ret = _mc_util_make_filter_interface_name(MC_DBUS_UPDATE_INTERFACE, server_name, &filter_interface);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Fail _mc_util_make_filter_interface_name");
-
-       ret = _mc_ipc_unregister_listener(listener_list, filter_interface, signal_name);
-
-       g_free(filter_interface);
+       filter = _mc_util_make_filter_interface_name(server_name);
+       mc_retvm_if(!filter, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Fail _mc_util_make_filter_interface_name");
 
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return _mc_ipc_unregister_listener(listener_list, filter, signal_name);
 }
 
 int _mc_ipc_send_message(GDBusConnection *connection, const char *dbus_name, const char *interface_name, const char *signal_name, const char *message, char **request_id)
 {
-       const char *req_id = DEFAULT_REQ_ID;
+       g_autofree gchar *req_id = NULL;
 
-       if (request_id != NULL) {
-               req_id = _mc_util_generate_uuid();
+       if (request_id) {
+               req_id = g_uuid_string_random();
                *request_id = g_strdup(req_id);
 
                mc_secure_debug("req_id[%s]", req_id);
+       } else {
+               req_id = g_strdup(DEFAULT_REQ_ID);
        }
 
        return __dbus_send_message(connection, dbus_name, interface_name, signal_name, message, req_id);
index d8c2083..e5cc215 100644 (file)
@@ -556,14 +556,14 @@ static void __server_display_rotation_cb(const char *interface_name, const char
        callback(params[0], request_id, (mc_display_rotation_e)value, receiver->user_data);
 }
 
-static int __mc_server_send_message(media_controller_server_s *mc_server, const char *interface_name, const char *signal_name, const int param1, const int param2, const char* param3)
+static int __mc_server_send_message(media_controller_server_s *mc_server, const char *signal_name, const int param1, const int param2, const char* param3)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *message = NULL;
+       g_autofree gchar *message = NULL;
+       g_autofree gchar *filter = NULL;
 
        mc_retvm_if(!mc_server, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid handle");
        mc_retvm_if(!mc_server->server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
-       mc_retvm_if(!interface_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid interface_name");
        mc_retvm_if(!signal_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid signal_name");
 
        if ((!g_strcmp0(MC_DBUS_SIGNAL_NAME_PLAY_BACK, signal_name))
@@ -581,26 +581,22 @@ static int __mc_server_send_message(media_controller_server_s *mc_server, const
 
        mc_retvm_if(!message, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Invalid message");
 
-       ret = _mc_ipc_send_message(mc_server->dconn, NULL, interface_name, signal_name, message, NULL);
+       ret = _mc_ipc_send_message(mc_server->dconn, NULL, MC_DBUS_UPDATE_INTERFACE, signal_name, message, NULL);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error _mc_ipc_send_message [%d]", ret);
 
-       mc_secure_debug("interface_name[%s] signal_name[%s] message[%s]", interface_name, signal_name, message);
+       mc_secure_debug("signal_name[%s] message[%s]", signal_name, message);
 
        /*Send again for the subscriber which receive filtered msg with server_name*/
-       char *filter_interface_name = NULL;
-       ret = _mc_util_make_filter_interface_name(interface_name, mc_server->server_name, &filter_interface_name);
+       filter = _mc_util_make_filter_interface_name(mc_server->server_name);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("Error _mc_util_make_filter_interface_name [%d]", ret);
        } else {
-               ret = _mc_ipc_send_message(mc_server->dconn, NULL, filter_interface_name, signal_name, message, NULL);
+               ret = _mc_ipc_send_message(mc_server->dconn, NULL, filter, signal_name, message, NULL);
                if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                        mc_error("Error _mc_ipc_send_message [%d]", ret);
        }
 
-       g_free(filter_interface_name);
-       g_free(message);
-
        return ret;
 }
 
@@ -619,7 +615,7 @@ static int __mc_server_send_event(mc_server_h server, const char *client_name, c
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_server_s *mc_server = (media_controller_server_s *)server;
-       char *interface_name = NULL;
+       g_autofree gchar *interface_name = NULL;
 
        mc_retvm_if(!__is_valid_parameter(server, client_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid parameter");
        mc_retvm_if(!MC_STRING_VALID(command_type), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid command_type");
@@ -635,8 +631,6 @@ static int __mc_server_send_event(mc_server_h server, const char *client_name, c
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error _mc_ipc_send_message [%d]", ret);
 
-       g_free(interface_name);
-
        return ret;
 }
 
@@ -738,7 +732,7 @@ int mc_server_update_playback_info(mc_server_h server)
                }
        }
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAY_BACK, 0, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_PLAY_BACK, 0, 0, NULL);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error __mc_server_send_message [%d]", ret);
 
@@ -762,7 +756,7 @@ int mc_server_update_shuffle_mode(mc_server_h server, mc_shuffle_mode_e mode)
        ret = _mc_db_update_server_attribute(mc_server->server_name, MC_DB_CMD_UPDATE_SHUFFLE, mode);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to update shuffle mode");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAYBACK_SHUFFLE, mode, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_PLAYBACK_SHUFFLE, mode, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -781,7 +775,7 @@ int mc_server_update_repeat_mode(mc_server_h server, mc_repeat_mode_e mode)
        ret = _mc_db_update_server_attribute(mc_server->server_name, MC_DB_CMD_UPDATE_REPEAT, mode);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to update repeat mode");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAYBACK_REPEAT, mode, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_PLAYBACK_REPEAT, mode, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -799,7 +793,7 @@ int mc_server_update_subtitles_enabled(mc_server_h server, bool enabled)
        ret = _mc_db_update_server_attribute(mc_server->server_name, MC_DB_CMD_UPDATE_SUBTITLES, enabled);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to update subtitles");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_SUBTITLES, enabled, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_SUBTITLES, enabled, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -818,7 +812,7 @@ int mc_server_update_display_mode(mc_server_h server, mc_display_mode_e mode)
        ret = _mc_db_update_server_attribute(mc_server->server_name, MC_DB_CMD_UPDATE_DISPLAY_MODE, mode);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to update display mode");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_DISPLAY_MODE, mode, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_DISPLAY_MODE, mode, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -836,7 +830,7 @@ int mc_server_update_display_rotation(mc_server_h server, mc_display_rotation_e
        ret = _mc_db_update_server_attribute(mc_server->server_name, MC_DB_CMD_UPDATE_DISPLAY_ROTATION, rotation);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to update display rotation");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_DISPLAY_ROTATION, rotation, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_DISPLAY_ROTATION, rotation, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -854,7 +848,7 @@ int mc_server_update_360_mode_enabled(mc_server_h server, bool enabled)
        ret = _mc_db_update_server_attribute(mc_server->server_name, MC_DB_CMD_UPDATE_360, enabled);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to update 360 mode");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_360, enabled, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_360, enabled, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -883,7 +877,7 @@ int mc_server_update_metadata(mc_server_h server)
                                                                        mc_server->metadata->season, mc_server->metadata->episode, mc_server->metadata->resolution);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to _mc_db_update_whole_metadata");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_METADATA, 0, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_METADATA, 0, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -919,7 +913,7 @@ int mc_server_update_playlist_done(mc_server_h server, mc_playlist_h playlist)
        ret = _mc_playlist_update(MC_PRIV_TYPE_SERVER, mc_server->server_name, playlist);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to _mc_playlist_update");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAYLIST, MC_PLAYLIST_UPDATED, 0, _playlist->playlist_name);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_PLAYLIST, MC_PLAYLIST_UPDATED, 0, _playlist->playlist_name);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -938,7 +932,7 @@ int mc_server_delete_playlist(mc_server_h server, mc_playlist_h playlist)
        ret = _mc_db_remove_playlist(mc_server->server_name, _playlist->playlist_name);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to _mc_db_remove_playlist");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAYLIST, MC_PLAYLIST_REMOVED, 0, _playlist->playlist_name);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_PLAYLIST, MC_PLAYLIST_REMOVED, 0, _playlist->playlist_name);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -954,7 +948,7 @@ static int __mc_server_set_ability(mc_server_h server, mc_ability_e ability, mc_
        ret = __mc_server_update_ability(server, ability, support, TRUE);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_update_ability");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_ABILITY_SUPPORT, ability, support, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_ABILITY_SUPPORT, ability, support, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -962,9 +956,8 @@ static int __mc_server_set_ability(mc_server_h server, mc_ability_e ability, mc_
 
 static int __mc_server_set_updated_cb(mc_server_h server, mc_server_receive_event_e event, void *callback, void *user_data)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_server_s *mc_server = (media_controller_server_s *)server;
-       char *interface_name = NULL;
+       g_autofree gchar *interface_name = NULL;
 
        mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL");
@@ -975,18 +968,15 @@ static int __mc_server_set_updated_cb(mc_server_h server, mc_server_receive_even
 
        interface_name = _mc_util_get_interface_name(MC_SERVER, mc_server->server_name);
 
-       ret = _mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name,  cb_event[event].signal_name, cb_event[event].cb_func, (void *)&(mc_server->updated_cb[event]));
-
-       g_free(interface_name);
-
-       return ret;
+       return _mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name,
+               cb_event[event].signal_name, cb_event[event].cb_func, (void *)&(mc_server->updated_cb[event]));
 }
 
 static int __mc_server_unset_updated_cb(mc_server_h server, mc_server_receive_event_e event)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_server_s *mc_server = (media_controller_server_s *)server;
-       char *interface_name = NULL;
+       g_autofree gchar *interface_name = NULL;
 
        mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(((event < MC_SERVER_EVENT_PLAYBACK_ACTION) || (event >= MC_SERVER_EVENT_MAX)) , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid event [%d]", event);
@@ -998,8 +988,6 @@ static int __mc_server_unset_updated_cb(mc_server_h server, mc_server_receive_ev
        mc_server->updated_cb[event].callback = NULL;
        mc_server->updated_cb[event].user_data = NULL;
 
-       g_free(interface_name);
-
        return ret;
 }
 
@@ -1126,8 +1114,9 @@ int mc_server_unset_360_mode_cmd_received_cb(mc_server_h server)
 int mc_server_send_cmd_reply(mc_server_h server, const char *client_name, const char *request_id, int result_code, bundle *data)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *message = NULL;
-       char *bundle_str = NULL;
+       g_autofree gchar *message = NULL;
+       g_autofree gchar *bundle_str = NULL;
+       g_autofree gchar *interface_name = NULL;
        media_controller_server_s *mc_server = (media_controller_server_s *)server;
 
        mc_retvm_if(!__is_valid_parameter(server, client_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid parameter");
@@ -1137,17 +1126,13 @@ int mc_server_send_cmd_reply(mc_server_h server, const char *client_name, const
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error when make string from bundle");
 
        message = g_strdup_printf("%s%s%d%s%s", mc_server->server_name, MC_STRING_DELIMITER, result_code, MC_STRING_DELIMITER, bundle_str);
-       g_free(bundle_str);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Error when making message");
 
-       char *interface_name = _mc_util_get_interface_name(MC_CLIENT, client_name);
+       interface_name = _mc_util_get_interface_name(MC_CLIENT, client_name);
        ret = _mc_ipc_send_reply(mc_server->dconn, NULL, interface_name, MC_DBUS_SIGNAL_NAME_CMD_REPLY, message, request_id);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error _mc_ipc_send_message [%d]", ret);
 
-       g_free(message);
-       g_free(interface_name);
-
        return ret;
 }
 
@@ -1235,7 +1220,7 @@ int mc_server_update_playback_ability(mc_server_h server)
        ret = _mc_db_update_ability_supported(mc_server->server_name, mc_server->basic_ability);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to _mc_db_update_ability_supported");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAYBACK_ABILITY, 0, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_PLAYBACK_ABILITY, 0, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return ret;
@@ -1277,7 +1262,7 @@ int mc_server_set_display_mode_ability(mc_server_h server, unsigned int mode, mc
        ret = _mc_db_update_ability_supported(mc_server->server_name, mc_server->basic_ability);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to _mc_db_update_ability_supported");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_DP_MODE_ABILITY, 0, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_DP_MODE_ABILITY, 0, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return MEDIA_CONTROLLER_ERROR_NONE;
@@ -1320,7 +1305,7 @@ int mc_server_set_display_rotation_ability(mc_server_h server, unsigned int rota
        ret = _mc_db_update_ability_supported(mc_server->server_name, mc_server->basic_ability);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to _mc_db_update_ability_supported");
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_DP_ROTATION_ABILITY, 0, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_DP_ROTATION_ABILITY, 0, 0, NULL);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to __mc_server_send_message");
 
        return MEDIA_CONTROLLER_ERROR_NONE;
@@ -1351,7 +1336,7 @@ int mc_server_create(mc_server_h *server)
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("fail to get ability [%d]", ret);
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_SERVER_STATE, MC_SERVER_STATE_ACTIVATE, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_SERVER_STATE, MC_SERVER_STATE_ACTIVATE, 0, NULL);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error __mc_server_send_message [%d]", ret);
 
@@ -1375,7 +1360,7 @@ int mc_server_destroy(mc_server_h server)
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("fail _mc_ipc_unregister_all_listener [%d]", ret);
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_SERVER_STATE, MC_SERVER_STATE_DEACTIVATE, 0, NULL);
+       ret = __mc_server_send_message(mc_server, MC_DBUS_SIGNAL_NAME_SERVER_STATE, MC_SERVER_STATE_DEACTIVATE, 0, NULL);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error __mc_server_send_message [%d]", ret);
 
index defa949..6dc32cb 100644 (file)
 #include <errno.h>
 #include <limits.h>
 #include <stdlib.h>
-#include <uuid/uuid.h>
 #include "media_controller_private.h"
 
 //#define UNIT_TEST    /* for testsuite */
 #define MAX_NAME_LENGTH 255
 
-static void __mc_util_check_valid_name(const char *name, char **valid_name)
+static gchar *__mc_util_check_valid_name(const char *name)
 {
        char new_word[MAX_NAME_LENGTH] = {0, };
        unsigned int i = 0, j = 0;
 
-       mc_retm_if_failed(name);
-
-       memset(new_word, 0, MAX_NAME_LENGTH);
+       mc_retvm_if(!name, NULL, "name is NULL");
 
        /* only 0~9, a~z, A~Z, '.', '_' will be used */
        for (i = 0; (i < strlen(name)) && (j < sizeof(new_word)); i++) {
@@ -42,25 +39,18 @@ static void __mc_util_check_valid_name(const char *name, char **valid_name)
                        (name[i] == '_' && i != 0)) {
                        new_word[j++] = name[i];
                } else {
-                       if (j + 9 < sizeof(new_word)) {
-                               new_word[j++] = 'A';
-                               new_word[j++] = 'P';
-                               new_word[j++] = 'P';
-                               new_word[j++] = 'I';
-                               new_word[j++] = 'D';
+                       if (j + 2 < sizeof(new_word)) {
+                               new_word[j++] = '_';
                                new_word[j++] = '_';
-                               new_word[j++] = 'S';
-                               new_word[j++] = 'E';
-                               new_word[j++] = 'P';
                        } else {
                                mc_error("Error failed to check valid name due to overrun!");
                        }
                }
        }
 
-       *valid_name = g_strdup(new_word);
+       mc_retvm_if(strlen(new_word) == 0, NULL, "invalid name");
 
-       mc_retm_if_failed((*valid_name));
+       return g_strdup(new_word);
 }
 
 int _mc_util_get_own_name(char **name)
@@ -93,42 +83,28 @@ int _mc_util_get_own_name(char **name)
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
-char *_mc_util_get_interface_name(const char *type, const char *name)
+char * _mc_util_get_interface_name(const char *type, const char *name)
 {
-       char *temp = NULL;
-       char *interface_name = NULL;
-
-       mc_retvm_if(type == NULL, NULL, "type is NULL");
-       mc_retvm_if(name == NULL, NULL, "name is NULL");
+       g_autofree gchar *temp = __mc_util_check_valid_name(name);
 
-       temp = g_strdup_printf("%s.%s%s", MC_DBUS_INTERFACE_PREFIX, type, name);
+       mc_retvm_if(!type || (g_strcmp0(type, MC_SERVER) != 0 && g_strcmp0(type, MC_CLIENT) != 0), NULL, "wrong type");
+       mc_retvm_if(!temp, NULL, "invalid name");
 
-       __mc_util_check_valid_name(temp, &interface_name);
-       g_free(temp);
-
-       return interface_name;
+       return g_strdup_printf("%s.%s%s", MC_DBUS_INTERFACE_PREFIX, type, temp);
 }
 
-int _mc_util_make_filter_interface_name(const char *prefix, const char *filter, char **interface_name)
+char * _mc_util_make_filter_interface_name(const char *filter)
 {
-       char *temp = NULL;
-
-       mc_retvm_if(prefix == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "prefix is NULL");
-       mc_retvm_if(filter == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "filter is NULL");
+       g_autofree gchar *temp = __mc_util_check_valid_name(filter);
 
-       temp = g_strdup_printf("%s.server%s", prefix, filter);
+       mc_retvm_if(!temp, NULL, "invalid filter");
 
-       __mc_util_check_valid_name(temp, interface_name);
-
-       g_free(temp);
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return g_strdup_printf("%s.server%s", MC_DBUS_UPDATE_INTERFACE, temp);
 }
 
 static int __send_command_available(mc_priv_type_e priv_type, const char *name, const char *command_type, const char *command, mc_msg_type_e msg_type)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *message = NULL;
+       g_autofree gchar *message = NULL;
 
        if (!MC_STRING_VALID(name) || !MC_STRING_VALID(command_type)) {
                mc_error("invalid query");
@@ -140,11 +116,7 @@ static int __send_command_available(mc_priv_type_e priv_type, const char *name,
        else
                message = g_strdup_printf("%s%s%s", name, command_type, command);
 
-       ret = _mc_ipc_send_message_to_server(msg_type, priv_type, message);
-
-       g_free(message);
-
-       return ret;
+       return _mc_ipc_send_message_to_server(msg_type, priv_type, message);
 }
 
 int _mc_util_set_command_available(mc_priv_type_e priv_type, const char *name, const char *command_type, const char *command)
@@ -157,23 +129,6 @@ int _mc_util_get_command_available(mc_priv_type_e priv_type, const char *name, c
        return __send_command_available(priv_type, name, command_type, command, MC_MSG_CLIENT_GET);
 }
 
-char *_mc_util_generate_uuid(void)
-{
-       uuid_t uuid_value;
-       static char uuid_unparsed[37];
-
-RETRY_GEN:
-       uuid_generate(uuid_value);
-       uuid_unparse(uuid_value, uuid_unparsed);
-
-       if (strlen(uuid_unparsed) < 36) {
-               mc_debug("INVALID UUID : %s. RETRY GENERATE.", uuid_unparsed);
-               goto RETRY_GEN;
-       }
-
-       return uuid_unparsed;
-}
-
 int _mc_util_bundle_to_string(bundle *bundle_data, char **str_data)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;