diff options
author | Sangyoon Jang <s89.jang@samsung.com> | 2015-05-28 17:15:46 +0900 |
---|---|---|
committer | Sangyoon Jang <s89.jang@samsung.com> | 2015-06-01 11:28:40 +0900 |
commit | 86ff1445e36c35c83a6a6cb0d80afe70ed7fa8ac (patch) | |
tree | fc046570c3549810afc0f1e78e0abe0d1a84a40e /alarm-manager-registry.c | |
parent | a691026b61f972837671d13578c75cf1c0f2c9f6 (diff) | |
download | alarm-manager-86ff1445e36c35c83a6a6cb0d80afe70ed7fa8ac.tar.gz alarm-manager-86ff1445e36c35c83a6a6cb0d80afe70ed7fa8ac.tar.bz2 alarm-manager-86ff1445e36c35c83a6a6cb0d80afe70ed7fa8ac.zip |
Update source from Tizen 2.4submit/tizen/20150602.003342
TODO:
support multi-user
Change-Id: I5a4a3a46eb07df602131ffb5aee6126b7a9377ea
Signed-off-by: Sangyoon Jang <s89.jang@samsung.com>
Diffstat (limited to 'alarm-manager-registry.c')
-rw-r--r-- | alarm-manager-registry.c | 174 |
1 files changed, 59 insertions, 115 deletions
diff --git a/alarm-manager-registry.c b/alarm-manager-registry.c index 444e2e0..21c4c12 100644 --- a/alarm-manager-registry.c +++ b/alarm-manager-registry.c @@ -20,9 +20,6 @@ * */ - - - #include<stdio.h> #include<stdlib.h> #include<time.h> @@ -30,14 +27,11 @@ #include<string.h> #include<sys/types.h> -#include<dbus/dbus.h> #include<glib.h> #include <db-util.h> #if !GLIB_CHECK_VERSION (2, 31, 0) #include <glib/gmacros.h> -#else #endif - #include"alarm.h" #include"alarm-internal.h" @@ -49,37 +43,31 @@ extern __alarm_server_context_t alarm_context; extern sqlite3 *alarmmgr_db; -#ifdef __ALARM_BOOT -extern bool enable_power_on_alarm; -#endif - bool _save_alarms(__alarm_info_t *__alarm_info); bool _update_alarms(__alarm_info_t *__alarm_info); bool _delete_alarms(alarm_id_t alarm_id); -#ifdef __ALARM_BOOT -bool _update_power_on(bool on_off); -#endif bool _load_alarms_from_registry(void); bool _save_alarms(__alarm_info_t *__alarm_info) { - char query[MAX_QUERY_LEN] = {0,}; char *error_message = NULL; alarm_info_t *alarm_info = (alarm_info_t *) &(__alarm_info->alarm_info); alarm_date_t *start = &alarm_info->start; alarm_mode_t *mode = &alarm_info->mode; - snprintf(query, MAX_QUERY_LEN, "insert into alarmmgr( alarm_id, start,\ - end, pid, app_unique_name, app_service_name, app_service_name_mod, bundle, year,\ + char *query = sqlite3_mprintf("insert into alarmmgr( alarm_id, start,\ + end, pid, caller_pkgid, callee_pkgid, app_unique_name, app_service_name, app_service_name_mod, bundle, year,\ month, day, hour, min, sec, day_of_week, repeat,\ alarm_type, reserved_info, dst_service_name, dst_service_name_mod)\ - values (%d,%d,%d,%d,'%s','%s','%s','%s',%d,%d,%d,%d,%d,%d,%d,%d,\ - %d,%d,'%s','%s')",\ + values (%d,%d,%d,%d,%Q,%Q,%Q,%Q,%Q,%Q,%d,%d,%d,%d,%d,%d,%d,%d,\ + %d,%d,%Q,%Q)",\ __alarm_info->alarm_id, (int)__alarm_info->start, (int)__alarm_info->end, __alarm_info->pid, + (char *)g_quark_to_string(__alarm_info->quark_caller_pkgid), + (char *)g_quark_to_string(__alarm_info->quark_callee_pkgid), (char *)g_quark_to_string( __alarm_info->quark_app_unique_name), (char *)g_quark_to_string( @@ -103,35 +91,35 @@ bool _save_alarms(__alarm_info_t *__alarm_info) (char *)g_quark_to_string( __alarm_info->quark_dst_service_name_mod)); - if (SQLITE_OK != - sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) { - ALARM_MGR_EXCEPTION_PRINT( - "Don't execute query = %s, error message = %s\n", query, - error_message); + if (SQLITE_OK != sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) { + SECURE_LOGE("sqlite3_exec() is failed. query = %s, error message = %s", query, error_message); + sqlite3_free(query); return false; } + sqlite3_free(query); return true; } bool _update_alarms(__alarm_info_t *__alarm_info) { - char query[MAX_QUERY_LEN] = {0,}; char *error_message = NULL; alarm_info_t *alarm_info = (alarm_info_t *) &(__alarm_info->alarm_info); alarm_date_t *start = &alarm_info->start; alarm_mode_t *mode = &alarm_info->mode; - snprintf(query, MAX_QUERY_LEN, "update alarmmgr set start=%d, end=%d,\ - pid=%d, app_unique_name='%s', app_service_name='%s', app_service_name_mod='%s',\ - bundle='%s', year=%d, month=%d, day=%d, hour=%d, min=%d, sec=%d,\ + char *query = sqlite3_mprintf("update alarmmgr set start=%d, end=%d,\ + pid=%d, caller_pkgid=%Q, callee_pkgid=%Q, app_unique_name=%Q, app_service_name=%Q, app_service_name_mod=%Q,\ + bundle=%Q, year=%d, month=%d, day=%d, hour=%d, min=%d, sec=%d,\ day_of_week=%d, repeat=%d, alarm_type=%d,\ - reserved_info=%d, dst_service_name='%s', dst_service_name_mod='%s'\ + reserved_info=%d, dst_service_name=%Q, dst_service_name_mod=%Q\ where alarm_id=%d",\ (int)__alarm_info->start, (int)__alarm_info->end, __alarm_info->pid, + (char *)g_quark_to_string(__alarm_info->quark_caller_pkgid), + (char *)g_quark_to_string(__alarm_info->quark_callee_pkgid), (char *)g_quark_to_string( __alarm_info->quark_app_unique_name), (char *)g_quark_to_string( @@ -156,70 +144,31 @@ bool _update_alarms(__alarm_info_t *__alarm_info) __alarm_info->quark_dst_service_name_mod), __alarm_info->alarm_id); - if (SQLITE_OK != - sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) { - ALARM_MGR_EXCEPTION_PRINT( - "Don't execute query = %s, error message = %s\n", query, - error_message); + if (SQLITE_OK != sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) { + SECURE_LOGE("sqlite3_exec() is failed. query = %s, error message = %s", query, error_message); + sqlite3_free(query); return false; } + sqlite3_free(query); return true; - } bool _delete_alarms(alarm_id_t alarm_id) { - char query[MAX_QUERY_LEN] = {0}; char *error_message = NULL; + char *query = sqlite3_mprintf("delete from alarmmgr where alarm_id=%d", alarm_id); - snprintf(query, MAX_QUERY_LEN, "delete from alarmmgr where alarm_id=%d", - alarm_id); - - if (SQLITE_OK != - sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) { - ALARM_MGR_EXCEPTION_PRINT( - "Don't execute query = %s, error message = %s\n", query, - error_message); + if (SQLITE_OK != sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) { + SECURE_LOGE("sqlite3_exec() is failed. query = %s, error message = %s", query, error_message); + sqlite3_free(query); return false; } + sqlite3_free(query); return true; - } -#ifdef __ALARM_BOOT -bool _update_power_on(bool on_off) -{ -/* GConfClient* pGCC; - char key[MAX_GCONF_PATH_LEN]; - GError* error = NULL; - - g_type_init(); - pGCC = gconf_client_get_default(); - - if(!pGCC) - { - ALARM_MGR_EXCEPTION_PRINT(" gconf get failed.. \n"); - return false; - } - - sprintf(key,"/Services/AlarmMgr/Auto_poweron"); - - - if(!gconf_client_set_bool(pGCC, key, on_off, &error)) - { - ALARM_MGR_EXCEPTION_PRINT("set string has failed...\n"); - return false; - } - - gconf_client_suggest_sync(pGCC, NULL); - g_object_unref(pGCC); -*/ - return false; -} -#endif - bool _load_alarms_from_registry() { int i = 0; @@ -230,6 +179,8 @@ bool _load_alarms_from_registry() __alarm_info_t *__alarm_info = NULL; alarm_date_t *start = NULL; alarm_mode_t *mode = NULL; + char caller_pkgid[MAX_PKG_ID_LEN] = {0,}; + char callee_pkgid[MAX_PKG_ID_LEN] = {0,}; char app_unique_name[MAX_SERVICE_NAME_LEN] = {0,}; char app_service_name[MAX_SERVICE_NAME_LEN] = {0,}; char app_service_name_mod[MAX_SERVICE_NAME_LEN] = {0,}; @@ -237,64 +188,58 @@ bool _load_alarms_from_registry() char dst_service_name_mod[MAX_SERVICE_NAME_LEN] = {0,}; char bundle[MAX_BUNDLE_NAME_LEN] = {0,}; -#ifdef __ALARM_BOOT - /*sprintf(path, "/Services/AlarmMgr/Auto_poweron"); */ - - enable_power_on_alarm = 0; - /*gconf_client_get_bool(pGCC, path, NULL); */ -#endif - snprintf(query, MAX_QUERY_LEN, "select * from alarmmgr"); - if (SQLITE_OK != - sqlite3_prepare(alarmmgr_db, query, strlen(query), &stmt, &tail)) { - ALARM_MGR_EXCEPTION_PRINT("sqlite3_prepare error\n"); + if (SQLITE_OK != sqlite3_prepare(alarmmgr_db, query, strlen(query), &stmt, &tail)) { + ALARM_MGR_EXCEPTION_PRINT("sqlite3_prepare() is failed."); return false; } for (i = 0; SQLITE_ROW == sqlite3_step(stmt); i++) { __alarm_info = malloc(sizeof(__alarm_info_t)); - if (G_UNLIKELY(__alarm_info == NULL)){ - ALARM_MGR_EXCEPTION_PRINT("[alarm-server]:Malloc failed\n"); + if (G_UNLIKELY(__alarm_info == NULL)) { + ALARM_MGR_EXCEPTION_PRINT("Memory allocation failed."); return false; } alarm_info = (alarm_info_t *) &(__alarm_info->alarm_info); start = &alarm_info->start; mode = &alarm_info->mode; - memset(app_service_name, 0, MAX_SERVICE_NAME_LEN); - memset(app_service_name_mod, 0, MAX_SERVICE_NAME_LEN); - memset(dst_service_name, 0, MAX_SERVICE_NAME_LEN); - memset(dst_service_name_mod, 0, MAX_SERVICE_NAME_LEN); - __alarm_info->alarm_id = sqlite3_column_int(stmt, 0); __alarm_info->start = sqlite3_column_int(stmt, 1); __alarm_info->end = sqlite3_column_int(stmt, 2); __alarm_info->pid = sqlite3_column_int(stmt, 3); - strncpy(app_unique_name, (const char *)sqlite3_column_text(stmt, 4), + + strncpy(caller_pkgid, (const char *)sqlite3_column_text(stmt, 4), + MAX_PKG_ID_LEN - 1); + strncpy(callee_pkgid, (const char *)sqlite3_column_text(stmt, 5), + MAX_PKG_ID_LEN - 1); + strncpy(app_unique_name, (const char *)sqlite3_column_text(stmt, 6), MAX_SERVICE_NAME_LEN - 1); - strncpy(app_service_name, (const char *)sqlite3_column_text(stmt, 5), + strncpy(app_service_name, (const char *)sqlite3_column_text(stmt, 7), MAX_SERVICE_NAME_LEN - 1); - strncpy(app_service_name_mod, (const char *)sqlite3_column_text(stmt, 6), + strncpy(app_service_name_mod, (const char *)sqlite3_column_text(stmt, 8), MAX_SERVICE_NAME_LEN - 1); - strncpy(bundle, (const char *)sqlite3_column_text(stmt, 7), - MAX_BUNDLE_NAME_LEN - 1); - start->year = sqlite3_column_int(stmt, 8); - start->month = sqlite3_column_int(stmt, 9); - start->day = sqlite3_column_int(stmt, 10); - start->hour = sqlite3_column_int(stmt, 11); - start->min = sqlite3_column_int(stmt, 12); - start->sec = sqlite3_column_int(stmt, 13); - mode->u_interval.day_of_week = sqlite3_column_int(stmt, 14); - mode->repeat = sqlite3_column_int(stmt, 15); - alarm_info->alarm_type = sqlite3_column_int(stmt, 16); - alarm_info->reserved_info = sqlite3_column_int(stmt, 17); - strncpy(dst_service_name, (const char *)sqlite3_column_text(stmt, 18), + strncpy(bundle, (const char *)sqlite3_column_text(stmt, 9), + MAX_BUNDLE_NAME_LEN - 1); + start->year = sqlite3_column_int(stmt, 10); + start->month = sqlite3_column_int(stmt, 11); + start->day = sqlite3_column_int(stmt, 12); + start->hour = sqlite3_column_int(stmt, 13); + start->min = sqlite3_column_int(stmt, 14); + start->sec = sqlite3_column_int(stmt, 15); + mode->u_interval.day_of_week = sqlite3_column_int(stmt, 16); + mode->repeat = sqlite3_column_int(stmt, 17); + alarm_info->alarm_type = sqlite3_column_int(stmt, 18); + alarm_info->reserved_info = sqlite3_column_int(stmt, 19); + strncpy(dst_service_name, (const char *)sqlite3_column_text(stmt, 20), MAX_SERVICE_NAME_LEN - 1); - strncpy(dst_service_name_mod, (const char *)sqlite3_column_text(stmt, 19), + strncpy(dst_service_name_mod, (const char *)sqlite3_column_text(stmt, 21), MAX_SERVICE_NAME_LEN - 1); + __alarm_info->quark_caller_pkgid = g_quark_from_string(caller_pkgid); + __alarm_info->quark_callee_pkgid = g_quark_from_string(callee_pkgid); __alarm_info->quark_app_unique_name = g_quark_from_string(app_unique_name); __alarm_info->quark_app_service_name = @@ -308,16 +253,15 @@ bool _load_alarms_from_registry() __alarm_info->quark_bundle = g_quark_from_string(bundle); _alarm_next_duetime(__alarm_info); - alarm_context.alarms = - g_slist_append(alarm_context.alarms, __alarm_info); + alarm_context.alarms = g_slist_append(alarm_context.alarms, __alarm_info); } + + _alarm_schedule(); if (SQLITE_OK != sqlite3_finalize(stmt)) { - ALARM_MGR_EXCEPTION_PRINT("error : sqlite3_finalize\n"); + ALARM_MGR_EXCEPTION_PRINT("sqlite3_finalize() is failed."); return false; } - _alarm_schedule(); - return true; } |