Apply force option to trigger the updates forcely
[platform/framework/web/livebox-service.git] / src / livebox-service.c
index 00dfd55..279b874 100644 (file)
@@ -323,7 +323,7 @@ static sqlite3 *open_db(void)
        if (!s_info.handle) {
                int ret;
 
-               ret = db_util_open(s_info.dbfile, &handle, DB_UTIL_REGISTER_HOOK_METHOD);
+               ret = db_util_open_with_options(s_info.dbfile, &handle, SQLITE_OPEN_READONLY, NULL);
                if (ret != SQLITE_OK) {
                        ErrPrint("Failed to open a DB\n");
                        return NULL;
@@ -440,7 +440,7 @@ EAPI int livebox_service_change_period(const char *pkgname, const char *id, doub
        return ret;
 }
 
-EAPI int livebox_service_trigger_update(const char *pkgname, const char *id, const char *cluster, const char *category, int force)
+EAPI int livebox_service_trigger_update_with_content(const char *pkgname, const char *id, const char *cluster, const char *category, const char *content, int force)
 {
        struct packet *packet;
        struct packet *result;
@@ -457,9 +457,13 @@ EAPI int livebox_service_trigger_update(const char *pkgname, const char *id, con
                return LB_STATUS_ERROR_CANCEL;
        }
 
-       uri = util_id_to_uri(id);
-       if (!uri) {
-               return LB_STATUS_ERROR_MEMORY;
+       if (id) {
+               uri = util_id_to_uri(id);
+               if (!uri) {
+                       return LB_STATUS_ERROR_MEMORY;
+               }
+       } else {
+               uri = NULL;
        }
 
        if (!cluster) {
@@ -470,7 +474,11 @@ EAPI int livebox_service_trigger_update(const char *pkgname, const char *id, con
                category = "default";
        }
 
-       packet = packet_create("service_update", "ssss", pkgname, uri, cluster, category);
+       packet = packet_create("service_update", "sssssi", pkgname, uri, cluster, category, content, force);
+       /*!
+        * \note
+        * "free" function accepts NULL
+        */
        free(uri);
        if (!packet) {
                ErrPrint("Failed to create a packet for service_update\n");
@@ -495,6 +503,11 @@ EAPI int livebox_service_trigger_update(const char *pkgname, const char *id, con
        return ret;
 }
 
+EAPI int livebox_service_trigger_update(const char *pkgname, const char *id, const char *cluster, const char *category, int force)
+{
+       return livebox_service_trigger_update_with_content(pkgname, id, cluster, category, NULL, force);
+}
+
 /*!
  * pkgid == Package Id (not the livebox id)
  */
@@ -2193,27 +2206,27 @@ EAPI char *livebox_service_lb_script_path(const char *pkgid)
 
        ret = sqlite3_prepare_v2(handle, "SELECT pkgmap.appid, provider.box_src FROM provider, pkgmap WHERE pkgmap.pkgid = ? AND provider.pkgid = ?", -1, &stmt, NULL);
        if (ret != SQLITE_OK) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s, pkgid(%s), ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                goto out;
        }
 
        ret = sqlite3_bind_text(stmt, 1, pkgid, -1, SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s, pkgid(%s), ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                sqlite3_finalize(stmt);
                goto out;
        }
 
        ret = sqlite3_bind_text(stmt, 2, pkgid, -1, SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s, pkgid(%s), ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                sqlite3_finalize(stmt);
                goto out;
        }
 
        ret = sqlite3_step(stmt);
        if (ret != SQLITE_ROW) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s, pkgid(%s), ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                sqlite3_reset(stmt);
                sqlite3_finalize(stmt);
                goto out;
@@ -2221,7 +2234,7 @@ EAPI char *livebox_service_lb_script_path(const char *pkgid)
 
        appid = (char *)sqlite3_column_text(stmt, 0);
        if (!appid || !strlen(appid)) {
-               ErrPrint("Invalid appid : %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Invalid appid : %s, pkgid(%s)\n", sqlite3_errmsg(handle), pkgid);
                sqlite3_reset(stmt);
                sqlite3_finalize(stmt);
                goto out;
@@ -2229,7 +2242,7 @@ EAPI char *livebox_service_lb_script_path(const char *pkgid)
 
        lb_src = (char *)sqlite3_column_text(stmt, 1);
        if (!lb_src || !strlen(lb_src)) {
-               ErrPrint("No records for lb src : %s\n", sqlite3_errmsg(handle));
+               ErrPrint("No records for lb src : %s, pkgid(%s), appid(%s)\n", sqlite3_errmsg(handle), pkgid, appid);
                sqlite3_reset(stmt);
                sqlite3_finalize(stmt);
                goto out;
@@ -2326,27 +2339,27 @@ EAPI char *livebox_service_pd_script_path(const char *pkgid)
 
        ret = sqlite3_prepare_v2(handle, "SELECT pkgmap.appid, provider.pd_src FROM provider, pkgmap WHERE provider.pkgid = ? AND pkgmap.pkgid = ?", -1, &stmt, NULL);
        if (ret != SQLITE_OK) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s pkgid(%s) ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                goto out;
        }
 
        ret = sqlite3_bind_text(stmt, 1, pkgid, -1, SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s pkgid(%s) ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                sqlite3_finalize(stmt);
                goto out;
        }
 
        ret = sqlite3_bind_text(stmt, 2, pkgid, -1, SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s pkgid(%s) ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                sqlite3_finalize(stmt);
                goto out;
        }
 
        ret = sqlite3_step(stmt);
        if (ret != SQLITE_ROW) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s pkgid(%s) ret(%d)\n", sqlite3_errmsg(handle), pkgid, ret);
                sqlite3_reset(stmt);
                sqlite3_finalize(stmt);
                goto out;
@@ -2354,7 +2367,7 @@ EAPI char *livebox_service_pd_script_path(const char *pkgid)
 
        appid = (char *)sqlite3_column_text(stmt, 0);
        if (!appid || !strlen(appid)) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s pkgid(%s)\n", sqlite3_errmsg(handle), pkgid);
                sqlite3_reset(stmt);
                sqlite3_finalize(stmt);
                goto out;
@@ -2362,7 +2375,7 @@ EAPI char *livebox_service_pd_script_path(const char *pkgid)
 
        pd_src = (char *)sqlite3_column_text(stmt, 1);
        if (!pd_src || !strlen(pd_src)) {
-               ErrPrint("Error: %s\n", sqlite3_errmsg(handle));
+               ErrPrint("Error: %s pkgid(%s) appid(%s)\n", sqlite3_errmsg(handle), pkgid, appid);
                sqlite3_reset(stmt);
                sqlite3_finalize(stmt);
                goto out;