#cynara-session
PKG_CHECK_MODULES(CYNARA_SESSION, cynara-session)
AC_SUBST(CYNARA_SESSION_CFLAGS)
-AC_SUBST(CYNARA_SESSION_CFLAGS)
+AC_SUBST(CYNARA_SESSION_LIBS)
#ticker noti library
PKG_CHECK_MODULES(STATUS, notification)
extern "C" {
#endif
+#include <stdbool.h>
+
typedef void MediaDBHandle; /**< Handle */
-int media_db_connect(MediaDBHandle **handle, uid_t uid);
+int media_db_connect(MediaDBHandle **handle, uid_t uid, bool needWrite);
int media_db_disconnect(MediaDBHandle *handle);
static __thread int g_list_idx = 0;
static int __media_db_busy_handler(void *pData, int count);
-static int __media_db_connect_db_with_handle(sqlite3 **db_handle, uid_t uid);
+static int __media_db_connect_db_with_handle(sqlite3 **db_handle, uid_t uid, bool needWrite);
static int __media_db_disconnect_db_with_handle(sqlite3 *db_handle);
static void __media_db_destroy_sql_list()
return result_psswd;
}
-static int __media_db_connect_db_with_handle(sqlite3 **db_handle,uid_t uid)
+static int __media_db_connect_db_with_handle(sqlite3 **db_handle,uid_t uid, bool needWrite)
{
- int ret = MS_MEDIA_ERR_NONE;
+ int ret = SQLITE_OK;
/*Connect DB*/
- ret = db_util_open(__media_get_media_DB(uid), db_handle, DB_UTIL_REGISTER_HOOK_METHOD);
-
+ if (needWrite) {
+ ret = db_util_open_with_options(__media_get_media_DB(uid), db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+ } else {
+ ret = db_util_open_with_options(__media_get_media_DB(uid), db_handle, SQLITE_OPEN_READONLY, NULL);
+ }
if (SQLITE_OK != ret) {
-
MSAPI_DBG_ERR("error when db open [%s]", __media_get_media_DB(uid));
*db_handle = NULL;
return MS_MEDIA_ERR_DB_CONNECT_FAIL;
MSAPI_DBG_ERR("[error when register busy handler] %s\n", sqlite3_errmsg(*db_handle));
}
- db_util_close(*db_handle);
+ sqlite3_close(*db_handle);
*db_handle = NULL;
return MS_MEDIA_ERR_DB_CONNECT_FAIL;
return ret;
}
-int media_db_connect(MediaDBHandle **handle, uid_t uid)
+int media_db_connect(MediaDBHandle **handle, uid_t uid, bool needWrite)
{
int ret = MS_MEDIA_ERR_NONE;
sqlite3 * db_handle = NULL;
MSAPI_DBG_FUNC();
- ret = __media_db_connect_db_with_handle(&db_handle,uid);
+ ret = __media_db_connect_db_with_handle(&db_handle,uid, needWrite);
MSAPI_RETV_IF(ret != MS_MEDIA_ERR_NONE, ret);
*handle = db_handle;
<request>
<domain name="_" />
</request>
+ <assign>
+ <filesystem path="/usr/bin/mediadb-update" exec_label="System" />
+ </assign>
</manifest>
Name: media-server
Summary: File manager service server.
-Version: 0.2.57
+Version: 0.2.58
Release: 0
Group: Multimedia/Service
License: Apache-2.0
#include <tzplatform_config.h>
GMainLoop * mainloop = NULL;
-static MediaDBHandle *db_handle = NULL;
int (*svc_connect) (void ** handle, uid_t uid, char ** err_msg);
int (*svc_disconnect) (void * handle, char ** err_msg);
int dir_scan_non_recursive(char *path)
{
- int ret = MS_MEDIA_ERR_NONE;
- ret = media_db_connect(&db_handle,tzplatform_getuid(TZ_USER_NAME));
- if(ret != MS_MEDIA_ERR_NONE){
- printf("Error connect DB failed\n");
- return MS_MEDIA_ERR_DB_CONNECT_FAIL;
- }
return media_directory_scanning_async(path, FALSE, callback, NULL, tzplatform_getuid(TZ_USER_NAME));
}
int dir_scan_recursive(char *path)
{
- int ret = MS_MEDIA_ERR_NONE;
- ret = media_db_connect(&db_handle,tzplatform_getuid(TZ_USER_NAME));
- if(ret != MS_MEDIA_ERR_NONE){
- printf("Error connect DB failed\n");
- return MS_MEDIA_ERR_DB_CONNECT_FAIL;
- }
return media_directory_scanning_async(path, TRUE, callback, NULL, tzplatform_getuid(TZ_USER_NAME));
}
MS_SAFE_FREE(creds.smack);
MS_SAFE_FREE(creds.uid);
- if(media_db_connect(&db_handle, recv_msg.uid) != MS_MEDIA_ERR_NONE) {
+ if(media_db_connect(&db_handle, recv_msg.uid, TRUE) != MS_MEDIA_ERR_NONE) {
MS_DBG_ERR("Failed to connect DB");
goto ERROR;
}
/* Connect Media DB*/
if(db_handle == NULL) {
- if(media_db_connect(&db_handle, recv_msg.uid) != MS_MEDIA_ERR_NONE) {
+ if(media_db_connect(&db_handle, recv_msg.uid, TRUE) != MS_MEDIA_ERR_NONE) {
MS_DBG_ERR("Failed to connect DB");
send_msg = MS_MEDIA_ERR_DB_CONNECT_FAIL;
goto ERROR;