Rearrange database connect/disconnect functions 49/205849/1
authorjiyong.min <jiyong.min@samsung.com>
Fri, 15 Feb 2019 06:14:04 +0000 (15:14 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Thu, 9 May 2019 23:00:04 +0000 (08:00 +0900)
 - Remove duplicated connect/disconnect functions
 - Modify the way to get db_path from using group to using tzplatform_context

Change-Id: I637250a3b660bd39a193cb59e5783f8400e54e93

include/media_controller_db.h [changed mode: 0755->0644]
src/media_controller_client.c [changed mode: 0755->0644]
src/media_controller_db.c
src/media_controller_playlist.c [changed mode: 0755->0644]
src/media_controller_server.c [changed mode: 0755->0644]
svc/include/media_controller_db_util.h
svc/media_controller_db_util.c [changed mode: 0755->0644]
svc/media_controller_svc.c [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index cad6872..874442c
@@ -18,9 +18,8 @@
 #define __TIZEN_MULTIMEDIA_MEDIA_CONTROLLER_DB_H__
 
 #include <bundle.h>
+#include <media_controller_db_util.h>
 
-int mc_db_connect(void **db_handle);
-int mc_db_disconnect(void *db_handle);
 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);
old mode 100755 (executable)
new mode 100644 (file)
index c6b4a6c..a7844e4
@@ -383,7 +383,7 @@ static int __mc_client_create(media_controller_client_s **mc_client)
                goto Error;
        }
 
-       ret = mc_db_connect(&_client->db_handle);
+       ret = mc_db_connect(&_client->db_handle, getuid(), FALSE);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("error in connecting to DB %d", ret);
                goto Error;
index a60de1a3d207b80687868badc5ba370c885e93cb..f2c4f075c4624896bb6cdd4998a1c2163d79dfd7 100644 (file)
 */
 
 #include <unistd.h>
-#include <stdlib.h>
 #include <string.h>
-#include <grp.h>
-#include <pwd.h>
 #include <stdio.h>
-#include <tzplatform_config.h>
 
 #include "media_controller_private.h"
 #include "media_controller_db.h"
@@ -50,15 +46,6 @@ typedef enum {
        MC_SERVER_FIELD_REPEAT_MODE,
 } server_table_field_e;
 
-static int __mc_db_busy_handler(void *pData, int count)
-{
-       MC_MILLISEC_SLEEP(50);
-
-       mc_debug("mc_db_busy_handler called : %d", count);
-
-       return 100 - count;
-}
-
 static int __mc_db_update_db(mc_priv_type_e priv_type, const char *sql_str)
 {
        return mc_ipc_send_message_to_server(MC_MSG_DB_UPDATE, priv_type, sql_str);
@@ -182,86 +169,6 @@ static int __mc_db_get_text_value_of_key(void *handle, const char *server_name,
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
-static char* __mc_get_db_name(uid_t uid)
-{
-       char result_psswd[MC_FILE_PATH_LEN_MAX] = {0, };
-       char *result_psswd_rtn = NULL;
-       char * dir = NULL;
-
-       memset(result_psswd, 0, sizeof(result_psswd));
-
-       struct passwd pwd;
-       struct passwd *pwd_result = NULL;
-       char buf_pw[MC_FILE_PATH_LEN_MAX];
-
-       int ret = getpwuid_r(uid, &pwd, buf_pw, MC_FILE_PATH_LEN_MAX, &pwd_result);
-       mc_retvm_if((ret != 0 || pwd_result == NULL), NULL, "getpwuid_r(%d) returns NULL !", uid);
-
-       struct group grp;
-       struct group *grp_result = NULL;
-       char buf_gr[MC_FILE_PATH_LEN_MAX];
-
-       ret = getgrnam_r("users", &grp, buf_gr, MC_FILE_PATH_LEN_MAX, &grp_result);
-       mc_retvm_if((ret != 0 || grp_result == NULL), NULL, "getgrnam_r(users) returns NULL!");
-
-       /* Compare git_t type and not group name */
-       if (grp_result->gr_gid != pwd_result->pw_gid) {
-               mc_error("UID [%d] does not belong to 'users' group!", uid);
-               return NULL;
-       }
-       snprintf(result_psswd, sizeof(result_psswd), "%s/.applications/dbspace/%s", pwd_result->pw_dir, MC_DB_NAME);
-
-       dir = strrchr(result_psswd, '/');
-       if (!dir)
-               return strdup(result_psswd);
-
-       result_psswd_rtn = strdup(result_psswd);
-
-       return result_psswd_rtn;
-}
-
-int mc_db_connect(void **handle)
-{
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       sqlite3 *db_handle = NULL;
-
-       mc_debug_fenter();
-
-       mc_retvm_if(handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
-
-       /*Connect DB*/
-       char * db_name = NULL;
-       db_name = __mc_get_db_name(getuid());
-       mc_retvm_if(db_name == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "error __mc_get_db_name");
-
-       ret = sqlite3_open_v2(db_name, &db_handle, SQLITE_OPEN_READONLY, NULL);
-       if (SQLITE_OK != ret) {
-               mc_error("error when db open [%s]", db_name);
-               *handle = NULL;
-               MC_SAFE_FREE(db_name);
-
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
-       }
-
-       MC_SAFE_FREE(db_name);
-
-       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "db_handle is NULL");
-
-       /*Register busy handler*/
-       ret = sqlite3_busy_handler(db_handle, __mc_db_busy_handler, NULL);
-       if (SQLITE_OK != ret) {
-               mc_error("error when register busy handler %s", sqlite3_errmsg(db_handle));
-               sqlite3_close_v2(db_handle);
-               *handle = NULL;
-
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
-       }
-
-       *handle = db_handle;
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
-}
-
 static int __mc_db_get_count(void *handle, const char *sql_str)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
@@ -899,25 +806,6 @@ int mc_db_delete_client_address_from_client_list(const char *address)
        return ret;
 }
 
-int mc_db_disconnect(void *handle)
-{
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       sqlite3 *db_handle = (sqlite3 *)handle;
-
-       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
-
-       ret = sqlite3_close_v2(db_handle);
-       if (SQLITE_OK != ret) {
-               mc_error("error when db close");
-               mc_error("Error : %s", sqlite3_errmsg(db_handle));
-               db_handle = NULL;
-
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
-       }
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
-}
-
 int mc_db_create_server_table(const char *server_name)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
old mode 100755 (executable)
new mode 100644 (file)
index b9330a6..d21e6e3
@@ -86,7 +86,7 @@ int _mc_playlist_update(mc_priv_type_e type, const char *controller_name, mc_pla
                        }
                }
        } else {
-               ret = mc_db_connect(&db_handle);
+               ret = mc_db_connect(&db_handle, getuid(), FALSE);
                mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail to mc_db_connect [%d]", ret);
 
                is_exist = _mc_db_is_playlist_exist(db_handle, _playlist->server_name, _playlist->playlist_name);
@@ -213,7 +213,7 @@ int mc_playlist_foreach_item(mc_playlist_h playlist, mc_playlist_item_cb callbac
        mc_retvm_if(_playlist == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid playlist");
        mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid callback");
 
-       ret = mc_db_connect(&db_handle);
+       ret = mc_db_connect(&db_handle, getuid(), FALSE);
        mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail mc_db_connect [%d]", ret);
 
        if (mc_db_is_server_table_exist(db_handle, _playlist->server_name) == TRUE)
old mode 100755 (executable)
new mode 100644 (file)
index 004af8a..fcdb0cc
@@ -84,7 +84,7 @@ static int __mc_server_create(media_controller_server_s **mc_server)
                goto ERROR;
        }
 
-       ret = mc_db_connect(&(_server->db_handle));
+       ret = mc_db_connect(&(_server->db_handle), getuid(), FALSE);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("fail mc_db_connect [%d]", ret);
                goto ERROR;
index 3bcdaef8909935f7f21d18a8f57a3933e76886cc..2989036d036522d752f8ef8b5d448a4bfd8abffa 100644 (file)
 #ifndef __TIZEN_MULTIMEDIA_MEDIA_CONTROLLER_DB_UTIL_H__
 #define __TIZEN_MULTIMEDIA_MEDIA_CONTROLLER_DB_UTIL_H__
 
-#include <sys/types.h>
+#include <glib.h>
+
+char *mc_db_get_db_path(uid_t uid);
+int mc_db_connect(void **handle, uid_t uid, gboolean needwrite);
+int mc_db_disconnect(void *handle);
 
-int mc_db_util_connect(void **handle, uid_t uid);
-int mc_db_util_disconnect(void *handle);
-int mc_db_util_get_db_name(uid_t uid, char **db_name);
 int mc_db_util_check_integrity(void *handle);
 int mc_db_util_remove_db(uid_t uid);
 int mc_db_util_create_tables(void *handle);
old mode 100755 (executable)
new mode 100644 (file)
index 734d8d4..55ae159
 */
 #include <unistd.h>
 #include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
-#include <grp.h>
-#include <pwd.h>
 #include <sqlite3.h>
 #include <tzplatform_config.h>
 #include <gio/gio.h>
 #define DB_UPDATE_STATE_PLAYBACK               "UPDATE '%q' SET server_state=%d, playback_state=%d;"
 #define DB_DROP_TABLE                          "DROP TABLE IF EXISTS '%q';"
 
-static int __mc_db_util_busy_handler(void *pData, int count)
+#define MC_DB_NAME             ".media_controller.db"
+#define REGULAR_USER   5000
+static GMutex tzplatform_mutex;
+
+static char *__mc_db_get_user_path(uid_t uid)
+{
+       int ret = 0;
+       struct tzplatform_context *ctx = NULL;
+       char *path = NULL;
+
+       mc_retvm_if(uid < REGULAR_USER, NULL, "Invalid uid");
+
+       g_mutex_lock(&tzplatform_mutex);
+
+       ret = tzplatform_context_create(&ctx);
+       if (ret != 0) {
+               mc_secure_error("Fail tzplatform_context_create");
+               goto ERROR;
+       }
+
+       ret = tzplatform_context_set_user(ctx, uid);
+       if (ret != 0) {
+               mc_secure_error("Fail tzplatform_context_set_user");
+               goto ERROR;
+       }
+
+       path = g_strdup(tzplatform_context_mkpath(ctx, TZ_USER_DB, MC_DB_NAME));
+       if (!MC_STRING_VALID(path))
+               mc_secure_error("Fail to get the path");
+
+ERROR:
+       if (ctx != NULL)
+               tzplatform_context_destroy(ctx);
+
+       g_mutex_unlock(&tzplatform_mutex);
+
+       return path;
+}
+
+static int __mc_db_busy_handler(void *pData, int count)
 {
        MC_MILLISEC_SLEEP(50);
 
-       mc_debug("mc_db_busy_handler called : %d", count);
+       mc_debug("__mc_db_busy_handler called : %d", count);
 
        return 100 - count;
 }
 
+static int __mc_db_disable_journal_mode(sqlite3 *handle)
+{
+       int ret = SQLITE_OK;
+       char *sql = NULL;
+
+       mc_retvm_if(handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+
+       sql = sqlite3_mprintf("%s", "PRAGMA journal_mode = OFF");
+       mc_retvm_if(!MC_STRING_VALID(sql), MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "SQL string is null");
+
+       ret = sqlite3_exec(handle, sql, NULL, NULL, NULL);
+       SQLITE3_SAFE_FREE(sql);
+       mc_retvm_if(SQLITE_OK != ret, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "SQL Error[%s] when change the journal mode", sqlite3_errmsg(handle));
+
+       return MEDIA_CONTROLLER_ERROR_NONE;
+}
+
 static int __mc_foreach_table_list(void *handle, GList **list)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
@@ -250,49 +303,6 @@ static int __mc_update_dead_server(void *handle, const char *server_name)
        return ret;
 }
 
-static char* __mc_get_db_name(uid_t uid)
-{
-       char result_psswd[MC_FILE_PATH_LEN_MAX] = {0, };
-       char *result_psswd_rtn = NULL;
-       struct group *grpinfo = NULL;
-       char * dir = NULL;
-
-       memset(result_psswd, 0, sizeof(result_psswd));
-       if (uid == getuid()) {
-               MC_SAFE_STRLCPY(result_psswd, MC_DB_NAME, sizeof(result_psswd));
-               grpinfo = getgrnam("users");
-               if (grpinfo == NULL) {
-                       mc_error("getgrnam(users) returns NULL !");
-                       return NULL;
-               }
-       } else {
-               struct passwd *userinfo = getpwuid(uid);
-               if (userinfo == NULL) {
-                       mc_error("getpwuid(%d) returns NULL !", uid);
-                       return NULL;
-               }
-               grpinfo = getgrnam("users");
-               if (grpinfo == NULL) {
-                       mc_error("getgrnam(users) returns NULL !");
-                       return NULL;
-               }
-               /* Compare git_t type and not group name */
-               if (grpinfo->gr_gid != userinfo->pw_gid) {
-                       mc_error("UID [%d] does not belong to 'users' group!", uid);
-                       return NULL;
-               }
-               snprintf(result_psswd, sizeof(result_psswd), "%s/.applications/dbspace/%s", userinfo->pw_dir, MC_DB_NAME);
-       }
-
-       dir = strrchr(result_psswd, '/');
-       if (!dir)
-               return strdup(result_psswd);
-
-       result_psswd_rtn = strdup(result_psswd);
-
-       return result_psswd_rtn;
-}
-
 int mc_safe_strtoi(const char *buffer, int *value)
 {
        char *end = NULL;
@@ -329,79 +339,71 @@ int mc_safe_strtoull(const char *buffer, unsigned long long *value)
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
-int mc_db_util_connect(void **handle, uid_t uid)
+char *mc_db_get_db_path(uid_t uid)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       char *db_path = NULL;
+
+       if (uid == getuid())
+               db_path = g_strdup(tzplatform_mkpath(TZ_USER_DB, MC_DB_NAME));
+       else
+               db_path = __mc_db_get_user_path(uid);
+
+       //mc_secure_debug("DB path [%s]", db_path);
+
+       return db_path;
+}
+
+int mc_db_connect(void **handle, uid_t uid, gboolean needwrite)
+{
+       int ret = SQLITE_OK;
        sqlite3 *db_handle = NULL;
-       char * db_name = NULL;
+       char * db_path = NULL;
        mc_retvm_if(handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
 
        *handle = NULL;
 
-       db_name = __mc_get_db_name(uid);
-       mc_retvm_if(db_name == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "error when get db path");
+       db_path = mc_db_get_db_path(uid);
+       mc_retvm_if(db_path == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "error when get db path");
 
        /*Connect DB*/
-       ret = sqlite3_open_v2(db_name, &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-
-       MC_SAFE_FREE(db_name);
+       if (needwrite)
+               ret = sqlite3_open_v2(db_path, &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+       else
+               ret = sqlite3_open_v2(db_path, &db_handle, SQLITE_OPEN_READONLY, NULL);
 
+       MC_SAFE_G_FREE(db_path);
        mc_retvm_if(SQLITE_OK != ret, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "error when db open");
        mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "db_handle is NULL");
 
        /*Register busy handler*/
-       ret = sqlite3_busy_handler(db_handle, __mc_db_util_busy_handler, NULL);
+       ret = sqlite3_busy_handler(db_handle, __mc_db_busy_handler, NULL);
        if (SQLITE_OK != ret) {
-               mc_error("error when register busy handler %s", sqlite3_errmsg(db_handle));
+               mc_error("SQL Error[%s] when register busy handler", sqlite3_errmsg(db_handle));
                sqlite3_close_v2(db_handle);
                return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
        }
 
        *handle = db_handle;
 
-       char *sql = NULL;
-       sql = sqlite3_mprintf("%s", "PRAGMA journal_mode = OFF");
-       mc_retvm_if(!MC_STRING_VALID(sql), MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "SQL string is null");
-       ret = sqlite3_exec(*handle, sql, NULL, NULL, NULL);
-       sqlite3_free(sql);
-       if (SQLITE_OK != ret) {
-
-               if (*handle)
-                       mc_error("[error when change the journal mode] %s", sqlite3_errmsg(*handle));
-
+       ret = __mc_db_disable_journal_mode(*handle);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
                sqlite3_close_v2(*handle);
                *handle = NULL;
-
                return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
        }
 
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
-int mc_db_util_disconnect(void *handle)
+int mc_db_disconnect(void *handle)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       int ret = SQLITE_OK;
        sqlite3 *db_handle = (sqlite3 *)handle;
 
        mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
 
        ret = sqlite3_close_v2(db_handle);
-       if (SQLITE_OK != ret) {
-               mc_error("error when db close");
-               mc_error("Error : %s", sqlite3_errmsg(db_handle));
-               db_handle = NULL;
-
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
-       }
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
-}
-
-int mc_db_util_get_db_name(uid_t uid, char **db_name)
-{
-       *db_name = __mc_get_db_name(uid);
-
-       mc_retvm_if(*db_name == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "error when get db path");
+       mc_retvm_if(SQLITE_OK != ret, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "SQL Error[%s] when db open", sqlite3_errmsg(db_handle));
 
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
@@ -442,23 +444,19 @@ int mc_db_util_check_integrity(void *handle)
 int mc_db_util_remove_db(uid_t uid)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char * db_name = NULL;
+       char * db_path = NULL;
        GFile *db_file = NULL;
        gboolean result = FALSE;
        GError *g_error = NULL;
 
        mc_warning("The db is abnormal. So it will be removed.");
 
-       db_name = __mc_get_db_name(uid);
-       mc_retvm_if(db_name == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "error when get db path");
+       db_path = mc_db_get_db_path(uid);
+       mc_retvm_if(db_path == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "error when get db path");
 
-       db_file = g_file_new_for_path(db_name);
-       if (db_file == NULL) {
-               mc_error("could not open file");
-               MC_SAFE_FREE(db_name);
-               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
-       }
-       MC_SAFE_FREE(db_name);
+       db_file = g_file_new_for_path(db_path);
+       MC_SAFE_G_FREE(db_path);
+       mc_retvm_if(db_file == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "could not open file");
 
        result = g_file_delete(db_file, NULL, &g_error);
        if (!result) {
@@ -727,15 +725,15 @@ int mc_db_parse_and_update_db(uid_t uid, const char *data, int data_size)
 ERROR:
 
        if (sql_str != NULL) {
-               ret = mc_db_util_connect(&_db_handle, uid);
+               ret = mc_db_connect(&_db_handle, uid, TRUE);
                if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-                       mc_error("mc_db_util_connect error : %d", ret);
+                       mc_error("mc_db_connect error : %d", ret);
 
                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);
 
-               mc_db_util_disconnect(_db_handle);
+               mc_db_disconnect(_db_handle);
 
                if (!is_query_from_client)
                        SQLITE3_SAFE_FREE(sql_str);
@@ -754,8 +752,8 @@ int mc_db_util_remove_dead_application(uid_t uid, const char *app_id, const mc_p
 
        mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "app_id is NULL");
 
-       ret = mc_db_util_connect(&db_handle, uid);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "mc_db_util_connect error : %d", ret);
+       ret = mc_db_connect(&db_handle, uid, TRUE);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "mc_db_connect error : %d", ret);
 
        /* Delete application from server/client list */
        if (priv_type == MC_PRIV_TYPE_SERVER)
@@ -776,7 +774,7 @@ int mc_db_util_remove_dead_application(uid_t uid, const char *app_id, const mc_p
                        mc_secure_error("__mc_drop_server_table error : %d", ret);
        }
 
-       mc_db_util_disconnect(db_handle);
+       mc_db_disconnect(db_handle);
 
        return ret;
 }
old mode 100755 (executable)
new mode 100644 (file)
index c3b4019..24c6fd4
@@ -253,36 +253,36 @@ static int _mc_service_check_db(uid_t uid)
 {
        int res = MEDIA_CONTROLLER_ERROR_NONE;
        void *db_handle = NULL;
-       char *db_name = NULL;
+       char *db_path = NULL;
        struct stat buf;
 
-       res = mc_db_util_get_db_name(uid, &db_name);
-       mc_retvm_if(res != MEDIA_CONTROLLER_ERROR_NONE, res, "Failed to get the db_name");
+       db_path = mc_db_get_db_path(uid);
+       mc_retvm_if(db_path == NULL, res, "Failed to get the db_path");
 
        /* Check the database exists */
-       if (!g_file_test(db_name, G_FILE_TEST_EXISTS)) {
+       if (!g_file_test(db_path, G_FILE_TEST_EXISTS)) {
                mc_error("[NO-ERROR] DB is not created yet, do not need to check DB");
-               MC_SAFE_FREE(db_name);
+               MC_SAFE_G_FREE(db_path);
                return MEDIA_CONTROLLER_ERROR_NONE;
        }
 
        /* Check the size of database */
-       if (stat(db_name, &buf) == 0) {
+       if (stat(db_path, &buf) == 0) {
                if (buf.st_size == 0) {
                        mc_warning("The size of database is error");
-                       MC_SAFE_FREE(db_name);
+                       MC_SAFE_G_FREE(db_path);
                        return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
                }
        } else {
                mc_stderror("stat failed");
-               MC_SAFE_FREE(db_name);
+               MC_SAFE_G_FREE(db_path);
                return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
        }
 
-       MC_SAFE_FREE(db_name);
+       MC_SAFE_G_FREE(db_path);
 
        /* Connect media controller DB*/
-       res = mc_db_util_connect(&db_handle, uid);
+       res = mc_db_connect(&db_handle, uid, TRUE);
        if (res != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("Failed to connect DB");
                return res;
@@ -291,12 +291,12 @@ static int _mc_service_check_db(uid_t uid)
        res = mc_db_util_check_integrity(db_handle);
        if (res != MEDIA_CONTROLLER_ERROR_NONE) {
                mc_error("check interity failed");
-               mc_db_util_disconnect(db_handle);
+               mc_db_disconnect(db_handle);
                return res;
        }
 
        /* Disconnect media controller DB*/
-       res = mc_db_util_disconnect(db_handle);
+       res = mc_db_disconnect(db_handle);
        if (res != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Failed to disconnect DB");
 
@@ -309,7 +309,7 @@ static int _mc_service_reset_db(uid_t uid)
        void *db_handle = NULL;
 
        /* Connect media controller DB*/
-       res = mc_db_util_connect(&db_handle, uid);
+       res = mc_db_connect(&db_handle, uid, TRUE);
        mc_retvm_if(res != MEDIA_CONTROLLER_ERROR_NONE, res, "Failed to connect DB");
 
        /* Destroy tables */
@@ -328,7 +328,7 @@ static int _mc_service_reset_db(uid_t uid)
                mc_error("mc_db_util_init_latest_server_table failed [%d]", res);
 
        /* Disconnect media controller DB*/
-       res = mc_db_util_disconnect(db_handle);
+       res = mc_db_disconnect(db_handle);
        if (res != MEDIA_CONTROLLER_ERROR_NONE)
                mc_error("Failed to disconnect DB");