Add storage share code, add debug info and fix double disconnect of DB handle 29/315629/2
authorjosh.merlin <josh.merlin@samsung.com>
Wed, 4 Dec 2024 00:30:46 +0000 (08:30 +0800)
committerJosh Aleczi Merlin <josh.merlin@samsung.com>
Wed, 4 Dec 2024 00:41:12 +0000 (00:41 +0000)
Change-Id: I4d3cb7d8cde4ca9381342b281b5782f3af4c2b1e

lib/media-util-db.c
lib/media-util-register.c
packaging/media-server.spec
src/common/include/media-common-db-svc.h
src/common/media-common-db-svc.c
src/scanner-v2/media-scanner-extract-v2.c
src/scanner-v2/media-scanner-scan-v2.c
src/scanner-v2/media-scanner-socket-v2.c

index cecba1d9d80d714de901fffd0a4a767e52cc7099..a1b6a7b080573a90dad0097d8dbf0c6db009d0e7 100644 (file)
@@ -284,10 +284,8 @@ void media_db_disconnect(sqlite3 *handle)
 {
        MSAPI_DBG_FUNC();
 
-       if (handle) {
+       if (handle)
                sqlite3_close_v2(handle);
-               handle = NULL;
-       }
 }
 
 int media_db_request_update_db(const char *query_str, uid_t uid)
index 55866145ca547a15d0a33b37c6da4507e6a27ab9..c10861cca717b4a5d61d614cd01b34fafb8a830d 100644 (file)
@@ -109,7 +109,7 @@ static gboolean __read_socket(GIOChannel *channel, GIOCondition condition, gpoin
 
 
        MSAPI_DBG_SLOG("complete_path :%s", recv_msg.msg);
-       MSAPI_DBG("pid[%d] result[%d] request_type[%d]", recv_msg.pid, recv_msg.result, req_result.request_type);
+       MSAPI_DBG_INFO("pid[%d] result[%d] request_type[%d]", recv_msg.pid, recv_msg.result, req_result.request_type);
 
        /*NEED MUTEX*/
        g_mutex_lock(&scan_req_mutex);
index 7db8dbbe2bcc911d1cf458b72f131ce53425cbb8..7873e4e5c75f06a4847aa4c241d3e574ef81fe62 100644 (file)
@@ -1,6 +1,6 @@
 Name:       media-server
 Summary:    A server for media content management
-Version:    0.6.11
+Version:    0.6.12
 Release:    0
 Group:      Multimedia/Service
 License:    Apache-2.0
index 7c043c41da6eb6f0e7595cfbb0028b5234fbe3ec..f3ced359fe67a2a53c227bf32c4db0a761ee675c 100644 (file)
@@ -63,6 +63,7 @@ void ms_register_start(bool noti_status, int pid);
 void ms_register_end(uid_t uid);
 
 #ifdef _USE_TVPD_MODE
+int ms_set_subfolder_validity(sqlite3 *handle, const char *path, int validity, uid_t uid);
 int ms_update_folder_time(sqlite3 *handle, char *folder_path, uid_t uid);
 int ms_set_storage_scan_status(const char *storage_id, media_scan_status_e scan_status, uid_t uid);
 int ms_genarate_uuid(char **uuid);
index 11e5bc7c1782be7f3b347578476febafe561e1af..6dc4f7f370dd0b225932c031a15edcef096793bd 100644 (file)
@@ -571,6 +571,17 @@ bool ms_check_support_media_type(const char *path)
 }
 
 #ifdef _USE_TVPD_MODE
+int ms_set_subfolder_validity(sqlite3 *handle, const char *path, int validity, uid_t uid)
+{
+       int ret = MS_MEDIA_ERR_NONE;
+       char *sql = NULL;
+       MS_DBG_RETVM_IF(!MS_STRING_VALID(path), MS_MEDIA_ERR_INVALID_PARAMETER, "path is NULL");
+       sql = sqlite3_mprintf("UPDATE folder SET validity=%d WHERE folder_path = ('%q/' || folder_name);", validity, path);
+       ret = media_db_update_db_direct(sql, uid);
+       sqlite3_free(sql);
+       return ret;
+}
+
 int ms_update_folder_time(sqlite3 *handle, char *folder_path, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
index 0e690a849bb2272b839c1bb78bb94f783588e99e..478c2ce133ed0227f261f98c71f495a39ba5af84 100644 (file)
@@ -257,6 +257,8 @@ NEXT:
                }
 
                ms_disconnect_db(handle);
+               handle = NULL;
+
                usleep(SCAN_SLEEP_TIME);
        }
 
@@ -378,6 +380,7 @@ NEXT:
 
                /*disconnect form media db*/
                ms_disconnect_db(handle);
+               handle = NULL;
 
                /*Active flush */
                malloc_trim(0);
index e07782a82464e702390407814ecee352bfd84275..5d484c24bbeee6bf5ae66758b7b0a976fdeb7366 100644 (file)
@@ -943,6 +943,10 @@ gpointer msc_directory_scan_thread(gpointer data)
                                MS_DBG_WARN("check [%.*s] has been modified !!", MAX_MSG_SIZE, scan_data->msg);
                        }
 
+                       ret = ms_set_subfolder_validity(handle, scan_data->msg, MS_INVALID, scan_data->uid);
+                       if (ret != MS_MEDIA_ERR_NONE)
+                               MS_DBG_ERR("error : %d", ret);
+
                        ret = ms_set_folder_item_validity(handle, scan_data->storage_id, scan_data->msg, MS_INVALID, MS_NON_RECURSIVE, scan_data->uid);
                        if (ret != MS_MEDIA_ERR_NONE)
                                MS_DBG_ERR("error : %d", ret);
@@ -995,6 +999,8 @@ NEXT:
                MS_DBG_WARN("DIRECTORY SCAN END [%d]", ret);
 
                ms_disconnect_db(handle);
+               handle = NULL;
+
                usleep(SCAN_SLEEP_TIME);
        }
 
@@ -1101,6 +1107,7 @@ NEXT:
                        goto _POWEROFF;
 
                ms_disconnect_db(handle);
+               handle = NULL;
 
                malloc_trim(0);
 
index 923f193f2fec4a25b383e8ffce2ca8bac10d622a..437ce55f06faf658cb6c10b938cede9d9e7ee83c 100644 (file)
@@ -37,6 +37,8 @@ gboolean msc_receive_request(GIOChannel *src, GIOCondition condition, gpointer d
 
        MS_DBG_RETVM_IF(!src, G_SOURCE_CONTINUE, "src is invalid");
 
+       MS_DBG_INFO("received msg in media-scanner");
+
        sockfd = g_io_channel_unix_get_fd(src);
        MS_DBG_RETVM_IF(sockfd < 0, G_SOURCE_CONTINUE, "sock fd is invalid!");