#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
#define ALARMMGR_LOG_BUFFER_SIZE 10000
-#define ALARMMGR_LOG_BUFFER_STRING_SIZE 200
+#define ALARMMGR_LOG_BUFFER_STRING_SIZE 400
#define ALARMMGR_LOG_TAG_SIZE 20
-#define ALARMMGR_LOG_MESSAGE_SIZE 120
-#define ALARMMGR_LOG_FILE_PATH "/run/alarmmgr_log/alarmmgr.log"
+#define ALARMMGR_LOG_MESSAGE_SIZE 330
+#define ALARMMGR_LOG_DIR_PATH "/var/log/appfw/alarmmgr_log/"
+#define ALARMMGR_LOG_FILE_PATH "/var/log/appfw/alarmmgr_log/alarmmgr.log"
static int log_index = 0;
static int log_fd = 0;
#endif
#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
static void __initialize_module_log(void);
static bool __save_module_log(const char *tag, const char *messgae);
+static void __save_alarm_info_log(const char *tag, __alarm_info_t *info);
#endif
int __display_lock_state(char *state, char *flag, unsigned int timeout);
}
#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
else
- strncpy(log_tag, "SET RTC", sizeof(log_tag) - 1);
+ strncpy(log_tag, "SET RTC START", sizeof(log_tag) - 1);
char *timebuf = ctime(&_time);
if (timebuf) {
timebuf[strlen(timebuf) - 1] = '\0'; /* to avoid new line */
- snprintf(log_message, sizeof(log_message), "RTC & OS =%d, %s", (int)_time, timebuf);
+ snprintf(log_message, sizeof(log_message), "RTC & OS =%ld, %s",
+ _time, timebuf);
}
__save_module_log(log_tag, log_message);
if ((entry->due_time + diff_time - new_time) >
(entry->due_time - entry->alarm_info.reserved_info)) {
LOGE("[ RTC reset]: new time %s %ld, diff %f, id %d duetime %s %ld %ld",
- ctime(&new_time), new_time, diff_time, entry->alarm_id,
- ctime(&entry->due_time), entry->due_time,
- entry->alarm_info.reserved_info);
+ ctime(&new_time), (long)new_time, diff_time, entry->alarm_id,
+ ctime(&entry->due_time), (long)entry->due_time,
+ (long)entry->alarm_info.reserved_info);
continue;
}
entry->due_time = new_time +
((entry->due_time - new_time) % alarm_info->mode.u_interval.interval);
LOGE("[ RTC reset]: new time %s %ld, diff %f, id %d duetime %s %ld %ld",
- ctime(&new_time), new_time, diff_time, entry->alarm_id,
- ctime(&entry->due_time), entry->due_time,
- alarm_info->mode.u_interval.interval);
+ ctime(&new_time), (long)new_time, diff_time, entry->alarm_id,
+ ctime(&entry->due_time), (long)entry->due_time,
+ (long)alarm_info->mode.u_interval.interval);
}
}
due_time = _alarm_next_duetime(__alarm_info);
__alarm_add_to_list(__alarm_info);
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ __save_alarm_info_log("CREATE SVC", __alarm_info);
+#endif
+
if (due_time == 0) {
ALARM_MGR_EXCEPTION_PRINT("[alarm-server]:Create a new alarm: "
"due_time is 0, alarm(%d) \n", *alarm_id);
due_time = _alarm_next_duetime(__alarm_info);
__alarm_add_to_list(__alarm_info);
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ __save_alarm_info_log("CREATE", __alarm_info);
+#endif
+
if (due_time == 0) {
ALARM_MGR_EXCEPTION_PRINT("[alarm-server]:Create a new alarm: due_time is 0, alarm(%d).", *alarm_id);
return true;
due_time = _alarm_next_duetime(__alarm_info);
__alarm_add_to_list(__alarm_info);
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ __save_alarm_info_log("CREATE NOTI", __alarm_info);
+#endif
+
if (due_time == 0) {
ALARM_MGR_EXCEPTION_PRINT("[alarm-server]:Create a new alarm: due_time is 0, alarm(%d).", *alarm_id);
return true;
result = _remove_from_scheduled_alarm_list(uid, alarm_id);
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ __save_alarm_info_log("UPDATE", __alarm_info);
+#endif
+
if (result == true && g_slist_length(g_scheduled_alarm_list) == 0) {
/*there is no scheduled alarm */
_alarm_disable_timer(alarm_context);
bundle *b = NULL;
char *appid = NULL;
uid_t target_uid;
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- char log_message[ALARMMGR_LOG_MESSAGE_SIZE] = {0,};
-#endif
ALARM_MGR_LOG_PRINT("[alarm-server]: Enter");
}
ALARM_MGR_LOG_PRINT("alarm_id[%d] is expired.", alarm_id);
+ SECURE_LOGW("alarm_expired : from [uid : %d, pid : %d, pkgid : %s, "
+ "unique_name : %s]", __alarm_info->uid,__alarm_info->pid,
+ __alarm_info->caller_pkgid, __alarm_info->app_unique_name);
#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- snprintf(log_message, sizeof(log_message), "alarmID: %d, pid: %d, duetime: %ld", alarm_id, app_pid, __alarm_info->due_time);
- __save_module_log("EXPIRED", log_message);
+ __save_alarm_info_log("EXPIRED", __alarm_info);
#endif
-
- if (__alarm_info->alarm_info.mode.repeat == ALARM_REPEAT_MODE_ONCE)
+ if (__alarm_info->alarm_info.mode.repeat == ALARM_REPEAT_MODE_ONCE) {
__alarm_remove_from_list(__alarm_info->uid, alarm_id, NULL);
- else
+ } else {
_alarm_next_duetime(__alarm_info);
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ __save_alarm_info_log("DUETIME", __alarm_info);
+#endif
+ }
}
done:
_alarm_schedule();
__rtc_set();
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ __save_module_log("SET RTC END", "requested by vconf");
+#endif
+
return;
}
{
char buf[1024];
+ if (access(ALARMMGR_LOG_DIR_PATH, F_OK)) {
+ ALARM_MGR_EXCEPTION_PRINT("Not exist(%s)", ALARMMGR_LOG_DIR_PATH);
+
+ if (mkdir(ALARMMGR_LOG_DIR_PATH, (S_IRUSR | S_IWUSR | S_IXUSR |
+ S_IRGRP | S_IWGRP | S_IXGRP))) {
+ ALARM_MGR_EXCEPTION_PRINT("Failed to create directory(%s). errno(%d)",
+ ALARMMGR_LOG_DIR_PATH, errno);
+ return;
+ }
+ }
+
log_fd = open(ALARMMGR_LOG_FILE_PATH, O_CREAT | O_WRONLY, 0644);
if (log_fd == -1) {
ALARM_MGR_EXCEPTION_PRINT("Opening the file for alarmmgr log is failed. err: %s", strerror_r(errno, buf, sizeof(buf)));
char buffer[ALARMMGR_LOG_BUFFER_STRING_SIZE] = {0,};
time_t now;
char buf[1024];
+ char *time_str;
if (log_fd == -1) {
ALARM_MGR_EXCEPTION_PRINT("The file is not ready.");
lseek(log_fd, 0, SEEK_SET);
time(&now);
- snprintf(buffer, ALARMMGR_LOG_BUFFER_STRING_SIZE, "[%-6d] %-20s %-120s %d-%s", log_index, tag, message, (int)now, ctime(&now));
+ time_str = ctime(&now);
+ if (time_str)
+ time_str[strlen(time_str) - 1] = '\0'; /* to avoid new line */
+
+ snprintf(buffer, ALARMMGR_LOG_BUFFER_STRING_SIZE, "[%-6d]%s\t%s\t : %ld %s", log_index, tag, message, now, time_str);
+
+ SECURE_LOGW("%s", buffer);
int ret = write(log_fd, buffer, strlen(buffer));
if (ret < 0) {
return true;
}
+
+static void __save_alarm_info_log(const char *tag, __alarm_info_t *info)
+{
+ char log_message[ALARMMGR_LOG_MESSAGE_SIZE] = {0,};
+ char *due_time_str = ctime(&(info->due_time));
+ if (due_time_str)
+ due_time_str[strlen(due_time_str) - 1] = '\0'; /* to avoid new line */
+
+ char *timebuf = strdup(ctime(&info->due_time));
+ if (timebuf)
+ timebuf[strlen(timebuf) - 1] = '\0'; /* to avoid new line */
+
+ snprintf(log_message, sizeof(log_message),
+ "alarmID: %d, uid: %d, caller : %s(%d) -> callee : %s, "
+ "dst_name %s, dst_mod %s, "
+ "type 0x%x, mode %d, "
+ "interval:%ld, duetime: %ld %s",
+ info->alarm_id, info->uid, info->app_unique_name, info->pid, info->callee_pkgid,
+ info->dst_service_name, info->dst_service_name_mod,
+ info->alarm_info.alarm_type, info->alarm_info.mode.repeat,
+ info->alarm_info.mode.u_interval.interval, info->due_time, timebuf);
+
+ if (timebuf)
+ free(timebuf);
+
+ __save_module_log(tag, log_message);
+}
+
#endif /* _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG */
int __display_lock_state(char *state, char *flag, unsigned int timeout)
double diff_time = 0.0;
struct timeval cur_time = {0,};
int return_code = ALARMMGR_RESULT_SUCCESS;
-
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ guint pid;
+ char sender_id[MAX_APP_ID];
+ char log_message[ALARMMGR_LOG_MESSAGE_SIZE];
+#endif
_alarm_disable_timer(alarm_context); /* Disable the timer to reschedule the alarm before the time is changed. */
tzset();
__set_time(time_sec); /* Change both OS time and RTC */
ALARM_MGR_LOG_PRINT("[TIMESTAMP]Current time(%ld), New time(%d)(%s), diff_time(%f)",
- cur_time.tv_sec, time_sec, ctime((const time_t *)&time_sec), diff_time);
+ cur_time.tv_sec, time_sec, ctime((const time_t *)&time_sec), diff_time);
__reschedule_alarms_with_newtime(cur_time.tv_sec, time_sec, diff_time);
g_dbus_method_invocation_return_value(invoc, g_variant_new("(i)", return_code));
+
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ pid = __get_caller_pid(g_dbus_method_invocation_get_sender(invoc));
+ __get_cached_unique_name(pid, sender_id, MAX_APP_ID, NULL, 5001);
+ snprintf(log_message, sizeof(log_message), "requested by %s (pid %d)", sender_id, pid);
+ __save_module_log("SET RTC END", log_message);
+#endif
+
return true;
}
struct timespec sleep_time = {0,};
guint real_newtime = 0;
accrue_msec = 0; /* reset accrued msec */
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ guint pid;
+ char sender_id[MAX_APP_ID];
+ char log_message[ALARMMGR_LOG_MESSAGE_SIZE];
+#endif
_alarm_disable_timer(alarm_context); /* Disable the timer to reschedule the alarm before the time is changed. */
ALARM_MGR_LOG_PRINT("Requested(%d.%09d) Delay(%ld.%09ld) Sleep(%09ld)", req_sec, req_nsec, delay.tv_sec, delay.tv_nsec, sleep_time.tv_nsec);
__reschedule_alarms_with_newtime(cur_time.tv_sec, real_newtime, diff_time);
g_dbus_method_invocation_return_value(invoc, g_variant_new("(i)", ALARMMGR_RESULT_SUCCESS));
+
+#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
+ pid = __get_caller_pid(g_dbus_method_invocation_get_sender(invoc));
+ __get_cached_unique_name(pid, sender_id, MAX_APP_ID, NULL, 5001);
+ snprintf(log_message, sizeof(log_message), "requested by %s (pid %d)", sender_id, pid);
+ __save_module_log("SET RTC END", log_message);
+#endif
+
return true;
}
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", sizeof(log_tag) - 1);
-#endif
- } else {
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- strncpy(log_tag, "CREATE", sizeof(log_tag) - 1);
+ snprintf(log_message, sizeof(log_message),
+ "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
+ alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
+ __save_module_log(log_tag, log_message);
#endif
}
-
g_dbus_method_invocation_return_value(invoc, g_variant_new("(ii)", alarm_id, return_code));
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- snprintf(log_message, sizeof(log_message), "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
- alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
- __save_module_log(log_tag, log_message);
-#endif
-
return true;
}
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", sizeof(log_tag) - 1);
-#endif
- } else {
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- strncpy(log_tag, "CREATE", sizeof(log_tag) - 1);
+ snprintf(log_message, sizeof(log_message),
+ "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
+ alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
+ __save_module_log(log_tag, log_message);
#endif
}
g_dbus_method_invocation_return_value(invoc, g_variant_new("(ii)", alarm_id, return_code));
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- snprintf(log_message, sizeof(log_message), "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
- alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
- __save_module_log(log_tag, log_message);
-#endif
-
return true;
}
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", sizeof(log_tag) - 1);
-#endif
- } else {
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- strncpy(log_tag, "CREATE", sizeof(log_tag) - 1);
+ snprintf(log_message, sizeof(log_message),
+ "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
+ alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
+ __save_module_log(log_tag, log_message);
#endif
}
g_dbus_method_invocation_return_value(invoc, g_variant_new("(ii)", alarm_id, return_code));
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- snprintf(log_message, sizeof(log_message), "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
- alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
- __save_module_log(log_tag, log_message);
-#endif
-
return true;
}
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", sizeof(log_tag) - 1);
-#endif
- } else {
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- strncpy(log_tag, "CREATE", sizeof(log_tag) - 1);
+ snprintf(log_message, sizeof(log_message),
+ "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
+ alarm_id, uid, pid, alarm_info.start.year, alarm_info.start.month,
+ alarm_info.start.day, alarm_info.start.hour,
+ alarm_info.start.min, alarm_info.start.sec);
+ __save_module_log(log_tag, log_message);
#endif
}
g_dbus_method_invocation_return_value(invoc,
g_variant_new("(ii)", alarm_id, return_code));
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- snprintf(log_message, sizeof(log_message), "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
- alarm_id, uid, pid, alarm_info.start.year, alarm_info.start.month,
- alarm_info.start.day, alarm_info.start.hour,
- alarm_info.start.min, alarm_info.start.sec);
- __save_module_log(log_tag, log_message);
-#endif
return true;
}
ALARM_MGR_EXCEPTION_PRINT("Unable to update the alarm! alarm_id[%d], return_code[%d]", alarm_id, return_code);
#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
strncpy(log_tag, "FAIL: UPDATE", sizeof(log_tag) - 1);
-#endif
- } else {
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- strncpy(log_tag, "UPDATE", sizeof(log_tag) - 1);
+ snprintf(log_message, sizeof(log_message),
+ "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
+ alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
+ __save_module_log(log_tag, log_message);
+
#endif
}
g_dbus_method_invocation_return_value(invoc, g_variant_new("(i)", return_code));
-#ifdef _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG
- snprintf(log_message, sizeof(log_message), "alarmID: %d, uid: %d, pid: %d, duetime: %d-%d-%d %02d:%02d:%02d",
- alarm_id, uid, pid, start_year, start_month, start_day, start_hour, start_min, start_sec);
- __save_module_log(log_tag, log_message);
-#endif
-
return true;
}