From bc599031b99079b1eace479cc8d6bad584dc55b7 Mon Sep 17 00:00:00 2001 From: hj kim Date: Thu, 17 Jan 2019 17:43:08 +0900 Subject: [PATCH] controller daemon will save not only pid but also appid when server and client create Change-Id: I0dc3f2645e45e83b285fc8dcd2d326e71f22642a --- src/media_controller_ipc.c | 9 ++++++++- svc/include/media_controller_socket.h | 1 - svc/media_controller_svc.c | 23 +++++++++++++++-------- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/media_controller_ipc.c b/src/media_controller_ipc.c index 71c72d6..bff4d0c 100755 --- a/src/media_controller_ipc.c +++ b/src/media_controller_ipc.c @@ -28,7 +28,14 @@ static int __make_service_connection(mc_priv_type_e priv_type) { int ret = MEDIA_CONTROLLER_ERROR_NONE; - ret = mc_ipc_send_message_to_server(MC_MSG_SERVER_CONNECTION, priv_type, MC_SERVER_CONNECTION_MSG); + char *app_id = NULL; + + ret = mc_util_get_own_name(&app_id); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Failed to get server_name [%d]", ret); + + ret = mc_ipc_send_message_to_server(MC_MSG_SERVER_CONNECTION, priv_type, app_id); + + MC_SAFE_FREE(app_id); return ret; } diff --git a/svc/include/media_controller_socket.h b/svc/include/media_controller_socket.h index 55324e8..d93f825 100755 --- a/svc/include/media_controller_socket.h +++ b/svc/include/media_controller_socket.h @@ -32,7 +32,6 @@ extern "C" { #define MC_SOCK_NOT_ALLOCATE -1 #define MC_SOCK_ACTIVATION_PATH "/run/.mediacontroller.sock" /* tzplatform_mkpath(TZ_SYS_RUN, ".media_controller.sock") */ #define MC_IPC_PATH "/run/.mediacontroller-comm.sock" /* tzplatform_mkpath(TZ_SYS_RUN, ".media_controller-comm.sock") */ -#define MC_SERVER_CONNECTION_MSG "Connect" #define MC_SERVER_DISCONNECTION_MSG "Disonnect" typedef enum { diff --git a/svc/media_controller_svc.c b/svc/media_controller_svc.c index 36e4833..8932519 100755 --- a/svc/media_controller_svc.c +++ b/svc/media_controller_svc.c @@ -45,6 +45,7 @@ typedef struct { typedef struct { int pid; mc_priv_type_e priv_type; + char *app_id; GList *s_data; } mc_list_data_set_t; @@ -135,9 +136,12 @@ static void __mc_set_data(gpointer data, gpointer user_data) { mc_list_data_set_t *_data = (mc_list_data_set_t *)data; mc_comm_msg_s *_user_data = (mc_comm_msg_s *)user_data; - char *_set_data = strdup(_user_data->msg); - if (_data->pid == _user_data->pid) + char *_set_data = NULL; + + if (_data->pid == _user_data->pid) { + _set_data = strdup(_user_data->msg); _data->s_data = g_list_append(_data->s_data, _set_data); + } } static void __mc_get_data(gpointer data, gpointer user_data) @@ -357,6 +361,8 @@ static int _mc_service_add_connection(GList **connected_list, mc_comm_msg_s *req data->pid = request_msg->pid; data->priv_type = request_msg->priv_type; + data->app_id = g_strdup(request_msg->msg); + *connected_list = g_list_append(*connected_list, data); if (g_connection_cnt == -1) @@ -385,7 +391,11 @@ static int _mc_service_remove_connection(GList **connected_list, mc_comm_msg_s * mc_list_data_set_t *data = g_list_nth_data(*connected_list, idx); if (data != NULL) { mc_error("[No-error] data [%p]", data); + *connected_list = g_list_remove(*connected_list, data); + + MC_SAFE_FREE(data->app_id); + if (data->s_data != NULL) { mc_error("[No-error] s_data [%p], length [%d]", data->s_data, g_list_length(data->s_data)); g_list_free_full(data->s_data, __mc_destroy_data_list); @@ -396,7 +406,9 @@ static int _mc_service_remove_connection(GList **connected_list, mc_comm_msg_s * g_connection_cnt--; mc_error("[No-error] decreased connection count [%d]", g_connection_cnt); + mc_debug_fleave(); + return MEDIA_CONTROLLER_ERROR_NONE; } @@ -495,12 +507,7 @@ gboolean _mc_service_process(gpointer data) } else if (request_msg->msg_type == MC_MSG_CLIENT_GET) { send_msg = _mc_service_get_data(&(_service_data->connected), request_msg); } else if (request_msg->msg_type == MC_MSG_SERVER_CONNECTION) { - if (request_msg->msg_size < strlen(MC_SERVER_CONNECTION_MSG)) { - mc_error("Wrong message!"); - send_msg = MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; - goto ERROR; - } - if (strncmp(request_msg->msg, MC_SERVER_CONNECTION_MSG, request_msg->msg_size) == 0) { + if(MC_STRING_VALID(request_msg->msg)) { send_msg = _mc_service_add_connection(&(_service_data->connected), request_msg); } else { mc_error("Wrong message!"); -- 2.7.4