From: Jiyong Date: Wed, 24 Apr 2024 03:51:44 +0000 (+0900) Subject: Code cleanup for socket functions X-Git-Tag: accepted/tizen/unified/20240426.035448^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F00%2F310200%2F3;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Code cleanup for socket functions - Remove uncalled timeout_sec - Replace return value to socket fd Change-Id: Ibedbae3cc6d31a8e460964969ae8ac2ade5bb53a --- diff --git a/src/media_controller_ipc.c b/src/media_controller_ipc.c index dc0c2c4..a974a01 100644 --- a/src/media_controller_ipc.c +++ b/src/media_controller_ipc.c @@ -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"); diff --git a/svc/daemon/media_controller_main.c b/svc/daemon/media_controller_main.c index 5da9d79..796206e 100644 --- a/svc/daemon/media_controller_main.c +++ b/svc/daemon/media_controller_main.c @@ -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; } diff --git a/svc/include/media_controller_socket.h b/svc/include/media_controller_socket.h index 6cca973..3a6df89 100755 --- a/svc/include/media_controller_socket.h +++ b/svc/include/media_controller_socket.h @@ -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 } diff --git a/svc/media_controller_socket.c b/svc/media_controller_socket.c index 885e101..afd5e87 100644 --- a/svc/media_controller_socket.c +++ b/svc/media_controller_socket.c @@ -23,51 +23,54 @@ #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; } diff --git a/svc/media_controller_svc.c b/svc/media_controller_svc.c index 6ff7576..10c8292 100644 --- a/svc/media_controller_svc.c +++ b/svc/media_controller_svc.c @@ -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;