From c781e0d09a7f6a7d9e238fe693d31e4cfe0930bc Mon Sep 17 00:00:00 2001 From: YoungHun Kim Date: Thu, 31 Jan 2019 09:20:55 +0900 Subject: [PATCH] Ignore the client connection requests prior to server reaedy Change-Id: I7d11e68248c6f69133db3e7e6d973a0f0a4bd0ea --- client/src/muse_client.c | 3 +++ core/include/muse_core.h | 2 ++ core/src/muse_core.c | 5 +++++ server/src/muse_server_ipc.c | 2 +- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/client/src/muse_client.c b/client/src/muse_client.c index d60cf72..e591357 100644 --- a/client/src/muse_client.c +++ b/client/src/muse_client.c @@ -142,6 +142,7 @@ static int _mc_new(muse_channel_e channel) LOGI("Enter"); muse_return_val_if_fail(channel < MUSE_CHANNEL_MAX, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(muse_server_is_ready(), MM_ERROR_UNKNOWN); /* create socket */ sock_fd = socket(AF_UNIX, SOCK_STREAM, 0); @@ -187,6 +188,8 @@ static int _mc_new(muse_channel_e channel) static void _mc_table_new(void) { + muse_return_if_fail(muse_server_is_ready()); + g_mutex_lock(&mc_mutex); if (!mc_table) { diff --git a/core/include/muse_core.h b/core/include/muse_core.h index 9741d55..3989171 100644 --- a/core/include/muse_core.h +++ b/core/include/muse_core.h @@ -117,6 +117,8 @@ void muse_core_log_file_list(const char *path); void muse_core_log_cmd_info(char *cmd); void muse_core_remove_symlink(const char *path); +bool muse_server_is_ready(void); + #ifdef __cplusplus } #endif diff --git a/core/src/muse_core.c b/core/src/muse_core.c index 074a99d..a875f8e 100644 --- a/core/src/muse_core.c +++ b/core/src/muse_core.c @@ -206,6 +206,11 @@ void muse_core_log_cmd_info(char *cmd) } } +bool muse_server_is_ready(void) +{ + return access(MUSE_DEFAULT_PIDFILE, F_OK) == 0; +} + int muse_core_connection_close(int sock_fd) { char err_msg[MUSE_MSG_LEN_MAX] = {'\0',}; diff --git a/server/src/muse_server_ipc.c b/server/src/muse_server_ipc.c index 0894d07..060d0dd 100644 --- a/server/src/muse_server_ipc.c +++ b/server/src/muse_server_ipc.c @@ -135,7 +135,7 @@ static gpointer _ms_ipc_dispatch_worker(gpointer data) ms_connection_register(m); m->is_create_api_called = true; - if (access(MUSE_SERVER_READY, F_OK) == 0) + if (muse_server_is_ready()) ms_cmd_dispatch(m, MUSE_MODULE_COMMAND_CREATE_SERVER_ACK); else LOGW("Do not send server acknowledgement because muse server is actually not ready"); -- 2.7.4