Add to remove client from client_list table when it is created 92/183692/1 submit/tizen/20180710.053337
authorJiyong Min <jiyong.min@samsung.com>
Tue, 10 Jul 2018 03:32:00 +0000 (12:32 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Tue, 10 Jul 2018 05:30:24 +0000 (14:30 +0900)
(The handle was not destroyed, it make the client_name duplicated.)

Change-Id: I13eea6d69e7ddd6b3c6ed51836ab0a213ac2c5c6

packaging/capi-media-controller.spec
src/media_controller_client.c
src/media_controller_server.c

index 20fd566..66df34f 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-controller
 Summary:    A media controller library in Tizen Native API
-Version:    0.1.64
+Version:    0.1.65
 Release:    1
 Group:      Multimedia/API
 License:    Apache-2.0
index 92f8626..24687b0 100755 (executable)
@@ -321,6 +321,11 @@ static int __mc_client_destroy(media_controller_client_s *mc_client)
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
 
+       /*Send Disconnection Msg to Server*/
+       ret = mc_ipc_send_message_to_server(MC_MSG_SERVER_DISCONNECTION, MC_PRIV_TYPE_CLIENT, MC_SERVER_DISCONNECTION_MSG);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+               mc_error("Failed to mc_ipc_send_message_to_server [%d]", ret);
+
        if (mc_client->dconn) {
                ret = mc_ipc_unref_dbus_connection(mc_client->dconn, &mc_client->dref_count);
                if (ret != MEDIA_CONTROLLER_ERROR_NONE)
@@ -493,9 +498,14 @@ int mc_client_create(mc_client_h *client)
        ret = __mc_client_create(&mc_client);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("Failed __mc_server_create [%d]", ret);
+               __mc_client_destroy(mc_client);
                return ret;
        }
 
+       ret = mc_db_delete_client_address_from_client_list(mc_client->db_handle, mc_client->client_name);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+               mc_error("mc_db_delete_client_address_from_client_list failed [%d]", ret);
+
        ret = mc_db_insert_client_address_into_client_list(mc_client->db_handle, mc_client->client_name);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("fail mc_db_insert_server_address_into_table [%d]", ret);
@@ -1691,11 +1701,6 @@ int mc_client_destroy(mc_client_h client)
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("fail mc_db_delete_client_address_from_client_list [%d]", ret);
 
-       /*Send Disconnection Msg to Server*/
-       ret = mc_ipc_send_message_to_server(MC_MSG_SERVER_DISCONNECTION, MC_PRIV_TYPE_CLIENT, MC_SERVER_DISCONNECTION_MSG);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_error("Failed to mc_ipc_send_message_to_server [%d]", ret);
-
        ret = __mc_client_destroy(mc_client);
 
        mc_debug_fleave();
index 3493748..4e18f10 100755 (executable)
@@ -79,6 +79,11 @@ static int __mc_server_destoy(media_controller_server_s *mc_server)
 
        mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
 
+       /*Send Disconnection Msg to Server*/
+       ret = mc_ipc_send_message_to_server(MC_MSG_SERVER_DISCONNECTION, MC_PRIV_TYPE_SERVER, MC_SERVER_DISCONNECTION_MSG);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+               mc_error("Failed to mc_ipc_send_message_to_server [%d]", ret);
+
        if (mc_server->dconn) {
                ret = mc_ipc_unref_dbus_connection(mc_server->dconn, &mc_server->dref_count);
                if (ret != MEDIA_CONTROLLER_ERROR_NONE)
@@ -1570,11 +1575,6 @@ int mc_server_destroy(mc_server_h server)
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Error __mc_server_send_message [%d]", ret);
 
-       /*Send Disconnection Msg to Server*/
-       ret = mc_ipc_send_message_to_server(MC_MSG_SERVER_DISCONNECTION, MC_PRIV_TYPE_SERVER, MC_SERVER_DISCONNECTION_MSG);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_error("Failed to mc_ipc_send_message_to_server [%d]", ret);
-
        ret = __mc_server_destoy(mc_server);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("fail __mc_server_destoy [%d]", ret);