Code cleanup 30/214730/2 accepted/tizen/unified/20191002.013258 submit/tizen/20191001.024920
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 26 Sep 2019 01:00:59 +0000 (10:00 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Thu, 26 Sep 2019 03:08:56 +0000 (12:08 +0900)
Change some return values.
Improve some functions.

Change-Id: I5092f4ce2fbf734b9ce66374afaad8f233101a30
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/dcm_svc_ipc.c
svc/dcm_svc_main.c

index af0fef74c9fcdf346726f0441ee7a22772a27e7b..6613ce019fc445e50d2c9cb242276a1e5304c503 100755 (executable)
@@ -29,31 +29,19 @@ static char DCM_IPC_PATH[][100] = {
                        {"media-server/media_ipc_dcmdaemon.socket"},
                        {"media-server/media_ipc_dcmcomm.socket"},
 };
+#define DCM_MAX_RETRY 100
 
 int dcm_ipc_receive_message(int client_sock, dcmMsg *recv_msg)
 {
-       int recv_msg_size = 0;
-
-       if ((recv_msg_size = read(client_sock, recv_msg, sizeof(dcmMsg))) < 0) {
-               if (errno == EWOULDBLOCK) {
-                       dcm_error("Timeout. Can't try any more");
-                       return MS_MEDIA_ERR_SOCKET_RECEIVE_TIMEOUT;
-               } else {
-                       dcm_stderror("recv failed");
-                       return MS_MEDIA_ERR_SOCKET_RECEIVE;
-               }
-       }
-       dcm_sec_debug("[receive msg] type[%d] pid[%d] uid[%d] msg[%.*s]", recv_msg->msg_type, recv_msg->pid, recv_msg->uid, MAX_FILEPATH_LEN, (recv_msg->msg) ? recv_msg->msg : "NULL");
-
-       if (!(recv_msg->msg_type >= 0 && recv_msg->msg_type < DCM_MSG_MAX)) {
-               dcm_error("IPC message is wrong!");
-               return MS_MEDIA_ERR_INVALID_IPC_MESSAGE;
+       if (read(client_sock, recv_msg, sizeof(dcmMsg)) < 0) {
+               dcm_stderror("recv failed");
+               return MS_MEDIA_ERR_IPC;
        }
 
        return MS_MEDIA_ERR_NONE;
 }
 
-int dcm_ipc_accept_socket(int serv_sock, intclient_sock)
+int dcm_ipc_accept_socket(int serv_sock, int *client_sock)
 {
        DCM_CHECK_VAL(client_sock, MS_MEDIA_ERR_INVALID_PARAMETER);
        int sockfd = -1;
@@ -63,7 +51,7 @@ int dcm_ipc_accept_socket(int serv_sock, int* client_sock)
        if ((sockfd = accept(serv_sock, (struct sockaddr*)&client_addr, &client_addr_len)) < 0) {
                dcm_stderror("accept failed");
                *client_sock = -1;
-               return MS_MEDIA_ERR_SOCKET_ACCEPT;
+               return MS_MEDIA_ERR_IPC;
        }
 
        *client_sock = sockfd;
@@ -76,13 +64,12 @@ int dcm_ipc_create_socket(int *socket_fd, dcm_ipc_port_e port)
        DCM_CHECK_VAL(socket_fd, MS_MEDIA_ERR_INVALID_PARAMETER);
        int sock = -1;
        struct sockaddr_un serv_addr;
-       gboolean bind_success = false;
        int i = 0;
 
        /* Create a new TCP socket */
        if ((sock = socket(PF_FILE, SOCK_STREAM, 0)) < 0) {
                dcm_stderror("socket failed");
-               return MS_MEDIA_ERR_SOCKET_INTERNAL;
+               return MS_MEDIA_ERR_IPC;
        }
 
        /* Set socket address */
@@ -92,27 +79,27 @@ int dcm_ipc_create_socket(int *socket_fd, dcm_ipc_port_e port)
        DCM_SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, DCM_IPC_PATH[port]), sizeof(serv_addr.sun_path));
 
        /* Bind socket to local address */
-       for (i = 0; i < 100; i++) {
-               if (bind(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == 0) {
-                       bind_success = true;
+       for (i = 0; i < DCM_MAX_RETRY; i++) {
+               if (bind(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == 0)
                        break;
-               }
+
                dcm_debug("#%d bind", i);
                usleep(250000);
        }
 
-       if (bind_success == false) {
+       if (i == DCM_MAX_RETRY) {
                dcm_stderror("bind failed");
                close(sock);
-               return MS_MEDIA_ERR_SOCKET_BIND;
+               return MS_MEDIA_ERR_IPC;
        }
+
        dcm_debug("bind success");
 
        /* Listen */
        if (listen(sock, SOMAXCONN) < 0) {
                dcm_stderror("listen failed");
                close(sock);
-               return MS_MEDIA_ERR_SOCKET_INTERNAL;
+               return MS_MEDIA_ERR_IPC;
        }
        dcm_debug("Listening...");
 
@@ -140,7 +127,7 @@ int dcm_ipc_send_client_message(int socket_fd, int result, const char *msg)
        /* Send msg to the socket */
        if (send(socket_fd, &send_msg, sizeof(send_msg), 0) != sizeof(send_msg)) {
                dcm_stderror("send failed");
-               return MS_MEDIA_ERR_SOCKET_SEND;
+               return MS_MEDIA_ERR_IPC;
        }
 
        dcm_debug("Sent result [%d]", send_msg.result);
@@ -164,7 +151,7 @@ int dcm_ipc_send_ready(void)
        /* Create a new UDS socket */
        if ((socket_fd = socket(PF_FILE, SOCK_STREAM, 0)) < 0) {
                dcm_stderror("socket failed");
-               return MS_MEDIA_ERR_SOCKET_SEND;
+               return MS_MEDIA_ERR_IPC;
        }
 
        /* Set dcm thread socket address */
@@ -176,14 +163,14 @@ int dcm_ipc_send_ready(void)
        if (connect(socket_fd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
                dcm_stderror("connect error");
                close(socket_fd);
-               return MS_MEDIA_ERR_SOCKET_CONN;
+               return MS_MEDIA_ERR_IPC;
        }
 
        /* Send msg to the socket */
        if (send(socket_fd, &send_msg, sizeof(send_msg), 0) != sizeof(send_msg)) {
                dcm_stderror("send failed");
                close(socket_fd);
-               return MS_MEDIA_ERR_SOCKET_SEND;
+               return MS_MEDIA_ERR_IPC;
        }
 
        close(socket_fd);
@@ -195,10 +182,6 @@ int dcm_ipc_send_ready(void)
 
 void dcm_ipc_close_socket(int socket_fd)
 {
-       if (socket_fd < 0) {
-               dcm_error("The socket has been closed already.");
-               return;
-       }
-
-       close(socket_fd);
+       if (socket_fd != -1)
+               close(socket_fd);
 }
index 4a0da8c913bf6c7eb11213cf215959c1582e62b4..78844ae304f160f337430856a6feb153d2eb7650 100755 (executable)
@@ -28,13 +28,13 @@ static GMainLoop *g_dcm_svc_mainloop;
 
 static void __dcm_svc_kill_service(void)
 {
-       if (g_dcm_svc_mainloop != NULL) {
+       if (g_dcm_svc_mainloop) {
                dcm_warn("Shutting down DCM Service");
                g_main_loop_quit(g_dcm_svc_mainloop);
        }
 }
 
-gboolean dcm_service_recieve_request(GIOChannel *src, GIOCondition condition, gpointer data)
+static gboolean __dcm_service_recieve_request(GIOChannel *src, GIOCondition condition, gpointer data)
 {
        dcmMsg recv_msg;
        int sock = -1;
@@ -45,22 +45,15 @@ gboolean dcm_service_recieve_request(GIOChannel *src, GIOCondition condition, gp
        memset((void *)&recv_msg, 0, sizeof(recv_msg));
 
        sock = g_io_channel_unix_get_fd(src);
-       if (sock < 0) {
-               dcm_error("sock fd is invalid!");
-               return TRUE;
-       }
+       dcm_retvm_if(sock < 0, G_SOURCE_CONTINUE, "sock fd is invalid!");
 
        /* Accept tcp client socket */
        ret = dcm_ipc_accept_socket(sock, &client_sock);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               dcm_error("Failed to accept tcp socket! err: %d", ret);
-               return TRUE;
-       }
+       dcm_retvm_if(ret != MS_MEDIA_ERR_NONE, G_SOURCE_CONTINUE, "Failed to accept tcp socket! err: %d", ret);
 
        if (dcm_ipc_receive_message(client_sock, &recv_msg) != MS_MEDIA_ERR_NONE) {
                dcm_error("getRecvMsg failed");
-               dcm_ipc_close_socket(client_sock);
-               return TRUE;
+               goto ERROR;
        }
 
        dcm_sec_info("msg_type[%d] uid[%d] msg[%.*s]", recv_msg.msg_type, recv_msg.uid, MAX_FILEPATH_LEN, recv_msg.msg);
@@ -84,9 +77,10 @@ gboolean dcm_service_recieve_request(GIOChannel *src, GIOCondition condition, gp
                dcm_debug("Invalid message(%d)", recv_msg.msg_type);
        }
 
+ERROR:
        dcm_ipc_close_socket(client_sock);
 
-       return TRUE;
+       return G_SOURCE_CONTINUE;
 }
 
 int main(int argc, char *argv[])
@@ -110,7 +104,7 @@ int main(int argc, char *argv[])
        source = g_io_create_watch(channel, G_IO_IN);
 
        /* Set callback to be called when socket is readable */
-       g_source_set_callback(source, (GSourceFunc)dcm_service_recieve_request, NULL, NULL);
+       g_source_set_callback(source, (GSourceFunc)__dcm_service_recieve_request, NULL, NULL);
        g_source_attach(source, context);
 
        if (dcm_face_detect_initialize() != MS_MEDIA_ERR_NONE)