__alarm_info->uid,
__alarm_info->pid,
__alarm_info->global,
- (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(
- __alarm_info->quark_app_service_name),
- (char *)g_quark_to_string(
- __alarm_info->quark_app_service_name_mod),
- (char *)g_quark_to_string(
- __alarm_info->quark_bundle),
- strlen((char *)g_quark_to_string(__alarm_info->quark_noti)),
- (char *)g_quark_to_string(
- __alarm_info->quark_noti),
+ CHECK_NULL_STRING(__alarm_info->caller_pkgid),
+ CHECK_NULL_STRING(__alarm_info->callee_pkgid),
+ CHECK_NULL_STRING(__alarm_info->app_unique_name),
+ CHECK_NULL_STRING(__alarm_info->app_service_name),
+ CHECK_NULL_STRING(__alarm_info->app_service_name_mod),
+ CHECK_NULL_STRING(__alarm_info->bundle),
+ __alarm_info->noti ? strlen(__alarm_info->noti) : 0,
+ CHECK_NULL_STRING(__alarm_info->noti),
start->year,
start->month,
start->day,
mode->repeat,
alarm_info->alarm_type,
alarm_info->reserved_info,
- (char *)g_quark_to_string(
- __alarm_info->quark_dst_service_name),
- (char *)g_quark_to_string(
- __alarm_info->quark_dst_service_name_mod));
+ CHECK_NULL_STRING(__alarm_info->dst_service_name),
+ CHECK_NULL_STRING(__alarm_info->dst_service_name_mod));
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);
__alarm_info->uid,
__alarm_info->pid,
__alarm_info->global,
- (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(
- __alarm_info->quark_app_service_name),
- (char *)g_quark_to_string(
- __alarm_info->quark_app_service_name_mod),
- (char *)g_quark_to_string(
- __alarm_info->quark_bundle),
- strlen((char *)g_quark_to_string(__alarm_info->quark_noti)),
- (char *)g_quark_to_string(
- __alarm_info->quark_noti),
+ CHECK_NULL_STRING(__alarm_info->caller_pkgid),
+ CHECK_NULL_STRING(__alarm_info->callee_pkgid),
+ CHECK_NULL_STRING(__alarm_info->app_unique_name),
+ CHECK_NULL_STRING(__alarm_info->app_service_name),
+ CHECK_NULL_STRING(__alarm_info->app_service_name_mod),
+ CHECK_NULL_STRING(__alarm_info->bundle),
+ __alarm_info->noti ? strlen(__alarm_info->noti) : 0,
+ CHECK_NULL_STRING(__alarm_info->noti),
start->year,
start->month,
start->day,
mode->repeat,
alarm_info->alarm_type,
alarm_info->reserved_info,
- (char *)g_quark_to_string(
- __alarm_info->quark_dst_service_name),
- (char *)g_quark_to_string(
- __alarm_info->quark_dst_service_name_mod),
+ CHECK_NULL_STRING(__alarm_info->dst_service_name),
+ CHECK_NULL_STRING(__alarm_info->dst_service_name_mod),
__alarm_info->alarm_id);
if (SQLITE_OK != sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) {
for (i = 0; SQLITE_ROW == sqlite3_step(stmt); i++) {
col_idx = 0;
- __alarm_info = malloc(sizeof(__alarm_info_t));
+ __alarm_info = (__alarm_info_t *)calloc(1, sizeof(__alarm_info_t));
if (G_UNLIKELY(__alarm_info == NULL)) {
ALARM_MGR_EXCEPTION_PRINT("Memory allocation failed.");
strncpy(dst_service_name_mod, (const char *)sqlite3_column_text(stmt, col_idx++),
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 =
- g_quark_from_string(app_service_name);
- __alarm_info->quark_app_service_name_mod =
- g_quark_from_string(app_service_name_mod);
- __alarm_info->quark_dst_service_name =
- g_quark_from_string(dst_service_name);
- __alarm_info->quark_dst_service_name_mod =
- g_quark_from_string(dst_service_name_mod);
- __alarm_info->quark_bundle = g_quark_from_string(bundle);
- __alarm_info->quark_noti = g_quark_from_string(noti);
+ __alarm_info->caller_pkgid = STRDUP_WITH_NULLCMP(caller_pkgid);
+ __alarm_info->callee_pkgid = STRDUP_WITH_NULLCMP(callee_pkgid);
+ __alarm_info->app_unique_name = STRDUP_WITH_NULLCMP(app_unique_name);
+ __alarm_info->app_service_name = STRDUP_WITH_NULLCMP(app_service_name);
+ __alarm_info->app_service_name_mod =
+ STRDUP_WITH_NULLCMP(app_service_name_mod);
+ __alarm_info->dst_service_name = STRDUP_WITH_NULLCMP(dst_service_name);
+ __alarm_info->dst_service_name_mod =
+ STRDUP_WITH_NULLCMP(dst_service_name_mod);
+ __alarm_info->bundle = STRDUP_WITH_NULLCMP(bundle);
+ __alarm_info->noti = STRDUP_WITH_NULLCMP(noti);
free(noti);
if (is_disabled) {
static bool __initialize_dbus();
static bool __initialize_db();
static void __initialize();
+void _release_alarm_info_t();
void on_bus_name_owner_changed(GDBusConnection *connection, const gchar *sender_name, const gchar *object_path,
const gchar *interface_name, const gchar *signal_name, GVariant *parameters, gpointer user_data);
bool __get_caller_unique_name(int pid, char *unique_name, bool *is_app, uid_t uid);
bool __alarm_clean_list()
{
- g_slist_free_full(alarm_context.alarms, g_free);
+ g_slist_free_full(alarm_context.alarms, _release_alarm_info_t);
return true;
}
bundle *b;
bool ret = false;
- if (strlen(b_data) == 4 && strncmp(b_data, "null", 4) == 0)
+ if (b_data == NULL)
return true;
b = bundle_decode((bundle_raw *)b_data, strlen(b_data));
if (update_flag == ALARM_UPDATE_FLAG_TIME ||
ALARM_UPDATE_FLAG_WEEK) {
- if (!__check_bundle_for_update(g_quark_to_string(entry->quark_bundle),
+ if (!__check_bundle_for_update(entry->bundle,
entry->uid)) {
*error_code = ERR_ALARM_NOT_PERMITTED_APP;
return NULL;
_delete_alarms(alarm_id);
alarm_context.alarms = g_slist_remove(alarm_context.alarms, iter->data);
- g_free(entry);
+ _release_alarm_info_t(entry);
found = true;
break;
}
__alarm_info_t *__alarm_info = NULL;
- __alarm_info = malloc(sizeof(__alarm_info_t));
+ __alarm_info = (__alarm_info_t *)calloc(1, sizeof(__alarm_info_t));
if (__alarm_info == NULL) {
- SECURE_LOGE("Caution!! app_pid=%d, malloc failed. it seems to be OOM.", pid);
+ SECURE_LOGE("Caution!! app_pid=%d, calloc failed. it seems to be OOM.", pid);
*error_code = ERR_ALARM_SYSTEM_FAIL;
return false;
}
if (__get_cached_unique_name(pid, app_name, &caller_is_app, uid) == false) {
*error_code = ERR_ALARM_SYSTEM_FAIL;
- free(__alarm_info);
+ _release_alarm_info_t(__alarm_info);
return false;
}
- __alarm_info->quark_app_unique_name = g_quark_from_string(app_name);
+ __alarm_info->app_unique_name = strdup(app_name);
/* caller */
- __alarm_info->quark_caller_pkgid = g_quark_from_string("null");
-
if (caller_is_app) {
if (pkgmgrinfo_appinfo_get_usr_appinfo(app_name, uid, &caller_handle) == PMINFO_R_OK) {
if (pkgmgrinfo_appinfo_get_pkgid(caller_handle, &caller_pkgid) == PMINFO_R_OK) {
if (caller_pkgid)
- __alarm_info->quark_caller_pkgid = g_quark_from_string(caller_pkgid);
+ __alarm_info->caller_pkgid = strdup(caller_pkgid);
}
pkgmgrinfo_appinfo_destroy_appinfo(caller_handle);
}
}
/* callee */
- __alarm_info->quark_callee_pkgid = g_quark_from_string("null");
-
b = bundle_decode((bundle_raw *)bundle_data, strlen(bundle_data));
callee_appid = appsvc_get_appid(b);
if (pkgmgrinfo_appinfo_get_usr_appinfo(callee_appid, uid, &callee_handle) == PMINFO_R_OK) {
if (pkgmgrinfo_appinfo_get_pkgid(callee_handle, &callee_pkgid) == PMINFO_R_OK) {
if (callee_pkgid)
- __alarm_info->quark_callee_pkgid = g_quark_from_string(callee_pkgid);
+ __alarm_info->callee_pkgid = strdup(callee_pkgid);
}
pkgmgrinfo_appinfo_destroy_appinfo(callee_handle);
}
SECURE_LOGD("caller_pkgid = %s, callee_pkgid = %s",
- g_quark_to_string(__alarm_info->quark_caller_pkgid), g_quark_to_string(__alarm_info->quark_callee_pkgid));
+ __alarm_info->caller_pkgid, __alarm_info->callee_pkgid);
bundle_encode(b, &b_data, &datalen);
- __alarm_info->quark_bundle = g_quark_from_string((const gchar *)b_data);
- __alarm_info->quark_noti = g_quark_from_string("null");
- __alarm_info->quark_app_service_name = g_quark_from_string("null");
- __alarm_info->quark_dst_service_name = g_quark_from_string("null");
- __alarm_info->quark_app_service_name_mod = g_quark_from_string("null");
- __alarm_info->quark_dst_service_name_mod = g_quark_from_string("null");
+ if (b_data)
+ __alarm_info->bundle = strdup((const gchar *)b_data);
bundle_free(b);
if (b_data) {
due_time = _alarm_next_duetime(__alarm_info);
if (__alarm_add_to_list(__alarm_info) == false) {
- free(__alarm_info);
+ _release_alarm_info_t(__alarm_info);
*error_code = ERR_ALARM_SYSTEM_FAIL;
return false;
}
__alarm_info_t *__alarm_info = NULL;
- __alarm_info = malloc(sizeof(__alarm_info_t));
+ __alarm_info = (__alarm_info_t *)calloc(1, sizeof(__alarm_info_t));
if (__alarm_info == NULL) {
- SECURE_LOGE("Caution!! app_pid=%d, malloc "
+ SECURE_LOGE("Caution!! app_pid=%d, calloc "
"failed. it seems to be OOM\n", pid);
*error_code = ERR_ALARM_SYSTEM_FAIL;
return false;
__alarm_info->uid = uid;
__alarm_info->pid = pid;
__alarm_info->alarm_id = -1;
- __alarm_info->quark_caller_pkgid = g_quark_from_string("null");
__alarm_info->method = method;
__alarm_info->requested_interval = requested_interval;
__alarm_info->is_ref = is_ref;
if (__get_cached_unique_name(pid, unique_name, &caller_is_app, uid) == false) {
*error_code = ERR_ALARM_SYSTEM_FAIL;
- free(__alarm_info);
+ _release_alarm_info_t(__alarm_info);
return false;
}
if (pkgmgrinfo_appinfo_get_usr_appinfo(unique_name, uid, &caller_handle) == PMINFO_R_OK) {
if (pkgmgrinfo_appinfo_get_pkgid(caller_handle, &caller_pkgid) == PMINFO_R_OK) {
if (caller_pkgid)
- __alarm_info->quark_caller_pkgid = g_quark_from_string(caller_pkgid);
+ __alarm_info->caller_pkgid = strdup(caller_pkgid);
}
pkgmgrinfo_appinfo_destroy_appinfo(caller_handle);
}
}
- __alarm_info->quark_callee_pkgid = g_quark_from_string("null");
- SECURE_LOGD("caller_pkgid = %s, callee_pkgid = null", g_quark_to_string(__alarm_info->quark_caller_pkgid));
+ SECURE_LOGD("caller_pkgid = %s, callee_pkgid = null", __alarm_info->caller_pkgid);
- __alarm_info->quark_app_unique_name = g_quark_from_string(unique_name);
- __alarm_info->quark_app_service_name = g_quark_from_string(app_service_name);
- __alarm_info->quark_app_service_name_mod = g_quark_from_string(app_service_name_mod);
- __alarm_info->quark_dst_service_name = g_quark_from_string(dst_service_name);
- __alarm_info->quark_dst_service_name_mod = g_quark_from_string(dst_service_name_mod);
- __alarm_info->quark_bundle = g_quark_from_string("null");
- __alarm_info->quark_noti = g_quark_from_string("null");
+ __alarm_info->app_unique_name = strdup(unique_name);
+ if (app_service_name)
+ __alarm_info->app_service_name = strdup(app_service_name);
+ if (app_service_name_mod)
+ __alarm_info->app_service_name_mod = strdup(app_service_name_mod);
+ if (dst_service_name)
+ __alarm_info->dst_service_name = strdup(dst_service_name);
+ if (dst_service_name_mod)
+ __alarm_info->dst_service_name_mod = strdup(dst_service_name_mod);
__alarm_set_start_and_end_time(alarm_info, __alarm_info);
memcpy(&(__alarm_info->alarm_info), alarm_info, sizeof(alarm_info_t));
time(¤t_time);
SECURE_LOGD("[alarm-server]:pid=%d, app_unique_name=%s, "
- "app_service_name=%s,dst_service_name=%s, c_due_time=%ld", \
- pid, g_quark_to_string(__alarm_info->quark_app_unique_name), \
- g_quark_to_string(__alarm_info->quark_app_service_name), \
- g_quark_to_string(__alarm_info->quark_dst_service_name), \
- alarm_context.c_due_time);
+ "app_service_name=%s,dst_service_name=%s, c_due_time=%ld", \
+ pid, __alarm_info->app_unique_name, \
+ __alarm_info->app_service_name, \
+ __alarm_info->dst_service_name, \
+ alarm_context.c_due_time);
if (alarm_context.c_due_time < current_time) {
ALARM_MGR_EXCEPTION_PRINT("Caution!! alarm_context.c_due_time "
due_time = _alarm_next_duetime(__alarm_info);
if (__alarm_add_to_list(__alarm_info) == false) {
- free(__alarm_info);
+ _release_alarm_info_t(__alarm_info);
return false;
}
__alarm_info_t *__alarm_info = NULL;
- __alarm_info = malloc(sizeof(__alarm_info_t));
+ __alarm_info = (__alarm_info_t *)calloc(1, sizeof(__alarm_info_t));
if (__alarm_info == NULL) {
- SECURE_LOGE("Caution!! app_pid=%d, malloc "
+ SECURE_LOGE("Caution!! app_pid=%d, calloc "
"failed. it seems to be OOM\n", pid);
*error_code = ERR_ALARM_SYSTEM_FAIL;
return false;
if (__get_cached_unique_name(pid, app_name, &caller_is_app, uid) == false) {
*error_code = ERR_ALARM_SYSTEM_FAIL;
- free(__alarm_info);
+ _release_alarm_info_t(__alarm_info);
return false;
}
- __alarm_info->quark_app_unique_name = g_quark_from_string(app_name);
-
- __alarm_info->quark_caller_pkgid = g_quark_from_string("null");
+ __alarm_info->app_unique_name = strdup(app_name);
if (caller_is_app) {
if (pkgmgrinfo_appinfo_get_usr_appinfo(app_name, uid, &caller_handle) == PMINFO_R_OK) {
if (pkgmgrinfo_appinfo_get_pkgid(caller_handle, &caller_pkgid) == PMINFO_R_OK) {
if (caller_pkgid)
- __alarm_info->quark_caller_pkgid = g_quark_from_string(caller_pkgid);
+ __alarm_info->caller_pkgid = strdup(caller_pkgid);
}
pkgmgrinfo_appinfo_destroy_appinfo(caller_handle);
}
}
- __alarm_info->quark_callee_pkgid = g_quark_from_string("null");
SECURE_LOGD("caller_pkgid = %s, callee_pkgid = null",
- g_quark_to_string(__alarm_info->quark_caller_pkgid));
+ __alarm_info->caller_pkgid);
- __alarm_info->quark_bundle = g_quark_from_string("null");
- __alarm_info->quark_noti = g_quark_from_string(noti_data);
- __alarm_info->quark_app_service_name = g_quark_from_string("null");
- __alarm_info->quark_dst_service_name = g_quark_from_string("null");
- __alarm_info->quark_app_service_name_mod = g_quark_from_string("null");
- __alarm_info->quark_dst_service_name_mod = g_quark_from_string("null");
+ if (noti_data)
+ __alarm_info->noti = strdup(noti_data);
__alarm_set_start_and_end_time(alarm_info, __alarm_info);
memcpy(&(__alarm_info->alarm_info), alarm_info, sizeof(alarm_info_t));
time(¤t_time);
SECURE_LOGD("[alarm-server]:pid=%d, app_unique_name=%s, "
- "app_service_name=%s,dst_service_name=%s, c_due_time=%ld", \
- pid, g_quark_to_string(__alarm_info->quark_app_unique_name), \
- g_quark_to_string(__alarm_info->quark_app_service_name), \
- g_quark_to_string(__alarm_info->quark_dst_service_name), \
- alarm_context.c_due_time);
+ "app_service_name=%s,dst_service_name=%s, c_due_time=%ld", \
+ pid, __alarm_info->app_unique_name, \
+ __alarm_info->app_service_name, \
+ __alarm_info->dst_service_name, \
+ alarm_context.c_due_time);
if (alarm_context.c_due_time < current_time) {
ALARM_MGR_EXCEPTION_PRINT("Caution!! alarm_context.c_due_time "
due_time = _alarm_next_duetime(__alarm_info);
if (__alarm_add_to_list(__alarm_info) == false) {
- free(__alarm_info);
+ _release_alarm_info_t(__alarm_info);
return false;
}
/* Case #1. The process is an application launched by app_control.
* It registered an alarm using launch-based APIs like alarm_schedule_xxx, alarmmgr_xxx_appsvc. */
- if (strncmp(g_quark_to_string(__alarm_info->quark_bundle), "null", 4) != 0) {
- b_len = strlen(g_quark_to_string(__alarm_info->quark_bundle));
+ if (__alarm_info->bundle != NULL) {
+ b_len = strlen(__alarm_info->bundle);
- b = bundle_decode((bundle_raw *)g_quark_to_string(__alarm_info->quark_bundle), b_len);
+ b = bundle_decode((bundle_raw *)(__alarm_info->bundle), b_len);
if (b == NULL) {
ALARM_MGR_EXCEPTION_PRINT("Error!!!..Unable to decode the bundle!!\n");
}
bundle_free(b);
}
- } else if (strncmp(g_quark_to_string(__alarm_info->quark_noti), "null", 4) != 0) {
+ } else if (__alarm_info->noti != NULL) {
guchar *noti_data;
int datalen;
ret = -1;
- noti_data = g_base64_decode(g_quark_to_string(__alarm_info->quark_noti),
+ noti_data = g_base64_decode(__alarm_info->noti,
(gsize *)&datalen);
if (noti_data) {
ret = __post_notification(noti_data, datalen, __alarm_info->uid);
pkgmgrinfo_appinfo_h appinfo_handle = NULL;
struct running_info_t app_info;
- if (g_quark_to_string(__alarm_info->quark_bundle) != NULL && strncmp(g_quark_to_string(__alarm_info->quark_dst_service_name), "null", 4) == 0) {
- SECURE_LOGD("[alarm-server]:destination is null, so we send expired alarm to %s(%u).",
- g_quark_to_string(__alarm_info->quark_app_service_name), __alarm_info->quark_app_service_name);
- destination_app_service_name = g_quark_to_string(__alarm_info->quark_app_service_name_mod);
+ if (__alarm_info->dst_service_name == NULL) {
+ SECURE_LOGD("[alarm-server]:destination is null, so we send expired alarm to %s.",
+ __alarm_info->app_service_name);
+ destination_app_service_name = __alarm_info->app_service_name_mod;
} else {
- SECURE_LOGD("[alarm-server]:destination :%s(%u)",
- g_quark_to_string(__alarm_info->quark_dst_service_name), __alarm_info->quark_dst_service_name);
- destination_app_service_name = g_quark_to_string(__alarm_info->quark_dst_service_name_mod);
+ SECURE_LOGD("[alarm-server]:destination :%s",
+ __alarm_info->dst_service_name);
+ destination_app_service_name = __alarm_info->dst_service_name_mod;
}
/*
*/
SECURE_LOGD("[alarm-server]: destination_app_service_name :%s, app_pid=%d", destination_app_service_name, app_pid);
- if (g_quark_to_string(__alarm_info->quark_dst_service_name) != NULL && strncmp(g_quark_to_string(__alarm_info->quark_dst_service_name), "null", 4) == 0) {
- if (g_quark_to_string(__alarm_info->quark_app_service_name) != NULL && strlen(g_quark_to_string(__alarm_info->quark_app_service_name)) > 6)
- strncpy(appid, g_quark_to_string(__alarm_info->quark_app_service_name) + 6, strlen(g_quark_to_string(__alarm_info->quark_app_service_name)) - 6);
+ if (__alarm_info->dst_service_name == NULL) {
+ if (__alarm_info->app_service_name != NULL && strlen(__alarm_info->app_service_name) > 6)
+ strncpy(appid, __alarm_info->app_service_name + 6, strlen(__alarm_info->app_service_name) - 6);
} else {
- if (g_quark_to_string(__alarm_info->quark_dst_service_name) != NULL && strlen(g_quark_to_string(__alarm_info->quark_dst_service_name)) > 6)
- strncpy(appid, g_quark_to_string(__alarm_info->quark_dst_service_name) + 6, strlen(g_quark_to_string(__alarm_info->quark_dst_service_name)) - 6);
+ if (strlen(__alarm_info->dst_service_name) > 6)
+ strncpy(appid, __alarm_info->dst_service_name + 6, strlen(__alarm_info->dst_service_name) - 6);
}
ret = pkgmgrinfo_appinfo_get_usr_appinfo(appid, __alarm_info->uid, &appinfo_handle);
entry = gs_iter->data;
gs_iter = g_slist_next(gs_iter);
- if (strncmp(appid, g_quark_to_string(entry->quark_app_unique_name), strlen(appid)) == 0) {
+ if (strncmp(appid, entry->app_unique_name, strlen(appid)) == 0) {
duetime = _alarm_next_duetime(entry);
SECURE_LOGD("Restore alarm_id(%d) duetime(%d) appid(%s)", entry->alarm_id, duetime, appid);
alarm_context.alarms = g_slist_append(alarm_context.alarms, entry);
entry = gs_iter->data;
gs_iter = g_slist_next(gs_iter);
- if (strncmp(appid, g_quark_to_string(entry->quark_app_unique_name), strlen(appid)) == 0) {
+ if (strncmp(appid, entry->app_unique_name, strlen(appid)) == 0) {
if (!(entry->alarm_info.alarm_type & ALARM_TYPE_VOLATILE))
_update_db_for_disabled_alarm(entry->alarm_id, true);
g_disabled_alarm_list = g_slist_append(g_disabled_alarm_list, entry);
for (gs_iter = alarm_context.alarms; gs_iter != NULL;) {
entry = gs_iter->data;
- const char* caller_pkgid = g_quark_to_string(entry->quark_caller_pkgid);
- const char* callee_pkgid = g_quark_to_string(entry->quark_callee_pkgid);
+ const char* caller_pkgid = entry->caller_pkgid;
+ const char* callee_pkgid = entry->callee_pkgid;
gs_iter = g_slist_next(gs_iter);
if ((caller_pkgid && strncmp(pkgid, caller_pkgid, strlen(pkgid)) == 0) ||
SECURE_LOGD("Remove pkgid[%s], alarm_id[%d]", pkgid, entry->alarm_id);
alarm_context.alarms = g_slist_remove(alarm_context.alarms, entry);
- g_free(entry);
+ _release_alarm_info_t(entry);
}
}
int uid;
int pid;
const char *name = g_dbus_method_invocation_get_sender(invoc);
+ char *_reserved_service_name = NULL;
+ char *_reserved_service_name_mod = NULL;
pid = __get_caller_pid(name);
uid = __get_caller_uid(name);
alarm_info.alarm_type = alarm_type;
alarm_info.reserved_info = reserved_info;
+ if (strcmp(reserved_service_name, "null") == 0)
+ _reserved_service_name = NULL;
+ if (strcmp(reserved_service_name_mod, "null") == 0)
+ _reserved_service_name_mod = NULL;
+
if (!__alarm_create(&alarm_info, &alarm_id, uid, pid, 0, 0, 0, app_service_name, app_service_name_mod,
- reserved_service_name, reserved_service_name_mod, &return_code)) {
+ _reserved_service_name, _reserved_service_name_mod, &return_code)) {
ALARM_MGR_EXCEPTION_PRINT("Unable to create alarm! return_code[%d]", return_code);
#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
strncpy(log_tag, "FAIL: CREATE", strlen("FAIL: CREATE"));
if (!__alarm_create(&alarm_info, &alarm_id, uid, pid, method, interval * 60, is_ref,
app_service_name, app_service_name_mod,
- "null", "null", &return_code)) {
+ NULL, NULL, &return_code)) {
ALARM_MGR_EXCEPTION_PRINT("Unable to create alarm! return_code[%d]", return_code);
#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
strncpy(log_tag, "FAIL: CREATE", strlen("FAIL: CREATE"));
for (gs_iter = alarm_context.alarms; gs_iter != NULL;) {
bool is_found = false;
entry = gs_iter->data;
- const char* tmp_appname = g_quark_to_string(entry->quark_app_unique_name);
+ const char* tmp_appname = entry->app_unique_name;
SECURE_LOGD("Try to remove app_name[%s], alarm_id[%d]\n", tmp_appname, entry->alarm_id);
if (tmp_appname && strncmp(app_name, tmp_appname, strlen(tmp_appname)) == 0) {
if (_remove_from_scheduled_alarm_list(uid, entry->alarm_id))
ALARM_MGR_LOG_PRINT("alarm_id[%d] is removed.", entry->alarm_id);
SECURE_LOGD("Removing is done. app_name[%s], alarm_id [%d]\n", tmp_appname, entry->alarm_id);
alarm_context.alarms = g_slist_remove(alarm_context.alarms, entry);
- g_free(entry);
+ _release_alarm_info_t(entry);
}
}
for (gs_iter = alarm_context.alarms; gs_iter != NULL; gs_iter = g_slist_next(gs_iter)) {
entry = gs_iter->data;
- SECURE_LOGD("app_name=%s, quark_app_unique_name=%s", app_name, g_quark_to_string(entry->quark_app_unique_name));
+ SECURE_LOGD("app_name=%s, app_unique_name=%s", app_name, entry->app_unique_name);
if (entry->uid == uid &&
- strncmp(app_name, g_quark_to_string(entry->quark_app_unique_name), strlen(app_name)) == 0) {
+ strncmp(app_name, entry->app_unique_name, strlen(app_name)) == 0) {
(num_of_ids)++;
SECURE_LOGD("inc number of alarms of app (uid:%d, pid:%d, unique_name:%s) is %d.", uid, pid, app_name, num_of_ids);
}
for (gs_iter = alarm_context.alarms; gs_iter != NULL; gs_iter = g_slist_next(gs_iter)) {
entry = gs_iter->data;
if (entry->uid == uid &&
- strncmp(app_name, g_quark_to_string(entry->quark_app_unique_name), strlen(app_name)) == 0) {
+ strncmp(app_name, (entry->app_unique_name), strlen(app_name)) == 0) {
g_variant_builder_add(builder, "i", entry->alarm_id);
index++;
SECURE_LOGE("called for alarmid(%d), but max_number_of_ids(%d) index %d.", entry->alarm_id, max_number_of_ids, index);
entry = gs_iter->data;
if (entry->uid == uid && entry->alarm_id == alarm_id) {
found = true;
- b_data = g_strdup(g_quark_to_string(entry->quark_bundle));
+ b_data = g_strdup(entry->bundle);
break;
}
}
if (found) {
- if (b_data && strlen(b_data) == 4 && strncmp(b_data, "null", 4) == 0) {
+ if (b_data == NULL) {
ALARM_MGR_EXCEPTION_PRINT("The alarm(%d) is an regular alarm, not svc alarm.", alarm_id);
return_code = ERR_ALARM_INVALID_TYPE;
}
entry = gs_iter->data;
if (entry->uid == uid && entry->alarm_id == alarm_id) {
found = true;
- noti_data = strdup(g_quark_to_string(entry->quark_noti));
+ noti_data = strdup(entry->noti);
break;
}
}
if (found) {
- if (noti_data && strlen(noti_data) == 4 && strncmp(noti_data, "null", 4) == 0) {
+ if (noti_data == NULL) {
ALARM_MGR_EXCEPTION_PRINT("The alarm(%d) is an regular alarm, not svc alarm.", alarm_id);
return_code = ERR_ALARM_INVALID_TYPE;
}
continue;
++index;
SECURE_LOGD("#%d alarm id[%d] app_name[%s] duetime[%ld]",
- index, entry->alarm_id, g_quark_to_string(entry->quark_app_unique_name), entry->start);
+ index, entry->alarm_id, entry->app_unique_name, entry->start);
alarm_info_t *alarm_info = (alarm_info_t *) &(entry->alarm_info);
alarm_mode_t *mode = &alarm_info->mode;
(int)entry->end,
(int)entry->pid,
(bool)entry->global,
- (char *)g_quark_to_string(entry->quark_caller_pkgid),
- (char *)g_quark_to_string(entry->quark_callee_pkgid),
- (char *)g_quark_to_string(entry->quark_app_unique_name),
- (char *)g_quark_to_string(entry->quark_app_service_name),
- (char *)g_quark_to_string(entry->quark_dst_service_name),
+ CHECK_NULL_STRING(entry->caller_pkgid),
+ CHECK_NULL_STRING(entry->callee_pkgid),
+ CHECK_NULL_STRING(entry->app_unique_name),
+ CHECK_NULL_STRING(entry->app_service_name),
+ CHECK_NULL_STRING(entry->dst_service_name),
mode->u_interval.day_of_week,
mode->repeat,
entry->alarm_info.alarm_type);
} else {
ALARM_MGR_LOG_PRINT("The alarm(%d) is found.", alarm_id);
- callee_pkgid = (char *)g_quark_to_string(entry->quark_callee_pkgid);
- if (strncmp(callee_pkgid, "null", strlen(callee_pkgid)) == 0)
- callee_pkgid = (char *)g_quark_to_string(entry->quark_app_service_name)+6;
+ if (entry->callee_pkgid == NULL)
+ callee_pkgid = entry->app_service_name + 6;
+ else
+ callee_pkgid = entry->callee_pkgid;
ALARM_MGR_LOG_PRINT("The alarm pkgid : %s.", callee_pkgid);
}
}
+void _release_alarm_info_t(__alarm_info_t *entry)
+{
+ if (!entry)
+ return;
+
+ if (entry->caller_pkgid)
+ free(entry->caller_pkgid);
+ if (entry->callee_pkgid)
+ free(entry->callee_pkgid);
+ if (entry->app_unique_name)
+ free(entry->app_unique_name);
+ if (entry->app_service_name)
+ free(entry->app_service_name);
+ if (entry->app_service_name_mod)
+ free(entry->app_service_name_mod);
+ if (entry->dst_service_name)
+ free(entry->dst_service_name);
+
+ if (entry->dst_service_name_mod)
+ free(entry->dst_service_name_mod);
+ if (entry->bundle)
+ free(entry->bundle);
+ if (entry->noti)
+ free(entry->noti);
+
+ free(entry);
+}
+
int main()
{
GMainLoop *mainloop = NULL;