diff options
Diffstat (limited to 'src/lib/abrt_dbus.c')
-rw-r--r-- | src/lib/abrt_dbus.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/lib/abrt_dbus.c b/src/lib/abrt_dbus.c index 8843158b..5d8d861d 100644 --- a/src/lib/abrt_dbus.c +++ b/src/lib/abrt_dbus.c @@ -817,7 +817,7 @@ int32_t call_DeleteDebugDump(const char *dump_dir_name) return result; } -int connect_to_abrtd_and_call_DeleteDebugDump(const char *dump_dir_name) +static int connect_to_abrtd_and_call_DeleteDebugDump(const char *dump_dir_name) { DBusError err; dbus_error_init(&err); @@ -847,3 +847,18 @@ int connect_to_abrtd_and_call_DeleteDebugDump(const char *dump_dir_name) return ret; } + +int delete_dump_dir_possibly_using_abrtd(const char *dump_dir_name) +{ + /* Try to delete it ourselves */ + struct dump_dir *dd = dd_opendir(dump_dir_name, DD_OPEN_READONLY); + if (dd) + { + if (dd->locked) /* it is not readonly */ + return dd_delete(dd); + dd_close(dd); + } + + VERB1 log("Deleting '%s' via abrtd dbus call", dump_dir_name); + return connect_to_abrtd_and_call_DeleteDebugDump(dump_dir_name); +} |