From 224cca9fca78dc42ba65854ea5864cb736572960 Mon Sep 17 00:00:00 2001 From: Jiyong Min Date: Tue, 10 Jul 2018 12:32:00 +0900 Subject: [PATCH] Add to remove client from client_list table when it is created (The handle was not destroyed, it make the client_name duplicated.) Change-Id: I13eea6d69e7ddd6b3c6ed51836ab0a213ac2c5c6 --- packaging/capi-media-controller.spec | 2 +- src/media_controller_client.c | 15 ++++++++++----- src/media_controller_server.c | 10 +++++----- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/packaging/capi-media-controller.spec b/packaging/capi-media-controller.spec index 20fd566..66df34f 100755 --- a/packaging/capi-media-controller.spec +++ b/packaging/capi-media-controller.spec @@ -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 diff --git a/src/media_controller_client.c b/src/media_controller_client.c index 92f8626..24687b0 100755 --- a/src/media_controller_client.c +++ b/src/media_controller_client.c @@ -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(); diff --git a/src/media_controller_server.c b/src/media_controller_server.c index 3493748..4e18f10 100755 --- a/src/media_controller_server.c +++ b/src/media_controller_server.c @@ -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); -- 2.7.4