From fdd578641e6f98e9627352e66222752e16f7548d Mon Sep 17 00:00:00 2001 From: hj kim Date: Thu, 7 Mar 2019 09:46:50 +0900 Subject: [PATCH] Add and Modify APIs for checking activated server/client Change-Id: I0db4b4ada69d78dc4ca30173d79def5a02fae8cb --- include/media_controller_db.h | 4 ++-- src/media_controller_db.c | 36 ++++++++++++++++++++++++++++++------ src/media_controller_server.c | 2 +- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/include/media_controller_db.h b/include/media_controller_db.h index 881c05f..9c40d56 100755 --- a/include/media_controller_db.h +++ b/include/media_controller_db.h @@ -23,8 +23,8 @@ int mc_db_create_server_table(const char *server_name); int mc_db_delete_server_table(const char *server_name); gboolean mc_db_is_server_table_exist(void *handle, const char *server_name); -gboolean mc_db_is_client_table_exist(void *handle, const char *client_name); - +gboolean _mc_db_is_activated_client(void *handle, const char *client_name); +gboolean _mc_db_is_activated_server(void *handle, const char *server_name); int mc_db_update_playback_info(const char *table_name, const media_controller_playback_s playback); int mc_db_update_whole_metadata(const char *server_name, const char *title, const char *artist, const char *album, const char *author, const char *genre, const char *duration, const char *date, diff --git a/src/media_controller_db.c b/src/media_controller_db.c index 203a3ff..d7188d2 100755 --- a/src/media_controller_db.c +++ b/src/media_controller_db.c @@ -901,15 +901,15 @@ gboolean mc_db_is_server_table_exist(void *handle, const char *server_name) return TRUE; } -gboolean mc_db_is_client_table_exist(void *handle, const char *client_name) +gboolean _mc_db_is_activated_client(void *handle, const char *client_name) { char *sql_str = NULL; int count = 0; mc_retvm_if(handle == NULL, FALSE, "Handle is NULL"); - mc_retvm_if(client_name == NULL, FALSE, "server_name is NULL"); + mc_retvm_if(client_name == NULL, FALSE, "client_name is NULL"); - mc_debug("client name [%s]", client_name); + mc_secure_debug("client name [%s]", client_name); sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM '%q' WHERE client_name='%q'", MC_DB_TABLE_CLIENT_LIST, client_name); mc_retvm_if(!MC_STRING_VALID(sql_str), FALSE, "SQL string is null"); @@ -917,10 +917,8 @@ gboolean mc_db_is_client_table_exist(void *handle, const char *client_name) count = __mc_db_get_count(handle, sql_str); SQLITE3_SAFE_FREE(sql_str); - mc_debug("table count [%d]", count); - if (count <= 0) { - mc_debug("No client info [%s]", client_name); + mc_secure_error("[%s] is not activated", client_name); mc_db_foreach_client_list(handle, NULL, NULL); return FALSE; @@ -929,6 +927,32 @@ gboolean mc_db_is_client_table_exist(void *handle, const char *client_name) return TRUE; } +gboolean _mc_db_is_activated_server(void *handle, const char *server_name) +{ + char *sql_str = NULL; + int count = 0; + + mc_retvm_if(handle == NULL, FALSE, "Handle is NULL"); + mc_retvm_if(server_name == NULL, FALSE, "server_name is NULL"); + + mc_secure_debug("server name [%s]", server_name); + + sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM '%q' WHERE server_name='%q'", MC_DB_TABLE_SERVER_LIST, server_name); + mc_retvm_if(!MC_STRING_VALID(sql_str), FALSE, "SQL string is null"); + + count = __mc_db_get_count(handle, sql_str); + SQLITE3_SAFE_FREE(sql_str); + + if (count <= 0) { + mc_secure_error("[%s] is not activated", server_name); + mc_db_foreach_server_list(handle, NULL, NULL); + + return FALSE; + } + + return TRUE; +} + int mc_db_foreach_server_list(void *handle, mc_activated_server_cb callback, void *user_data) { int ret = MEDIA_CONTROLLER_ERROR_NONE; diff --git a/src/media_controller_server.c b/src/media_controller_server.c index 020de9d..6c0f12b 100755 --- a/src/media_controller_server.c +++ b/src/media_controller_server.c @@ -597,7 +597,7 @@ static int __mc_server_send_event(mc_server_h server, const char *client_name, c mc_retvm_if(!MC_STRING_VALID(command_type), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid command_type"); mc_retvm_if(!MC_STRING_VALID(signal_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid signal_name"); mc_retvm_if(!MC_STRING_VALID(message), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid message"); - mc_retvm_if(mc_db_is_client_table_exist(mc_server->db_handle, client_name) == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid client_name"); + mc_retvm_if(_mc_db_is_activated_client(mc_server->db_handle, client_name) == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid client_name"); ret = mc_util_set_command_available(MC_PRIV_TYPE_SERVER, mc_server->server_name, command_type, event); mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_util_set_command_available [%d]", ret); -- 2.7.4