Code cleanup for socket functions 00/310200/3 accepted/tizen/unified/20240426.035448 accepted/tizen/unified/x/20240430.094806
authorJiyong <jiyong.min@samsung.com>
Wed, 24 Apr 2024 03:51:44 +0000 (12:51 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Wed, 24 Apr 2024 23:45:37 +0000 (23:45 +0000)
 - Remove uncalled timeout_sec
 - Replace return value to socket fd

Change-Id: Ibedbae3cc6d31a8e460964969ae8ac2ade5bb53a

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

index dc0c2c4..a974a01 100644 (file)
@@ -316,9 +316,7 @@ int _mc_ipc_send_reply(GDBusConnection *connection, const char *dbus_name, const
 
 int _mc_ipc_send_message_to_server(mc_msg_type_e msg_type, mc_priv_type_e priv_type, const char *request_msg)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
        int sockfd = -1;
-       struct sockaddr_un serv_addr;
        mc_comm_msg_s send_msg;
        int recv_msg = -1;
        unsigned int retry_count = 0;
@@ -339,20 +337,9 @@ int _mc_ipc_send_message_to_server(mc_msg_type_e msg_type, mc_priv_type_e priv_t
                        "invalid request_msg size(%zu)", send_msg.msg_size);
 
        /* Create Socket */
-       ret = mc_ipc_create_client_socket(MC_TIMEOUT_SEC_5, &sockfd);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "socket is not created properly");
-
-       /* Set server address. If the daemon is not running, the path did not exist */
-       memset(&serv_addr, 0, sizeof(serv_addr));
-       serv_addr.sun_family = AF_UNIX;
-       MC_SAFE_STRLCPY(serv_addr.sun_path, MC_IPC_PATH, sizeof(serv_addr.sun_path));
-
-       /* Connecting to the media controller service */
-       if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
-               mc_stderror("connect error");
-               close(sockfd);
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
-       }
+       sockfd = mc_ipc_create_client_socket();
+       mc_retvm_if(sockfd < 0, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION,
+                       "socket is not created properly");
 
        if (send(sockfd, &send_msg, sizeof(send_msg), 0) != sizeof(send_msg)) {
                mc_stderror("send failed");
index 5da9d79..796206e 100644 (file)
@@ -97,7 +97,8 @@ int main(int argc, char **argv)
        fd = __mc_main_listen_socket();
        if (fd < 0) {
                mc_error("Failed to listen socket");
-               if (mc_ipc_create_server_socket(&fd) != MEDIA_CONTROLLER_ERROR_NONE) {
+               fd = mc_ipc_create_server_socket();
+               if (fd < 0) {
                        mc_error("Failed to create socket");
                        return -1;
                }
index 6cca973..3a6df89 100755 (executable)
@@ -55,9 +55,9 @@ typedef struct {
        char msg[MAX_MSG_SIZE];
 } mc_comm_msg_s;
 
-int mc_ipc_create_client_socket(int timeout_sec, int *sock_fd);
-int mc_ipc_create_server_socket(int *sock_fd);
-int mc_ipc_accept_client_tcp(int serv_sock, int* client_sock);
+int mc_ipc_create_client_socket(void);
+int mc_ipc_create_server_socket(void);
+int mc_ipc_accept_client_socket(int serv_sock);
 
 #ifdef __cplusplus
 }
index 885e101..afd5e87 100644 (file)
 #include "media_controller_db_util.h"
 #include "media_controller_socket.h"
 
-int mc_ipc_create_client_socket(int timeout_sec, int *sock_fd)
+int mc_ipc_create_client_socket(void)
 {
        int sock = -1;
+       struct sockaddr_un serv_addr;
+       struct timeval tv_timeout = { MC_TIMEOUT_SEC_5, 0 };
 
-       struct timeval tv_timeout = { timeout_sec, 0 };
-
-       /*Create TCP Socket*/
        if ((sock = socket(PF_FILE, SOCK_STREAM, 0)) < 0) {
                mc_stderror("socket failed");
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
+               return -1;
        }
 
-       if (timeout_sec > 0) {
-               if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv_timeout, sizeof(tv_timeout)) == -1) {
-                       mc_stderror("setsockopt failed");
-                       close(sock);
-                       return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
-               }
+       if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv_timeout, sizeof(tv_timeout)) == -1) {
+               mc_stderror("setsockopt failed");
+               close(sock);
+               return -1;
        }
 
-       *sock_fd = sock;
+       memset(&serv_addr, 0, sizeof(serv_addr));
+       serv_addr.sun_family = AF_UNIX;
+       MC_SAFE_STRLCPY(serv_addr.sun_path, MC_IPC_PATH, sizeof(serv_addr.sun_path));
+
+       if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
+               mc_stderror("connect failed");
+               close(sock);
+               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
+       }
 
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return sock;
 }
 
-int mc_ipc_create_server_socket(int *sock_fd)
+int mc_ipc_create_server_socket(void)
 {
        int i = 0;
        bool bind_success = false;
        int sock = -1;
        struct sockaddr_un serv_addr;
 
-       /* Create a TCP socket */
        if ((sock = socket(PF_FILE, SOCK_STREAM, 0)) < 0) {
                mc_stderror("socket failed");
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
+               return -1;
        }
 
-       memset(&serv_addr, 0, sizeof(serv_addr));
+       unlink(MC_IPC_PATH);
 
+       memset(&serv_addr, 0, sizeof(serv_addr));
        serv_addr.sun_family = AF_UNIX;
-       unlink(MC_IPC_PATH);
        MC_SAFE_STRLCPY(serv_addr.sun_path, MC_IPC_PATH, sizeof(serv_addr.sun_path));
 
-       /* Bind to the local address */
        for (i = 0; i < 20; i++) {
                if (bind(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == 0) {
                        bind_success = true;
@@ -80,7 +83,7 @@ int mc_ipc_create_server_socket(int *sock_fd)
        if (bind_success == false) {
                mc_stderror("bind failed");
                close(sock);
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
+               return -1;
        }
 
        /*change permission of sock file*/
@@ -89,38 +92,27 @@ int mc_ipc_create_server_socket(int *sock_fd)
 
        mc_debug("bind success");
 
-       /* Listening */
        if (listen(sock, SOMAXCONN) < 0) {
                mc_stderror("listen failed");
                close(sock);
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
+               return -1;
        }
 
        mc_debug("Listening...");
 
-       *sock_fd = sock;
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
-
+       return sock;
 }
 
-int mc_ipc_accept_client_tcp(int serv_sock, int *client_sock)
+int mc_ipc_accept_client_socket(int serv_sock)
 {
        int sockfd = -1;
-       struct sockaddr_un client_addr;
-       socklen_t client_addr_len;
 
-       if (client_sock == NULL)
-               return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+       mc_retvm_if(serv_sock < 0, -1, "invalid serv_sock");
 
-       client_addr_len = (socklen_t)sizeof(client_addr);
-       if ((sockfd = accept(serv_sock, (struct sockaddr *)&client_addr, &client_addr_len)) < 0) {
+       if ((sockfd = accept(serv_sock, NULL, NULL)) < 0) {
                mc_stderror("accept failed");
-               *client_sock = -1;
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
+               return -1;
        }
 
-       *client_sock = sockfd;
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return sockfd;
 }
index 6ff7576..10c8292 100644 (file)
@@ -584,7 +584,6 @@ static gboolean __mc_service_process(gpointer data)
 
 static gboolean __mc_read_service_request_tcp_socket(GIOChannel *src, GIOCondition condition, gpointer data)
 {
-       int sock = -1;
        int client_sock = -1;
        int msg = MEDIA_CONTROLLER_ERROR_NONE;
        mc_service_request *req = NULL;
@@ -592,15 +591,8 @@ static gboolean __mc_read_service_request_tcp_socket(GIOChannel *src, GIOConditi
 
        mc_info_fenter();
 
-       sock = g_io_channel_unix_get_fd(src);
-       if (sock < 0) {
-               mc_error("sock fd is invalid!");
-               return G_SOURCE_CONTINUE;
-       }
-
-       /* get client socket fd */
-       msg = mc_ipc_accept_client_tcp(sock, &(client_sock));
-       if (msg != MEDIA_CONTROLLER_ERROR_NONE)
+       client_sock = mc_ipc_accept_client_socket(g_io_channel_unix_get_fd(src));
+       if (client_sock < 0)
                return G_SOURCE_CONTINUE;
 
        mc_peer_creds creds;