#include "log_dump.h"
#include "dbus-handler.h"
-#define CRASH_BUS_NAME "org.tizen.system.crash"
-#define CRASH_BUS_PATH "/Org/Tizen/System/Crash/Crash"
+/* Dbus activation */
+#define CRASH_BUS_NAME "org.tizen.system.crash"
+#define CRASH_OBJECT_PATH "/Org/Tizen/System/Crash/Crash"
+
+/* Log dump signal */
+#define LOG_DUMP_BUS_NAME "org.tizen.system.logdump"
+#define LOG_DUMP_OBJECT_PATH "/Org/Tizen/System/LogDump"
+#define LOG_DUMP_INTERFACE_NAME LOG_DUMP_BUS_NAME
+#define LOG_DUMP_START_SIGNAL "Start"
+#define LOG_DUMP_FINISH_SIGNAL "Finish"
#define TIMEOUT_INTERVAL 30
guint registration_id;
registration_id = g_dbus_connection_register_object(conn,
- CRASH_BUS_PATH, introspection_data->interfaces[0],
+ CRASH_OBJECT_PATH, introspection_data->interfaces[0],
&interface_vtable, NULL, NULL, NULL);
if (registration_id == 0)
LOGE("Failed to g_dbus_connection_register_object");
}
if (error) {
- LOGE("Failed to get dbus");
+ LOGE("Failed to get dbus: %s", error->message);
g_error_free(error);
return;
}
return 0;
}
+
+static int broadcast_logdump(const char *signal)
+{
+ GDBusConnection *conn;
+ GError *error = NULL;
+
+ LOGI("broadcast signal: %s", signal);
+ conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
+ if (error) {
+ LOGE("Failed to get dbus: %s", error->message);
+ g_error_free(error);
+ return -1;
+ }
+
+ g_dbus_connection_emit_signal(conn,
+ NULL,
+ LOG_DUMP_OBJECT_PATH,
+ LOG_DUMP_INTERFACE_NAME,
+ signal,
+ NULL,
+ &error);
+ if (error) {
+ LOGE("Failed to emit signal: %s", error->message);
+ g_error_free(error);
+ return -1;
+ }
+
+ return 0;
+}
+
+int broadcast_logdump_start(void)
+{
+ return broadcast_logdump(LOG_DUMP_START_SIGNAL);
+}
+
+int broadcast_logdump_finish(void)
+{
+ return broadcast_logdump(LOG_DUMP_FINISH_SIGNAL);
+}
time_t cur_time;
struct tm loc_tm;
+ broadcast_logdump_start();
+
/* Make debug directory */
if (access(LOG_DUMP_DIR, F_OK) != 0) {
ret = snprintf(command, sizeof(command),
}
}
+ broadcast_logdump_finish();
+
/* Further operations for log_dump here */
exit: