summaryrefslogtreecommitdiffstats
path: root/src/lib/run_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/run_event.c')
-rw-r--r--src/lib/run_event.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/lib/run_event.c b/src/lib/run_event.c
index 28fbfd5e..45ed3cdc 100644
--- a/src/lib/run_event.c
+++ b/src/lib/run_event.c
@@ -28,7 +28,7 @@ void free_run_event_state(struct run_event_state *state)
free(state);
}
-int run_event(struct run_event_state *state,
+int run_event_on_dir_name(struct run_event_state *state,
const char *dump_dir_name,
const char *event
) {
@@ -183,6 +183,25 @@ int run_event(struct run_event_state *state,
return retval;
}
+int run_event_on_crash_data(struct run_event_state *state, crash_data_t *data, const char *event)
+{
+ struct dump_dir *dd = create_dump_dir_from_crash_data(data, NULL);
+ if (!dd)
+ return -1;
+ char *dir_name = xstrdup(dd->dd_dir);
+ dd_close(dd);
+ int r = run_event_on_dir_name(state, dir_name, event);
+ dd = dd_opendir(dir_name, 0);
+ free(dir_name);
+ if (dd)
+ {
+ g_hash_table_remove_all(data);
+ load_crash_data_from_dump_dir(data, dd);
+ dd_delete(dd);
+ }
+ return r;
+}
+
char *list_possible_events(struct dump_dir *dd, const char *dump_dir_name, const char *pfx)
{
FILE *conffile = fopen(CONF_DIR"/abrt_event.conf", "r");