summaryrefslogtreecommitdiff
path: root/src/common/media-svc-media-folder.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/media-svc-media-folder.c')
-rwxr-xr-xsrc/common/media-svc-media-folder.c59
1 files changed, 29 insertions, 30 deletions
diff --git a/src/common/media-svc-media-folder.c b/src/common/media-svc-media-folder.c
index f70f3eb..46f3a93 100755
--- a/src/common/media-svc-media-folder.c
+++ b/src/common/media-svc-media-folder.c
@@ -40,7 +40,7 @@ int _media_svc_get_folder_id_by_foldername(sqlite3 *handle, const char *storage_
ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
if (ret != MS_MEDIA_ERR_NONE) {
if (ret == MS_MEDIA_ERR_DB_NO_RECORD)
- media_svc_debug("there is no folder.");
+ media_svc_debug("No record");
else
media_svc_error("error when _media_svc_get_folder_id_by_foldername. err = [%d]", ret);
@@ -80,7 +80,7 @@ int _media_svc_get_folder_id_by_foldername_with_validity(sqlite3 *handle, const
return ret;
}
-static int __media_svc_append_folder(const char *storage_id, ms_user_storage_type_e storage_type,
+static int __media_svc_append_folder(bool is_direct, const char *storage_id, ms_user_storage_type_e storage_type,
const char *folder_id, const char *folder_path, bool stack_query, uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
@@ -95,12 +95,15 @@ static int __media_svc_append_folder(const char *storage_id, ms_user_storage_typ
if (_media_svc_check_pinyin_support())
_media_svc_get_pinyin_str(folder_name, &folder_name_pinyin);
/* Sometime SQLITE3 returns NO_RECORD, so need to consider conflict case.. */
- media_svc_debug("UNIQUE:path[%s], storage_uuid[%s]", folder_path, storage_id);
char *sql = sqlite3_mprintf("INSERT OR IGNORE INTO %q (folder_id, folder_path, folder_name, storage_uuid, folder_storage_type, folder_modified_time, folder_name_pinyin) values (%Q, %Q, %Q, %Q, '%d', '%d', %Q); ",
MEDIA_SVC_DB_TABLE_FOLDER, folder_id, folder_path, folder_name, storage_id, storage_type, folder_modified_date, folder_name_pinyin);
if (!stack_query) {
- ret = _media_svc_sql_query(sql, uid);
+ if (is_direct)
+ ret = _media_svc_sql_query_direct(sql, uid);
+ else
+ ret = _media_svc_sql_query(sql, uid);
+
SQLITE3_SAFE_FREE(sql);
} else {
_media_svc_sql_query_add(&g_media_svc_insert_folder_query_list, &sql);
@@ -127,7 +130,7 @@ int _media_svc_update_folder_modified_time_by_folder_uuid(const char *folder_uui
return ret;
}
-static int __media_svc_get_and_append_parent_folder(sqlite3 *handle, const char *storage_id, const char *path, ms_user_storage_type_e storage_type, char *folder_id, uid_t uid)
+static int __media_svc_get_and_append_parent_folder(sqlite3 *handle, bool is_direct, const char *storage_id, const char *path, ms_user_storage_type_e storage_type, char *folder_id, uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
unsigned int next_pos = 0;
@@ -169,7 +172,7 @@ static int __media_svc_get_and_append_parent_folder(sqlite3 *handle, const char
} else {
dir_path = strndup(path, strlen(path));
folder_search_end = TRUE;
- media_svc_error("[No-Error] End Path [%s]", dir_path);
+ media_svc_sec_debug("End Path[%s]", dir_path);
}
if (STRING_VALID(MEDIA_ROOT_PATH_EXTERNAL) && (g_strcmp0(dir_path, MEDIA_ROOT_PATH_EXTERNAL) == 0)) {
@@ -187,13 +190,11 @@ static int __media_svc_get_and_append_parent_folder(sqlite3 *handle, const char
return MS_MEDIA_ERR_INTERNAL;
}
- ret = __media_svc_append_folder(storage_id, storage_type, folder_uuid, dir_path, FALSE, uid);
+ ret = __media_svc_append_folder(is_direct, storage_id, storage_type, folder_uuid, dir_path, FALSE, uid);
if (ret != MS_MEDIA_ERR_NONE)
media_svc_error("__media_svc_append_folder is failed");
- media_svc_error("[No-Error] New Appended folder path [%s], folder_uuid [%s]", dir_path, folder_uuid);
- } else {
- media_svc_error("EXIST dir path : %s", dir_path);
+ media_svc_sec_debug("Append new folder path[%s] uuid[%s]", dir_path, folder_uuid);
}
SAFE_FREE(dir_path);
@@ -209,7 +210,7 @@ static int __media_svc_get_and_append_parent_folder(sqlite3 *handle, const char
return MS_MEDIA_ERR_NONE;
}
-static int __media_svc_update_parent_folder_validity(sqlite3 *handle, const char *storage_id, const char *path, uid_t uid)
+static int __media_svc_update_parent_folder_validity(sqlite3 *handle, bool is_direct, const char *storage_id, const char *path, uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
unsigned int next_pos = 0;
@@ -248,7 +249,7 @@ static int __media_svc_update_parent_folder_validity(sqlite3 *handle, const char
} else {
dir_path = strndup(path, strlen(path));
folder_search_end = TRUE;
- media_svc_error("[No-Error] End Path [%s]", dir_path);
+ media_svc_sec_debug("End Path [%s]", dir_path);
}
if (STRING_VALID(MEDIA_ROOT_PATH_EXTERNAL) && (g_strcmp0(dir_path, MEDIA_ROOT_PATH_EXTERNAL) == 0)) {
@@ -257,7 +258,7 @@ static int __media_svc_update_parent_folder_validity(sqlite3 *handle, const char
continue;
}
- ret = _media_svc_set_folder_validity(handle, storage_id, dir_path, 1, false, uid);
+ ret = _media_svc_set_folder_validity(handle, is_direct, storage_id, dir_path, 1, false, uid);
SAFE_FREE(dir_path);
media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "Fail to set folder validity");
}
@@ -265,7 +266,7 @@ static int __media_svc_update_parent_folder_validity(sqlite3 *handle, const char
return MS_MEDIA_ERR_NONE;
}
-int _media_svc_get_and_append_folder(sqlite3 *handle, const char *storage_id, const char *path, ms_user_storage_type_e storage_type, char *folder_id, uid_t uid)
+int _media_svc_get_and_append_folder(sqlite3 *handle, bool is_direct, const char *storage_id, const char *path, ms_user_storage_type_e storage_type, char *folder_id, uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
int validity = -1;
@@ -273,21 +274,21 @@ int _media_svc_get_and_append_folder(sqlite3 *handle, const char *storage_id, co
ret = _media_svc_get_folder_id_by_foldername_with_validity(handle, storage_id, path, folder_id, uid, &validity);
if (ret == MS_MEDIA_ERR_DB_NO_RECORD)
- ret = __media_svc_get_and_append_parent_folder(handle, storage_id, path, storage_type, folder_id, uid);
+ ret = __media_svc_get_and_append_parent_folder(handle, is_direct, storage_id, path, storage_type, folder_id, uid);
else if (ret == MS_MEDIA_ERR_NONE && validity == 0)
- ret = __media_svc_update_parent_folder_validity(handle, storage_id, path, uid);
+ ret = __media_svc_update_parent_folder_validity(handle, is_direct, storage_id, path, uid);
return ret;
}
-int _media_svc_get_and_append_folder_id_by_path(sqlite3 *handle, const char *storage_id, const char *path, ms_user_storage_type_e storage_type, char *folder_id, uid_t uid)
+int _media_svc_get_and_append_folder_id_by_path(sqlite3 *handle, bool is_direct, const char *storage_id, const char *path, ms_user_storage_type_e storage_type, char *folder_id, uid_t uid)
{
char *dir_path = NULL;
int ret = MS_MEDIA_ERR_NONE;
dir_path = g_path_get_dirname(path);
- ret = _media_svc_get_and_append_folder(handle, storage_id, dir_path, storage_type, folder_id, uid);
+ ret = _media_svc_get_and_append_folder(handle, is_direct, storage_id, dir_path, storage_type, folder_id, uid);
SAFE_FREE(dir_path);
@@ -308,11 +309,11 @@ int _media_svc_get_and_append_folder_id_by_folder_path(sqlite3 *handle, const ch
ret = _media_svc_get_folder_id_by_foldername(handle, storage_id, path_name, folder_id, uid);
if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
- ret = __media_svc_get_and_append_parent_folder(handle, storage_id, path_name, storage_type, folder_id, uid);
+ ret = __media_svc_get_and_append_parent_folder(handle, true, storage_id, path_name, storage_type, folder_id, uid);
} else {
sql = sqlite3_mprintf("UPDATE %q SET validity=1 WHERE storage_uuid = '%q' AND folder_path = '%q';", MEDIA_SVC_DB_TABLE_FOLDER, storage_id, path);
if (!stack_query) {
- ret = _media_svc_sql_query(sql, uid);
+ ret = _media_svc_sql_query_direct(sql, uid);
SQLITE3_SAFE_FREE(sql);
} else {
_media_svc_sql_query_add(&g_media_svc_insert_folder_query_list, &sql);
@@ -324,25 +325,23 @@ int _media_svc_get_and_append_folder_id_by_folder_path(sqlite3 *handle, const ch
return ret;
}
-int _media_svc_set_folder_validity(sqlite3 *handle, const char *storage_id, const char *start_path, int validity, bool is_recursive, uid_t uid)
+int _media_svc_set_folder_validity(sqlite3 *handle, bool is_direct, const char *storage_id, const char *start_path, int validity, bool is_recursive, uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
char *sql = NULL;
- char start_path_id[MEDIA_SVC_UUID_SIZE+1] = {0,};
if (is_recursive) {
- ret = _media_svc_get_folder_id_by_foldername(handle, storage_id, start_path, start_path_id, uid);
- media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "_media_svc_get_folder_id_by_foldername fail");
- media_svc_retvm_if(!STRING_VALID(start_path_id), MS_MEDIA_ERR_INVALID_PARAMETER, "start_path_id is NULL");
-
- sql = sqlite3_mprintf("UPDATE %q SET validity = %d WHERE storage_uuid = '%q' AND (folder_path LIKE '%q/%%' OR folder_id='%q');",
- MEDIA_SVC_DB_TABLE_FOLDER, validity, storage_id, start_path, start_path_id);
+ sql = sqlite3_mprintf("UPDATE %q SET validity=%d WHERE storage_uuid='%q' AND (folder_path LIKE '%q/%%' OR folder_path='%q');",
+ MEDIA_SVC_DB_TABLE_FOLDER, validity, storage_id, start_path, start_path);
} else {
- sql = sqlite3_mprintf("UPDATE %q SET validity = %d WHERE storage_uuid = '%q' AND folder_path='%q';",
+ sql = sqlite3_mprintf("UPDATE %q SET validity=%d WHERE storage_uuid='%q' AND folder_path='%q';",
MEDIA_SVC_DB_TABLE_FOLDER, validity, storage_id, start_path);
}
- ret = _media_svc_sql_query(sql, uid);
+ if (is_direct)
+ ret = _media_svc_sql_query_direct(sql, uid);
+ else
+ ret = _media_svc_sql_query(sql, uid);
SQLITE3_SAFE_FREE(sql);