return is_latest;
}
+
static int __mc_update_latest_server_info(void *handle, const char *server_name, mc_server_state_e server_state, mc_playback_states_e playback_state, gboolean update_server_name)
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
return ret;
}
+static int __mc_db_activate_server_table(void *db_handle, const char *app_id)
+{
+ int ret = MEDIA_CONTROLLER_ERROR_NONE;
+ char *sql_str = NULL;
+
+ mc_debug_fenter();
+
+ mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+ mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+ if (__mc_db_is_latest(db_handle, app_id)) {
+ ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_ACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
+ } else {
+ sql_str = sqlite3_mprintf(DB_CREATE_SERVER_TABLE, app_id, app_id, DB_META_FIELD, app_id, app_id);
+ ret = mc_db_util_update_db(db_handle, sql_str);
+ SQLITE3_SAFE_FREE(sql_str);
+ }
+
+ mc_debug_fleave();
+
+ return ret;
+}
+
+static int __mc_db_deactivate_server_table(void *db_handle, const char *app_id)
+{
+ int ret = MEDIA_CONTROLLER_ERROR_NONE;
+ char *sql_str = NULL;
+
+ mc_debug_fenter();
+
+ mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+ mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+ /* Update server_state to deactivated, if the server is latest.
+ * Drop the table of server_name, if it is not latest.
+ */
+ if (__mc_db_is_latest(db_handle, app_id)) {
+ ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_DEACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
+ } else {
+ sql_str = sqlite3_mprintf(DB_DROP_TABLE, app_id);
+ ret = mc_db_util_update_db(db_handle, sql_str);
+ SQLITE3_SAFE_FREE(sql_str);
+ }
+
+ mc_debug_fleave();
+
+ return ret;
+}
+
+static int __mc_db_insert_to_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
+{
+ int ret = MEDIA_CONTROLLER_ERROR_NONE;
+ char *sql_str = NULL;
+
+ mc_debug_fenter();
+
+ mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+ mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+ mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
+
+ if (priv_type == MC_PRIV_TYPE_SERVER) {
+ sql_str = sqlite3_mprintf(DB_INSERT_TO_SERVER_LIST, app_id, app_id);
+ } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
+ sql_str = sqlite3_mprintf(DB_INSERT_TO_CLIENT_LIST, app_id, app_id);
+ } else {
+ mc_error("invalid priv_type (%d)", priv_type);
+ mc_debug_fleave();
+ return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+ }
+ mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
+
+ ret = mc_db_util_update_db(db_handle, sql_str);
+ if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+ mc_error("media_db_update_db error : %d", ret);
+
+ SQLITE3_SAFE_FREE(sql_str);
+
+ mc_debug_fleave();
+
+ return ret;
+}
+
+static int __mc_db_delete_from_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
+{
+ int ret = MEDIA_CONTROLLER_ERROR_NONE;
+ char *sql_str = NULL;
+
+ mc_debug_fenter();
+
+ mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+ mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+ mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
+
+ if (priv_type == MC_PRIV_TYPE_SERVER) {
+ sql_str = sqlite3_mprintf(DB_DELETE_FROM_SERVER_LIST, app_id);
+ } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
+ sql_str = sqlite3_mprintf(DB_DELETE_FROM_CLIENT_LIST, app_id);
+ } else {
+ mc_error("invalid priv_type (%d)", priv_type);
+ mc_debug_fleave();
+ return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+ }
+ mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
+
+ ret = mc_db_util_update_db(db_handle, sql_str);
+ if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+ mc_error("media_db_update_db error : %d", ret);
+
+ SQLITE3_SAFE_FREE(sql_str);
+
+ mc_debug_fleave();
+
+ return ret;
+}
+
char *mc_db_get_db_path(uid_t uid)
{
char *db_path = NULL;
return ret;
}
-int mc_db_util_activate_server_table(void *db_handle, const char *app_id)
-{
- int ret = MEDIA_CONTROLLER_ERROR_NONE;
- char *sql_str = NULL;
-
- mc_debug_fenter();
-
- mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
- mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
-
- if (__mc_db_is_latest(db_handle, app_id)) {
- ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_ACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
- } else {
- sql_str = sqlite3_mprintf(DB_CREATE_SERVER_TABLE, app_id, app_id, DB_META_FIELD, app_id, app_id);
- ret = mc_db_util_update_db(db_handle, sql_str);
- SQLITE3_SAFE_FREE(sql_str);
- }
-
- mc_debug_fleave();
-
- return ret;
-}
-
-int mc_db_util_deactivate_server_table(void *db_handle, const char *app_id)
+int mc_db_add_application(uid_t uid, const char *app_id, const mc_priv_type_e priv_type)
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
- char *sql_str = NULL;
+ void *db_handle = NULL;
mc_debug_fenter();
- mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+ mc_retvm_if((priv_type != MC_PRIV_TYPE_SERVER) && (priv_type != MC_PRIV_TYPE_CLIENT), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", priv_type);
- /* Update server_state to deactivated, if the server is latest.
- * Drop the table of server_name, if it is not latest.
- */
- if (__mc_db_is_latest(db_handle, app_id)) {
- ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_DEACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
- } else {
- sql_str = sqlite3_mprintf(DB_DROP_TABLE, app_id);
- ret = mc_db_util_update_db(db_handle, sql_str);
- SQLITE3_SAFE_FREE(sql_str);
+ ret = mc_db_connect(&db_handle, uid, TRUE);
+ if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
+ mc_error("mc_db_connect error : %d", ret);
+ mc_db_disconnect(db_handle);
+ return ret;
}
- mc_debug_fleave();
-
- return ret;
-}
-
-int mc_db_util_insert_to_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
-{
- int ret = MEDIA_CONTROLLER_ERROR_NONE;
- char *sql_str = NULL;
-
- mc_debug_fenter();
-
- mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
- mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
-
- mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
-
- if (priv_type == MC_PRIV_TYPE_SERVER) {
- sql_str = sqlite3_mprintf(DB_INSERT_TO_SERVER_LIST, app_id, app_id);
- } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
- sql_str = sqlite3_mprintf(DB_INSERT_TO_CLIENT_LIST, app_id, app_id);
- } else {
- mc_error("invalid priv_type (%d)", priv_type);
- mc_debug_fleave();
- return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+ ret = __mc_db_insert_to_list(db_handle, app_id, priv_type);
+ if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
+ mc_error("__mc_db_insert_to_list failed (%d)", ret);
+ mc_db_disconnect(db_handle);
+ return ret;
}
- mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
-
- ret = mc_db_util_update_db(db_handle, sql_str);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE)
- mc_error("media_db_update_db error : %d", ret);
-
- SQLITE3_SAFE_FREE(sql_str);
-
- mc_debug_fleave();
-
- return ret;
-}
-
-int mc_db_util_delete_from_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
-{
- int ret = MEDIA_CONTROLLER_ERROR_NONE;
- char *sql_str = NULL;
-
- mc_debug_fenter();
-
- mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
- mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
-
- mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
if (priv_type == MC_PRIV_TYPE_SERVER) {
- sql_str = sqlite3_mprintf(DB_DELETE_FROM_SERVER_LIST, app_id);
- } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
- sql_str = sqlite3_mprintf(DB_DELETE_FROM_CLIENT_LIST, app_id);
- } else {
- mc_error("invalid priv_type (%d)", priv_type);
- mc_debug_fleave();
- return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+ ret = __mc_db_activate_server_table(db_handle, app_id);
+ if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
+ mc_secure_error("__mc_db_activate_server_table failed (%d)", ret);
+ __mc_db_delete_from_list(db_handle, app_id, priv_type);
+ }
}
- mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
- ret = mc_db_util_update_db(db_handle, sql_str);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE)
- mc_error("media_db_update_db error : %d", ret);
-
- SQLITE3_SAFE_FREE(sql_str);
+ mc_db_disconnect(db_handle);
mc_debug_fleave();
return ret;
}
-int mc_db_util_remove_dead_application(uid_t uid, const char *app_id, const mc_priv_type_e priv_type)
+int mc_db_remove_application(uid_t uid, const char *app_id, const mc_priv_type_e priv_type)
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
void *db_handle = NULL;
mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+ mc_retvm_if((priv_type != MC_PRIV_TYPE_SERVER) && (priv_type != MC_PRIV_TYPE_CLIENT), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", priv_type);
ret = mc_db_connect(&db_handle, uid, TRUE);
if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
}
/* Delete application from server/client list */
- ret = mc_db_util_delete_from_list(db_handle, app_id, priv_type);
+ ret = __mc_db_delete_from_list(db_handle, app_id, priv_type);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
- mc_secure_error("mc_db_util_delete_from_list error : %d", ret);
+ mc_secure_error("__mc_db_delete_from_list error : %d", ret);
/* Drop server table to remove application information if it is not latest.
* Update application information if it is latest.
*/
if (priv_type == MC_PRIV_TYPE_SERVER) {
- ret = mc_db_util_deactivate_server_table(db_handle, app_id);
+ ret = __mc_db_deactivate_server_table(db_handle, app_id);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
- mc_secure_error("mc_db_util_deactivate_server_table error : %d", ret);
+ mc_secure_error("__mc_db_deactivate_server_table error : %d", ret);
}
mc_db_disconnect(db_handle);
}
}
-static int __mc_service_add_to_db(mc_comm_msg_s *request_msg)
-{
- int ret = MEDIA_CONTROLLER_ERROR_NONE;
- void *db_handle = NULL;
-
- mc_debug_fenter();
-
- mc_retvm_if(!request_msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid request message");
- mc_retvm_if(!request_msg->msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid message");
- mc_retvm_if(((request_msg->priv_type != MC_PRIV_TYPE_SERVER) && (request_msg->priv_type != MC_PRIV_TYPE_CLIENT)), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", request_msg->priv_type);
-
- ret = mc_db_connect(&db_handle, request_msg->uid, TRUE);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
- mc_error("mc_db_connect error : %d", ret);
- mc_db_disconnect(db_handle);
- return ret;
- }
-
- ret = mc_db_util_insert_to_list(db_handle, request_msg->msg, request_msg->priv_type);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
- mc_error("mc_db_util_insert_to_list failed (%d)", ret);
- mc_db_disconnect(db_handle);
- return ret;
- }
-
- if (request_msg->priv_type == MC_PRIV_TYPE_SERVER) {
- ret = mc_db_util_activate_server_table(db_handle, request_msg->msg);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
- mc_secure_error("mc_db_util_activate_server_table failed (%d)", ret);
- mc_db_util_delete_from_list(db_handle, request_msg->msg, request_msg->priv_type);
- }
- }
-
- mc_db_disconnect(db_handle);
-
- mc_debug_fleave();
-
- return ret;
-}
-
-static int __mc_service_remove_from_db(mc_comm_msg_s *request_msg)
-{
- int ret = MEDIA_CONTROLLER_ERROR_NONE;
- void *db_handle = NULL;
-
- mc_debug_fenter();
-
- mc_retvm_if(!request_msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid request message");
- mc_retvm_if(!request_msg->msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid message");
- mc_retvm_if(((request_msg->priv_type != MC_PRIV_TYPE_SERVER) && (request_msg->priv_type != MC_PRIV_TYPE_CLIENT)), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", request_msg->priv_type);
-
- ret = mc_db_connect(&db_handle, request_msg->uid, TRUE);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
- mc_error("mc_db_connect error : %d", ret);
- mc_db_disconnect(db_handle);
- return ret;
- }
-
- ret = mc_db_util_delete_from_list(db_handle, request_msg->msg, request_msg->priv_type);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE)
- mc_error("mc_db_util_delete_from_list failed (%d)", ret);
-
- if (request_msg->priv_type == MC_PRIV_TYPE_SERVER) {
- ret = mc_db_util_deactivate_server_table(db_handle, request_msg->msg);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE)
- mc_secure_error("mc_db_util_deactivate_server_table failed (%d)", ret);
- }
-
- mc_db_disconnect(db_handle);
-
- mc_debug_fleave();
-
- return ret;
-}
-
static int __mc_notify_server_updated(const char *server_name, mc_server_state_e state)
{
char *message = NULL;
mc_secure_debug("app_dead(appid) : %s", app_data->app_id);
/* Delete and update information of dead application on database */
- if (MEDIA_CONTROLLER_ERROR_NONE != mc_db_util_remove_dead_application(app_data->uid, app_data->app_id, app_data->priv_type))
+ if (MEDIA_CONTROLLER_ERROR_NONE != mc_db_remove_application(app_data->uid, app_data->app_id, app_data->priv_type))
mc_secure_error("Fail to remove dead application");
/* Sends notification for deactivated server via dbus */
if (MC_STRING_VALID(request_msg->msg)) {
send_msg = _mc_service_add_connection(&(_service_data->connected), request_msg);
if (send_msg == MEDIA_CONTROLLER_ERROR_NONE)
- send_msg = __mc_service_add_to_db(request_msg);
+ send_msg = mc_db_add_application(request_msg->uid, request_msg->msg, request_msg->priv_type);
} else {
mc_error("Wrong message!");
send_msg = MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
if (MC_STRING_VALID(request_msg->msg)) {
send_msg = _mc_service_remove_connection(&(_service_data->connected), request_msg);
if (send_msg == MEDIA_CONTROLLER_ERROR_NONE)
- send_msg = __mc_service_remove_from_db(request_msg);
+ send_msg = mc_db_remove_application(request_msg->uid, request_msg->msg, request_msg->priv_type);
} else {
mc_error("Wrong message!");
send_msg = MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;