From 61c94b8f62efc62f96310fcb56d46e5f21591e01 Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Tue, 13 Dec 2016 20:36:47 +0900 Subject: [PATCH] Add parameter for getting user path Change-Id: I5ea88c81810702b7441a32695cf42426cec99a68 Signed-off-by: Minje Ahn --- include/media-svc.h | 2 +- packaging/libmedia-service.spec | 2 +- plugin/media-content-plugin.c | 4 ++-- src/common/media-svc-storage.c | 10 ++++++++-- src/common/media-svc.c | 4 ++-- src/include/common/media-svc-storage.h | 2 +- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/include/media-svc.h b/include/media-svc.h index 1a57126..be9f754 100755 --- a/include/media-svc.h +++ b/include/media-svc.h @@ -80,7 +80,7 @@ int media_svc_insert_storage(MediaSvcHandle *handle, const char *storage_id, con int media_svc_update_storage(MediaSvcHandle *handle, const char *storage_id, const char *storage_path, uid_t uid); int media_svc_delete_storage(MediaSvcHandle *handle, const char *storage_id, const char *storage_name, uid_t uid); int media_svc_set_storage_validity(MediaSvcHandle *handle, const char *storage_id, int validity, uid_t uid); -int media_svc_get_storage_id(MediaSvcHandle *handle, const char *path, char *storage_id); +int media_svc_get_storage_id(MediaSvcHandle *handle, const char *path, char *storage_id, uid_t uid); int media_svc_get_storage_path(MediaSvcHandle *handle, const char *storage_uuid, char **storage_path); int media_svc_get_storage_scan_status(MediaSvcHandle *handle, const char *storage_uuid, media_svc_scan_status_type_e *storage_status); int media_svc_set_storage_scan_status(const char *storage_uuid, media_svc_scan_status_type_e storage_status, uid_t uid); diff --git a/packaging/libmedia-service.spec b/packaging/libmedia-service.spec index ac58c9c..58ff608 100644 --- a/packaging/libmedia-service.spec +++ b/packaging/libmedia-service.spec @@ -1,6 +1,6 @@ Name: libmedia-service Summary: Media information service library for multimedia applications -Version: 0.2.87 +Version: 0.2.88 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 and public domain diff --git a/plugin/media-content-plugin.c b/plugin/media-content-plugin.c index 3218e33..bedbd9e 100755 --- a/plugin/media-content-plugin.c +++ b/plugin/media-content-plugin.c @@ -743,7 +743,7 @@ int set_all_storage_validity(void * handle, int validity, uid_t uid, char **err_ return MEDIA_SVC_PLUGIN_ERROR_NONE; } -int get_storage_id(void * handle, const char *path, char *storage_id, char **err_msg) +int get_storage_id(void * handle, const char *path, char *storage_id, uid_t uid, char **err_msg) { int ret = MEDIA_SVC_PLUGIN_ERROR_NONE; @@ -752,7 +752,7 @@ int get_storage_id(void * handle, const char *path, char *storage_id, char **err return MEDIA_SVC_PLUGIN_ERROR; } - ret = media_svc_get_storage_id(handle, path, storage_id); + ret = media_svc_get_storage_id(handle, path, storage_id, uid); if (ret < 0) { __set_error_message(ret, err_msg); return MEDIA_SVC_PLUGIN_ERROR; diff --git a/src/common/media-svc-storage.c b/src/common/media-svc-storage.c index 4af6f91..30d72ae 100755 --- a/src/common/media-svc-storage.c +++ b/src/common/media-svc-storage.c @@ -196,7 +196,7 @@ int _media_svc_update_storage_validity(const char *storage_id, int validity, uid return ret; } -int _media_svc_get_storage_uuid(sqlite3 *handle, const char *path, char *storage_id) +int _media_svc_get_storage_uuid(sqlite3 *handle, const char *path, char *storage_id, uid_t uid) { int ret = MS_MEDIA_ERR_NONE; sqlite3_stmt *sql_stmt = NULL; @@ -204,12 +204,18 @@ int _media_svc_get_storage_uuid(sqlite3 *handle, const char *path, char *storage char *storage_path = NULL; char *remain_path = NULL; int remain_len = 0; + char *internal_path = NULL; - if (STRING_VALID(MEDIA_ROOT_PATH_INTERNAL) && strncmp(path, MEDIA_ROOT_PATH_INTERNAL, strlen(MEDIA_ROOT_PATH_INTERNAL)) == 0) { + internal_path = _media_svc_get_path(uid); + + if (STRING_VALID(internal_path) && strncmp(path, internal_path, strlen(internal_path)) == 0) { _strncpy_safe(storage_id, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_UUID_SIZE+1); + SAFE_FREE(internal_path); return MS_MEDIA_ERR_NONE; } + SAFE_FREE(internal_path); + remain_path = strstr(path + (STRING_VALID(MEDIA_ROOT_PATH_USB) ? strlen(MEDIA_ROOT_PATH_USB) : 0) + 1, "/"); if (remain_path != NULL) remain_len = strlen(remain_path); diff --git a/src/common/media-svc.c b/src/common/media-svc.c index a6781d5..916d120 100755 --- a/src/common/media-svc.c +++ b/src/common/media-svc.c @@ -1407,7 +1407,7 @@ int media_svc_set_storage_validity(MediaSvcHandle *handle, const char *storage_i return ret; } -int media_svc_get_storage_id(MediaSvcHandle *handle, const char *path, char *storage_id) +int media_svc_get_storage_id(MediaSvcHandle *handle, const char *path, char *storage_id, uid_t uid) { int ret = MS_MEDIA_ERR_NONE; sqlite3 * db_handle = (sqlite3 *)handle; @@ -1415,7 +1415,7 @@ int media_svc_get_storage_id(MediaSvcHandle *handle, const char *path, char *sto media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL"); media_svc_retvm_if(path == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "path is NULL"); - ret = _media_svc_get_storage_uuid(db_handle, path, storage_id); + ret = _media_svc_get_storage_uuid(db_handle, path, storage_id, uid); return ret; } diff --git a/src/include/common/media-svc-storage.h b/src/include/common/media-svc-storage.h index 0118abd..f83c265 100755 --- a/src/include/common/media-svc-storage.h +++ b/src/include/common/media-svc-storage.h @@ -31,7 +31,7 @@ int _media_svc_append_storage(const char *storage_id, const char *storage_name, int _media_svc_update_storage_path(sqlite3 *handle, const char *storage_id, const char *path, uid_t uid); int _media_svc_delete_storage(const char *storage_id, const char *storage_name, uid_t uid); int _media_svc_update_storage_validity(const char *storage_id, int validity, uid_t uid); -int _media_svc_get_storage_uuid(sqlite3 *handle, const char *path, char *storage_id); +int _media_svc_get_storage_uuid(sqlite3 *handle, const char *path, char *storage_id, uid_t uid); int _media_svc_get_storage_type(sqlite3 *handle, const char *storage_id, media_svc_storage_type_e *storage_type); int _media_svc_get_storage_path(sqlite3 *handle, const char *storage_id, char **storage_path); int _media_svc_get_storage_scan_status(sqlite3 *handle, const char*storage_id, media_svc_scan_status_type_e *scan_status); -- 2.7.4