load and unload libmediaservice function once 26/221026/4 accepted/tizen/unified/20191227.142710 submit/tizen/20191227.004023
authorchengyj1985 <yujie.cheng@samsung.com>
Thu, 26 Dec 2019 10:07:28 +0000 (18:07 +0800)
committerhj kim <backto.kim@samsung.com>
Fri, 27 Dec 2019 00:37:37 +0000 (09:37 +0900)
Change-Id: I8e44c5d500f948268606a2a52accd9d50112ad41

src/common/media-common-system.c
src/server/include/media-server-device-block.h
src/server/media-server-db-manage.c
src/server/media-server-device-block.c
src/server/media-server-main.c
src/server/media-server-socket.c

index 493be1b..3d8e6a4 100644 (file)
@@ -342,7 +342,7 @@ static int __ms_gdbus_method_sync(const char *dest, const char *path, const char
 #ifdef _USE_DEVICED_DBUS
 int ms_sys_get_device_list(ms_stg_type_e stg_type, GArray **dev_list)
 {
-       int ret;
+       int ret = MS_MEDIA_ERR_NONE;
        const char *dev_params[MS_STG_TYPE_MAX] = { BLOCK_DEVICE_USB,
                BLOCK_DEVICE_MMC,
                BLOCK_DEVICE_ALL,
@@ -364,7 +364,6 @@ int ms_sys_get_device_list(ms_stg_type_e stg_type, GArray **dev_list)
 #else
 int ms_sys_get_device_list(ms_stg_type_e stg_type, GArray **dev_list)
 {
-       int ret = MS_MEDIA_ERR_NONE;
        int i = 0;
        int count = 0;
        int err = 0;
@@ -372,12 +371,6 @@ int ms_sys_get_device_list(ms_stg_type_e stg_type, GArray **dev_list)
        usb_device_h device;
        char *mount_path = NULL;
 
-       ret = ms_load_functions();
-       if (ret != MS_MEDIA_ERR_NONE) {
-               MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-               return ret;
-       }
-
        err = usb_device_get_device_list(USB_MASS_STORAGE, &list);
        if (err == 0) {
                count = usb_device_list_get_count(list);
@@ -423,12 +416,10 @@ int ms_sys_get_device_list(ms_stg_type_e stg_type, GArray **dev_list)
                usb_device_free_device_list(list);
        } else {
                MS_DBG_ERR("usb_device_get_device_list falied [%d]", err);
-               ret = MS_MEDIA_ERR_INTERNAL;
+               return MS_MEDIA_ERR_INTERNAL;
        }
 
-       ms_unload_functions();
-
-       return ret;
+       return MS_MEDIA_ERR_NONE;
 }
 #endif
 
index ba4559f..1dc47fb 100755 (executable)
@@ -24,7 +24,7 @@
 #include "media-common-system.h"
 
 int ms_storage_insert_handler(const char *mount_path, const char *mount_uuid);
-int ms_storage_remove_handler(const char *mount_path, const char *mount_uuid);
+void ms_storage_remove_handler(const char *mount_path, const char *mount_uuid);
 #ifdef _USE_DEVICED_DBUS
 void ms_device_block_changed_cb(ms_block_info_s *block_info, void *user_data);
 #else
index 2443a0a..3d53d0d 100755 (executable)
@@ -74,18 +74,11 @@ int ms_reset_mediadb(uid_t uid)
 
 static int __ms_remake_mediadb(uid_t uid)
 {
-       int err = MS_MEDIA_ERR_NONE;
        sqlite3 *handle = NULL;
 
        MS_DBG_ERR("THE SIZE OF MEDIA DB REACH THE LIMIT. RESET MEDIA DB.");
 
        /*write read schema*/
-       /*load functions from plusin(s)*/
-       err = ms_load_functions();
-       if (err != MS_MEDIA_ERR_NONE) {
-               MS_DBG_ERR("function load failed [%d]", err);
-               return err;
-       }
 #ifdef _USE_TVPD_MODE
        ms_config_set_int(MS_DB_RESET, 1);
 #endif
@@ -102,9 +95,6 @@ static int __ms_remake_mediadb(uid_t uid)
        /*disconnect form media db*/
        if (handle) ms_disconnect_db(handle);
 
-       /*unload functions*/
-       ms_unload_functions();
-
 #ifdef _USE_TVPD_MODE
        ms_config_set_int(MS_DB_RESET, 0);
 #endif
index 6201f5e..53e0ea6 100644 (file)
@@ -67,12 +67,6 @@ int ms_storage_insert_handler(const char *mount_path, const char *mount_uuid)
        uid_t uid = MEDIA_DEFAULT_UID;
        ms_dir_scan_type_t scan_type = MS_SCAN_ALL;
 
-       ret = ms_load_functions();
-       if (ret != MS_MEDIA_ERR_NONE) {
-               MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-               return ret;
-       }
-
        ms_sys_get_uid(&uid);
        ms_connect_db(&handle, uid);
 
@@ -130,49 +124,29 @@ ERROR:
 
        ms_disconnect_db(handle);
 
-       ms_unload_functions();
-
        return ret;
 }
 
-int ms_storage_remove_handler(const char *mount_path, const char *mount_uuid)
+void ms_storage_remove_handler(const char *mount_path, const char *mount_uuid)
 {
-       int ret = MS_MEDIA_ERR_NONE;
        sqlite3 *handle = NULL;
        uid_t uid = MEDIA_DEFAULT_UID;
 
        if (mount_path != NULL && mount_uuid != NULL) {
-               ret = ms_load_functions();
-               if (ret != MS_MEDIA_ERR_NONE) {
-                       MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-                       return ret;
-               }
-
                ms_sys_get_uid(&uid);
                ms_connect_db(&handle, uid);
                ms_set_storage_validity(handle, mount_uuid, 0, uid);
                ms_send_storage_otg_scan_request(mount_path, mount_uuid, MS_SCAN_INVALID, uid);
 
                ms_disconnect_db(handle);
-
-               ms_unload_functions();
        } else if (mount_path != NULL && g_strcmp0(mount_path, STORAGE_REMOVED) == 0) {
-               ret = ms_load_functions();
-               if (ret != MS_MEDIA_ERR_NONE) {
-                       MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-                       return ret;
-               }
-
                ms_sys_get_uid(&uid);
                ms_connect_db(&handle, uid);
                ms_set_all_storage_validity(handle, 0, uid);
 
                ms_disconnect_db(handle);
-
-               ms_unload_functions();
        }
 
-       return ret;
 }
 
 #ifdef _USE_DEVICED_DBUS
@@ -201,12 +175,6 @@ static void __ms_usb_add_event(const char *mount_path)
        ms_dir_scan_type_t scan_type = MS_SCAN_ALL;
        uid_t uid = MEDIA_DEFAULT_UID;
 
-       ret = ms_load_functions();
-       if (ret != MS_MEDIA_ERR_NONE) {
-               MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-               return;
-       }
-
        ms_connect_db(&handle, uid);
 
        if (mount_path != NULL) {
@@ -257,8 +225,6 @@ ERROR:
 
        ms_disconnect_db(handle);
 
-       ms_unload_functions();
-
        return;
 }
 
@@ -270,11 +236,6 @@ static void __ms_usb_remove_event(const char *mount_path)
        uid_t uid = MEDIA_DEFAULT_UID;
 
        if (mount_path != NULL) {
-               ret = ms_load_functions();
-               if (ret != MS_MEDIA_ERR_NONE) {
-                       MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-                       return;
-               }
 
                ms_connect_db(&handle, uid);
 
@@ -306,8 +267,6 @@ static void __ms_usb_remove_event(const char *mount_path)
                }
 
                ms_disconnect_db(handle);
-
-               ms_unload_functions();
        }
 
        return;
@@ -420,13 +379,6 @@ int ms_check_mounted_storage(uid_t uid)
        sqlite3 *handle = NULL;
        int err;
 
-       /*load functions from plusin(s)*/
-       err = ms_load_functions();
-       if (err != MS_MEDIA_ERR_NONE) {
-               MS_DBG_ERR("function load failed [%d]", err);
-               return ret;
-       }
-
        ms_connect_db(&handle, uid);
 
        ret = __ms_check_mounted_storage_list(&added_list);
index 877c18d..4522bc3 100644 (file)
@@ -170,12 +170,6 @@ void _ms_datadisc_vconf_cb(void *data)
        if (strcmp(disc_type, valid_type) == 0) {
                ms_config_get_int(MS_DISC_STATE, &disc_state);
 
-               ret = ms_load_functions();
-               if (ret != MS_MEDIA_ERR_NONE) {
-                       MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-                       return;
-               }
-
                /* request scanning */
                ms_sys_get_uid(&uid);
 
@@ -231,8 +225,6 @@ void _ms_datadisc_vconf_cb(void *data)
                }
 
                ms_disconnect_db(handle);
-
-               ms_unload_functions();
        }
 
 END:
@@ -401,6 +393,13 @@ int main(int argc, char **argv)
        GIOChannel *channel = NULL;
        bool is_dcm_supported = __ms_is_dcm_supported();
        power_off = false;
+       int ret = 0;
+
+       ret = ms_load_functions();
+       if (ret != MS_MEDIA_ERR_NONE) {
+               MS_DBG_ERR("ms_load_functions failed [%d]", ret);
+               return -1;
+       }
 
 #ifdef _USE_TVPD_MODE
        uid_t uid = MEDIA_DEFAULT_UID;
@@ -432,6 +431,7 @@ int main(int argc, char **argv)
        __ms_new_global_variable();
 
        if (ms_cynara_initialize() != MS_MEDIA_ERR_NONE) {
+               ms_unload_functions();
                MS_DBG_ERR("Failed to initialize cynara");
                return -1;
        }
@@ -480,6 +480,7 @@ int main(int argc, char **argv)
                g_thread_join(dcm_thread);
 
        ms_cynara_finish();
+       ms_unload_functions();
 
        __ms_free_global_variable();
 
@@ -669,12 +670,6 @@ static int __ms_check_disc_status(void)
                        memset(mnt_path, 0x0, sizeof(mnt_path));
                        SAFE_STRLCPY(mnt_path, disc_path, sizeof(mnt_path));
 
-                       ret = ms_load_functions();
-                       if (ret != MS_MEDIA_ERR_NONE) {
-                               MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-                               goto END;
-                       }
-
                        /* request scanning */
                        ms_sys_get_uid(&uid);
 
@@ -702,7 +697,6 @@ static int __ms_check_disc_status(void)
                                ret = ms_insert_storage(handle, DATADISC_STORAGE_ID, mnt_path, uid);
                                if (ret != MS_MEDIA_ERR_NONE) {
                                        MS_DBG_ERR("ms_insert_storage failed");
-                                       ms_unload_functions();
                                        goto END;
                                }
                        }
@@ -710,8 +704,6 @@ static int __ms_check_disc_status(void)
                        ms_send_storage_scan_request(mnt_path, DATADISC_STORAGE_ID, scan_type, uid);
 
                        ms_disconnect_db(handle);
-
-                       ms_unload_functions();
                }
        }
 
@@ -732,18 +724,11 @@ static void __ms_check_mediadb(void)
        sqlite3 *db_handle = NULL;
        int ret = MS_MEDIA_ERR_NONE;
 
-       ret = ms_load_functions();
-       if (ret != MS_MEDIA_ERR_NONE) {
-               MS_DBG_ERR("ms_load_functions failed [%d]", ret);
-               return;
-       }
-
        ms_sys_get_uid(&uid);
 
        ret = ms_connect_db(&db_handle, uid);
        if (ret != MS_MEDIA_ERR_NONE) {
                MS_DBG_ERR("ms_connect_db failed [%d]", ret);
-               ms_unload_functions();
                return;
        }
 
@@ -751,7 +736,6 @@ static void __ms_check_mediadb(void)
        if (ret != MS_MEDIA_ERR_NONE) {
                MS_DBG_ERR("ms_check_db_upgrade failed [%d]", ret);
                ms_disconnect_db(db_handle);
-               ms_unload_functions();
                return;
        }
 
@@ -776,7 +760,6 @@ static void __ms_check_mediadb(void)
 #endif
 
        ms_disconnect_db(db_handle);
-       ms_unload_functions();
 #endif
 
        /* update external storage */
index ecac267..0a6f6c8 100644 (file)
@@ -166,9 +166,8 @@ static int __ms_send_result_to_client(int pid, ms_comm_msg_s *recv_msg)
        return MS_MEDIA_ERR_NONE;
 }
 
-static int __ms_recovery_media_db(uid_t uid)
+static void __ms_recovery_media_db(uid_t uid)
 {
-       int err = MS_MEDIA_ERR_NONE;
        sqlite3 *handle = NULL;
 
        /* stop the child process */
@@ -181,13 +180,6 @@ static int __ms_recovery_media_db(uid_t uid)
        ms_reset_mediadb(uid);
 
        /*write read schema*/
-       /*load functions from plugin(s)*/
-       err = ms_load_functions();
-       if (err != MS_MEDIA_ERR_NONE) {
-               MS_DBG_ERR("function load failed [%d]", err);
-               return err;
-       }
-
        ms_connect_db(&handle, uid);
 
        MS_DBG_WARN("START WRITE SCHEMA");
@@ -199,14 +191,11 @@ static int __ms_recovery_media_db(uid_t uid)
        /*disconnect form media db*/
        if (handle) ms_disconnect_db(handle);
 
-       /*unload functions*/
-       ms_unload_functions();
-
 #ifdef _USE_TVPD_MODE
        ms_check_mounted_storage(uid);
        ms_config_set_int(MS_DB_RESET, 0);
 #endif
-       return MS_MEDIA_ERR_NONE;
+
 }
 
 gboolean ms_read_socket(GIOChannel *src, GIOCondition condition, gpointer user_data)
@@ -260,7 +249,7 @@ gboolean ms_read_socket(GIOChannel *src, GIOCondition condition, gpointer user_d
                break;
        case MS_MSG_MEDIA_DB_MALFORMED:
                /*media DB is corrupted, recovery media DB*/
-               ret = __ms_recovery_media_db(recv_msg.uid);
+               __ms_recovery_media_db(recv_msg.uid);
                goto ERROR;
        default:
                close(client_sock);