From: hj kim Date: Mon, 12 Aug 2019 10:32:53 +0000 (+0900) Subject: Remove check EACCESS and Fix log position to avoid errno change. (errno can be change... X-Git-Tag: submit/tizen_5.0/20190813.070312^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=be8f653b58a9911ece8efe5951d95bc2b890f97e;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Remove check EACCESS and Fix log position to avoid errno change. (errno can be changed when using dlog) The media-controller daemon can return EACCESS to the client when the daemon creates a commication socket temporarily. For this reason, if client get EACCESSn, client must retry the connection. Change-Id: If7753f8a2590365f4edba2ba6d4183207d0ddf0e --- diff --git a/src/media_controller_ipc.c b/src/media_controller_ipc.c index 03b5642..70a36ff 100644 --- a/src/media_controller_ipc.c +++ b/src/media_controller_ipc.c @@ -353,7 +353,7 @@ int mc_ipc_send_message_to_server(mc_msg_type_e msg_type, mc_priv_type_e priv_ty int request_msg_size = 0; int sockfd = -1; struct sockaddr_un serv_addr; - int retry_count = 0; + unsigned int retry_count = 0; mc_retvm_if(!MC_STRING_VALID(request_msg), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid query"); @@ -383,11 +383,7 @@ int mc_ipc_send_message_to_server(mc_msg_type_e msg_type, mc_priv_type_e priv_ty if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) { mc_stderror("connect error"); close(sockfd); - - if (errno == EACCES) - return MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED; - else - return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; + return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; } size_t full_msg_size = 0; @@ -436,33 +432,27 @@ int mc_ipc_send_message_to_server(mc_msg_type_e msg_type, mc_priv_type_e priv_ty /* Receive Response */ int recv_msg_size = -1; int recv_msg = -1; -RETRY: - if ((recv_msg_size = recv(sockfd, &recv_msg, sizeof(recv_msg), 0)) < 0) { - mc_error("recv failed : [%d]", sockfd); - mc_stderror("recv failed"); + + while ((recv_msg_size = recv(sockfd, &recv_msg, sizeof(recv_msg), 0)) < 0) { if (errno == EINTR) { mc_stderror("catch interrupt"); - goto RETRY; - } + continue; - if (errno == EWOULDBLOCK) { - if (retry_count < MAX_RETRY_COUNT) { - mc_error("TIME OUT[%d]", retry_count); - retry_count++; - goto RETRY; + } else if (errno == EWOULDBLOCK) { + if (retry_count++ < MAX_RETRY_COUNT) { + mc_error("[No-Error] Time Out. retry_count [%d]", retry_count); + continue; } - close(sockfd); - mc_error("Timeout. Can't try any more"); - return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; + } else { mc_stderror("recv failed"); - close(sockfd); - - return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; } + + close(sockfd); + return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; } mc_debug("RECEIVE OK [%d]", recv_msg); @@ -478,7 +468,7 @@ int mc_ipc_service_connect(mc_priv_type_e priv_type) #ifdef _ON_DEMAND_SOCKET_ACTIVATION int sockfd = -1; struct sockaddr_un serv_addr; - unsigned int retrycount = 0; + unsigned int retry_count = 0; #endif ret = __make_service_connection(priv_type); @@ -501,11 +491,7 @@ int mc_ipc_service_connect(mc_priv_type_e priv_type) if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) { mc_stderror("connect error"); close(sockfd); - - if (errno == EACCES) - return MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED; - else - return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; + return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; } close(sockfd); @@ -514,9 +500,9 @@ int mc_ipc_service_connect(mc_priv_type_e priv_type) mc_retvm_if(ret == MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED, ret, "Permission deny!"); /* Try to make connection untill starting daemon is completed */ - while ((ret != MEDIA_CONTROLLER_ERROR_NONE) && (retrycount++ < MAX_WAIT_COUNT)) { + while ((ret != MEDIA_CONTROLLER_ERROR_NONE) && (retry_count++ < MAX_WAIT_COUNT)) { MC_MILLISEC_SLEEP(200); - mc_error("[No-Error] retry count [%d]", retrycount); + mc_error("[No-Error] retry_count [%d]", retry_count); ret = __make_service_connection(priv_type); mc_retvm_if(ret == MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED, ret, "Permission deny!"); }