*query_list = g_list_append(*query_list, sql_str);
}
-static int __parse_and_update_db(uid_t uid, gchar **params)
+static int __parse_db_request(gchar **params, char **sql_str)
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
- char *sql_str = NULL;
+ char *_sql_str = NULL;
int i_value = 0;
int i_value_1 = 0;
int i_value_2 = 0;
unsigned long long llu_value = 0, llu_value2 = 0;
- sqlite3* _db_handle = NULL;
mc_retvm_if(!params, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid params");
+ mc_retvm_if(!sql_str, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid sql_str");
mc_retvm_if((!params[0] || !params[1]),
MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[5], &i_value_2);
if (MC_STRING_VALID(params[6]) && MC_STRING_VALID(params[7])) {
- sql_str = sqlite3_mprintf("UPDATE %q SET playback_state=%d, playback_position=%llu, playback_content_type=%d, age_rating=%d, playlist_name=%Q, playlist_index=%Q WHERE name=%Q",
+ _sql_str = sqlite3_mprintf("UPDATE %q SET playback_state=%d, playback_position=%llu, playback_content_type=%d, age_rating=%d, playlist_name=%Q, playlist_index=%Q WHERE name=%Q",
MC_DB_TABLE_SERVER_INFO, i_value, llu_value, i_value_1, i_value_2, params[6], params[7], params[1]);
} else if (MC_STRING_VALID(params[6])) {
- sql_str = sqlite3_mprintf("UPDATE %q SET playback_state=%d, playback_position=%llu, playback_content_type=%d, age_rating=%d, playlist_index=%Q WHERE name=%Q",
+ _sql_str = sqlite3_mprintf("UPDATE %q SET playback_state=%d, playback_position=%llu, playback_content_type=%d, age_rating=%d, playlist_index=%Q WHERE name=%Q",
MC_DB_TABLE_SERVER_INFO, i_value, llu_value, i_value_1, i_value_2, params[6], params[1]);
} else {
- sql_str = sqlite3_mprintf("UPDATE %q SET playback_state=%d, playback_position=%llu, playback_content_type=%d, age_rating=%d, playlist_name=NULL, playlist_index=NULL WHERE name=%Q",
+ _sql_str = sqlite3_mprintf("UPDATE %q SET playback_state=%d, playback_position=%llu, playback_content_type=%d, age_rating=%d, playlist_name=NULL, playlist_index=NULL WHERE name=%Q",
MC_DB_TABLE_SERVER_INFO, i_value, llu_value, i_value_1, i_value_2, params[1]);
}
} else if (strncmp(MC_DB_CMD_UPDATE_META, params[0], strlen(MC_DB_CMD_UPDATE_META)) == 0) {
- sql_str = sqlite3_mprintf("INSERT OR REPLACE INTO %q VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q)",
+ _sql_str = sqlite3_mprintf("INSERT OR REPLACE INTO %q VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q)",
MC_DB_TABLE_LATEST_META, params[1],
__replace_null(params[2]), __replace_null(params[3]), __replace_null(params[4]), __replace_null(params[5]),
__replace_null(params[6]), __replace_null(params[7]), __replace_null(params[8]), __replace_null(params[9]),
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
- sql_str = sqlite3_mprintf("UPDATE %q SET shuffle_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET shuffle_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_REPEAT, params[0], strlen(MC_DB_CMD_UPDATE_REPEAT)) == 0) {
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
- sql_str = sqlite3_mprintf("UPDATE %q SET repeat_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET repeat_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_LATEST, params[0], strlen(MC_DB_CMD_UPDATE_LATEST)) == 0) {
- sql_str = sqlite3_mprintf("DELETE FROM %q; INSERT INTO %q VALUES ('%q');", MC_DB_TABLE_LATEST_SERVER, MC_DB_TABLE_LATEST_SERVER, params[1]);
+ _sql_str = sqlite3_mprintf("DELETE FROM %q; INSERT INTO %q VALUES ('%q');", MC_DB_TABLE_LATEST_SERVER, MC_DB_TABLE_LATEST_SERVER, params[1]);
} else if (strncmp(MC_DB_CMD_ADD_PLAYLIST, params[0], strlen(MC_DB_CMD_ADD_PLAYLIST)) == 0) {
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
- sql_str = sqlite3_mprintf("INSERT INTO %q(server_name, playlist_name) VALUES (%Q, %Q)", MC_DB_TABLE_PLAYLIST, params[1], params[2]);
+ _sql_str = sqlite3_mprintf("INSERT INTO %q(server_name, playlist_name) VALUES (%Q, %Q)", MC_DB_TABLE_PLAYLIST, params[1], params[2]);
} else if (strncmp(MC_DB_CMD_UPDATE_PLAYLIST, params[0], strlen(MC_DB_CMD_UPDATE_PLAYLIST)) == 0) {
bundle *bundle = NULL;
total_query_len += strlen(query);
}
- sql_str = (char *)calloc(1, total_query_len + 1);
+ _sql_str = (char *)calloc(1, total_query_len + 1);
for (i = 2; i < list_len; i++) {
char *query = NULL;
query = g_list_nth_data(query_list, i);
if (query != NULL) {
- g_strlcat(sql_str, query, total_query_len + 1);
+ g_strlcat(_sql_str, query, total_query_len + 1);
SQLITE3_SAFE_FREE(query);
}
}
query_list = NULL;
} else if (strncmp(MC_DB_CMD_UPDATE_ICON, params[0], strlen(MC_DB_CMD_UPDATE_ICON)) == 0) {
if (params[2])
- sql_str = sqlite3_mprintf("UPDATE %q SET icon_uri=%Q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, params[2], params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET icon_uri=%Q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, params[2], params[1]);
else
- sql_str = sqlite3_mprintf("UPDATE %q SET icon_uri=NULL WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET icon_uri=NULL WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_ABILITY, params[0], strlen(MC_DB_CMD_UPDATE_ABILITY)) == 0) {
mc_retvm_if((!params[2] || !params[3]),
mc_safe_strtoull(params[2], &llu_value);
mc_safe_strtoull(params[3], &llu_value2);
- sql_str = sqlite3_mprintf("UPDATE %q SET ability_decided=%llu, ability_supported=%llu WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, llu_value, llu_value2, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET ability_decided=%llu, ability_supported=%llu WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, llu_value, llu_value2, params[1]);
} else if (strncmp(MC_DB_CMD_REMOVE_PLAYLIST, params[0], strlen(MC_DB_CMD_REMOVE_PLAYLIST)) == 0) {
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
- sql_str = sqlite3_mprintf("DELETE FROM %q WHERE server_name=%Q and playlist_name=%Q", MC_DB_TABLE_PLAYLIST, params[1], params[2]);
+ _sql_str = sqlite3_mprintf("DELETE FROM %q WHERE server_name=%Q and playlist_name=%Q", MC_DB_TABLE_PLAYLIST, params[1], params[2]);
} else if (strncmp(MC_DB_CMD_UPDATE_SUBTITLES, params[0], strlen(MC_DB_CMD_UPDATE_SUBTITLES)) == 0) {
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
- sql_str = sqlite3_mprintf("UPDATE %q SET subtitles_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET subtitles_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_DISPLAY_MODE, params[0], strlen(MC_DB_CMD_UPDATE_DISPLAY_MODE)) == 0) {
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
- sql_str = sqlite3_mprintf("UPDATE %q SET display_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET display_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_DISPLAY_ROTATION, params[0], strlen(MC_DB_CMD_UPDATE_DISPLAY_ROTATION)) == 0) {
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
- sql_str = sqlite3_mprintf("UPDATE %q SET display_rotation=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET display_rotation=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_360, params[0], strlen(MC_DB_CMD_UPDATE_360)) == 0) {
mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
- sql_str = sqlite3_mprintf("UPDATE %q SET spherical_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
+ _sql_str = sqlite3_mprintf("UPDATE %q SET spherical_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else {
mc_error("invalid request [%s]", params[0]);
return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
}
- if (sql_str) {
- ret = mc_db_connect(&_db_handle, uid, TRUE);
- if (ret != MEDIA_CONTROLLER_ERROR_NONE)
- mc_error("mc_db_connect error : %d", ret);
+ *sql_str = _sql_str;
- 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);
+ return ret;
+}
- /* Update vconf */
- if (strncmp(MC_DB_CMD_UPDATE_LATEST, params[0], strlen(MC_DB_CMD_UPDATE_LATEST)) == 0) {
- ret = __mc_update_latest_server_info_to_vconf(params[1], MC_SERVER_STATE_ACTIVATE, MC_PLAYBACK_STATE_PLAYING);
+static int __update_db_request(uid_t uid, gchar **params, const char *sql_str)
+{
+ int ret = MEDIA_CONTROLLER_ERROR_NONE;
+ sqlite3* db_handle = NULL;
+ int i_value = 0;
- } else if (strncmp(MC_DB_CMD_UPDATE_PLAYBACK, params[0], strlen(MC_DB_CMD_UPDATE_PLAYBACK)) == 0) {
- if (__mc_db_is_latest(_db_handle, params[1])) {
- mc_safe_strtoi(params[2], &i_value);
- ret = __mc_update_latest_server_state_to_vconf(MC_SERVER_STATE_ACTIVATE, i_value);
- }
- } else if (strncmp(MC_DB_CMD_UPDATE_PLAYLIST, params[0], strlen(MC_DB_CMD_UPDATE_PLAYLIST)) == 0) {
- MC_SAFE_FREE(sql_str);
- }
+ mc_retvm_if(!params, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid params");
+ mc_retvm_if(!sql_str, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid sql_str");
+ mc_retvm_if((!params[0] || !params[1]),
+ MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
- mc_db_disconnect(_db_handle);
+ ret = mc_db_connect(&db_handle, uid, TRUE);
+ if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+ mc_error("mc_db_connect error : %d", ret);
- SQLITE3_SAFE_FREE(sql_str);
+ 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);
- } else {
- mc_error("sql_str is NULL");
- ret = MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY;
+ /* Update vconf */
+ if (strncmp(MC_DB_CMD_UPDATE_LATEST, params[0], strlen(MC_DB_CMD_UPDATE_LATEST)) == 0) {
+ ret = __mc_update_latest_server_info_to_vconf(params[1], MC_SERVER_STATE_ACTIVATE, MC_PLAYBACK_STATE_PLAYING);
+
+ } else if (strncmp(MC_DB_CMD_UPDATE_PLAYBACK, params[0], strlen(MC_DB_CMD_UPDATE_PLAYBACK)) == 0) {
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
+
+ if (__mc_db_is_latest(db_handle, params[1])) {
+ mc_safe_strtoi(params[2], &i_value);
+ ret = __mc_update_latest_server_state_to_vconf(MC_SERVER_STATE_ACTIVATE, i_value);
+ }
}
+ mc_db_disconnect(db_handle);
+
return ret;
}
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
gchar **params = NULL;
+ char *sql_str = NULL;
mc_retvm_if(!data, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid data");
mc_retvm_if(data_size <= 0 , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid data_size");
params = g_strsplit(data, MC_STRING_DELIMITER, 0);
mc_retvm_if(!params, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail to parsing query");
- ret = __parse_and_update_db(uid, params);
+ ret = __parse_db_request(params, &sql_str);
+ if (ret == MEDIA_CONTROLLER_ERROR_NONE)
+ ret = __update_db_request(uid, params, sql_str);
+ if (strncmp(MC_DB_CMD_UPDATE_PLAYLIST, params[0], strlen(MC_DB_CMD_UPDATE_PLAYLIST)) == 0) {
+ MC_SAFE_FREE(sql_str);
+ } else {
+ SQLITE3_SAFE_FREE(sql_str);
+ }
g_strfreev(params);
return ret;