Fix the bug related with muse_server_is_ready() 38/228438/6 accepted/tizen/unified/20200324.101543 submit/tizen/20200323.075436 submit/tizen/20200323.230834
authorYoungHun Kim <yh8004.kim@samsung.com>
Mon, 23 Mar 2020 05:58:55 +0000 (14:58 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Mon, 23 Mar 2020 07:51:54 +0000 (16:51 +0900)
Change-Id: I8b0474bb7cecb5422328dbf56c9de38cc22faafd

client/src/muse_client.c
core/src/muse_core.c
packaging/mused.spec
server/src/muse_server_private.c

index 6f5d89b..1caa6a4 100644 (file)
@@ -50,6 +50,8 @@ static int _mc_new(muse_channel_e channel);
 static void _mc_table_new(void);
 static gpointer _mc_get_fd_ptr(int sock_fd);
 
+static int _muse_client_new(muse_channel_e channel);
+
 #ifdef MUSE_USE_CLIENT_SIGHANDLER
 static gboolean _mc_table_remove_func(gpointer key, gpointer value, gpointer user_data)
 {
@@ -142,7 +144,6 @@ 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);
@@ -188,8 +189,6 @@ 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) {
@@ -210,15 +209,27 @@ static gpointer _mc_get_fd_ptr(int sock_fd)
        return g_hash_table_lookup(mc_table, GINT_TO_POINTER(sock_fd));
 }
 
+static int _muse_client_new(muse_channel_e channel)
+{
+       if (!muse_server_is_ready()) {
+               LOGE("muse server is not ready");
+               return MM_ERROR_UNKNOWN;
+       }
+
+       if (channel == MUSE_CHANNEL_MSG)
+               _mc_table_new();
+
+       return _mc_new(channel);
+}
+
 int muse_client_new(void)
 {
-       _mc_table_new();
-       return _mc_new(MUSE_CHANNEL_MSG);
+       return _muse_client_new(MUSE_CHANNEL_MSG);
 }
 
 int muse_client_new_data_ch(void)
 {
-       return _mc_new(MUSE_CHANNEL_DATA);
+       return _muse_client_new(MUSE_CHANNEL_DATA);
 }
 
 int muse_client_close(int sock_fd)
index 025ab18..a71b0b1 100644 (file)
@@ -258,7 +258,7 @@ void muse_core_log_cmd_info(char *cmd)
 
 bool muse_server_is_ready(void)
 {
-       return access(MUSE_DEFAULT_PIDFILE, F_OK) == 0;
+       return access(MUSE_SERVER_READY, F_OK) == 0;
 }
 
 int muse_core_connection_close(int sock_fd)
index 52d1391..abc1dd8 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mused
 Summary:    A multimedia daemon
-Version:    0.3.104
+Version:    0.3.105
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 7c6c358..cb4c6d8 100644 (file)
@@ -1290,5 +1290,8 @@ void ms_remove_ready_file(void)
 #else
        if (remove(MUSE_SERVER_READY) == -1)
                LOGE("remove %s failed [errno : %d]", MUSE_SERVER_READY, errno);
+
+       if (remove(MUSE_DEFAULT_PIDFILE) == -1)
+               LOGE("remove %s failed [errno : %d]", MUSE_DEFAULT_PIDFILE, errno);
 #endif
 }