controller daemon will save not only pid but also appid when server and client create 45/197945/2
authorhj kim <backto.kim@samsung.com>
Thu, 17 Jan 2019 08:43:08 +0000 (17:43 +0900)
committerhj kim <backto.kim@samsung.com>
Thu, 17 Jan 2019 08:49:28 +0000 (17:49 +0900)
Change-Id: I0dc3f2645e45e83b285fc8dcd2d326e71f22642a

src/media_controller_ipc.c
svc/include/media_controller_socket.h
svc/media_controller_svc.c

index 71c72d6..bff4d0c 100755 (executable)
 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;
 }
index 55324e8..d93f825 100755 (executable)
@@ -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 {
index 36e4833..8932519 100755 (executable)
@@ -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!");