summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhyunho kang <hhstark.kang@samsung.com>2015-09-10 16:41:17 +0900
committerhyunho kang <hhstark.kang@samsung.com>2015-09-10 19:05:09 +0900
commita290aa1e75e5441348192f3ebda367f1e2a0233f (patch)
tree88ad3a23a61bb32558e06847b82d9caffb5ecd57
parentb3f0019b1e8c118e7f96248d143f43a02c05a4e7 (diff)
downloadlibrua-a290aa1e75e5441348192f3ebda367f1e2a0233f.tar.gz
librua-a290aa1e75e5441348192f3ebda367f1e2a0233f.tar.bz2
librua-a290aa1e75e5441348192f3ebda367f1e2a0233f.zip
DB open with READONLY in rua_history_load_db, rua_is_latest_app api.
Change-Id: Ie9a49c4940cf2aca24f3d8248fcba04cfdd00643 Signed-off-by: hyunho kang <hhstark.kang@samsung.com>
-rw-r--r--src/rua.c50
1 files changed, 40 insertions, 10 deletions
diff --git a/src/rua.c b/src/rua.c
index 1e70911..2e2e64c 100644
--- a/src/rua.c
+++ b/src/rua.c
@@ -167,6 +167,11 @@ int rua_history_load_db(char ***table, int *nrows, int *ncols)
char query[QUERY_MAXLEN];
char *db_err = NULL;
char **db_result = NULL;
+ sqlite3 *db = NULL;
+
+ char defname[FILENAME_MAX];
+ const char *rua_db_path = tzplatform_getenv(TZ_USER_DB);
+ snprintf(defname, sizeof(defname), "%s/%s", rua_db_path, RUA_DB_NAME);
if (table == NULL)
return -1;
@@ -175,16 +180,25 @@ int rua_history_load_db(char ***table, int *nrows, int *ncols)
if (ncols == NULL)
return -1;
+ r = db_util_open_with_options(defname, &db, SQLITE_OPEN_READONLY, NULL);
+ if (r) {
+ db_util_close(db);
+ return -1;
+ }
+
snprintf(query, QUERY_MAXLEN,
"select * from %s order by launch_time desc;", RUA_HISTORY);
- r = sqlite3_get_table(_db, query, &db_result, nrows, ncols, &db_err);
+ r = sqlite3_get_table(db, query, &db_result, nrows, ncols, &db_err);
if (r == SQLITE_OK)
*table = db_result;
else
sqlite3_free_table(db_result);
+ if (db)
+ db_util_close(db);
+
return r;
}
@@ -243,14 +257,25 @@ int rua_history_get_rec(struct rua_rec *rec, char **table, int nrows, int ncols,
int rua_is_latest_app(const char *pkg_name)
{
- int r;
+ int r = -1;
sqlite3_stmt *stmt;
const unsigned char *ct;
+ sqlite3 *db;
- if (!pkg_name || !_db)
+ char defname[FILENAME_MAX];
+ const char *rua_db_path = tzplatform_getenv(TZ_USER_DB);
+ snprintf(defname, sizeof(defname), "%s/%s", rua_db_path, RUA_DB_NAME);
+
+ if (!pkg_name)
return -1;
- r = sqlite3_prepare(_db, Q_LATEST, sizeof(Q_LATEST), &stmt, NULL);
+ r = db_util_open_with_options(defname, &db, SQLITE_OPEN_READONLY, NULL);
+ if (r) {
+ db_util_close(db);
+ return -1;
+ }
+
+ r = sqlite3_prepare(db, Q_LATEST, sizeof(Q_LATEST), &stmt, NULL);
if (r != SQLITE_OK) {
return -1;
}
@@ -259,18 +284,23 @@ int rua_is_latest_app(const char *pkg_name)
if (r == SQLITE_ROW) {
ct = sqlite3_column_text(stmt, 0);
if (ct == NULL || ct[0] == '\0') {
- sqlite3_finalize(stmt);
- return -1;
+ r = -1;
+ goto out;
}
if (strncmp(pkg_name, ct, strlen(pkg_name)) == 0) {
- sqlite3_finalize(stmt);
- return 0;
+ r = 0;
+ goto out;
}
}
- sqlite3_finalize(stmt);
- return -1;
+out:
+ if (stmt)
+ sqlite3_finalize(stmt);
+ if (db)
+ db_util_close(db);
+
+ return r;
}
int rua_init(void)