summaryrefslogtreecommitdiffstats
path: root/src/lib/abrt_dbus.c
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-02-25 15:55:44 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2011-02-25 15:55:44 +0100
commitc00b15ff52f89ada9770453580e5828fd466e9c5 (patch)
treee17de93d9efda6ae58616b2debf9dce819919793 /src/lib/abrt_dbus.c
parent2951be08071ebe14b69e2da92a67e7d0a844e89a (diff)
downloadabrt-c00b15ff52f89ada9770453580e5828fd466e9c5.tar.gz
abrt-c00b15ff52f89ada9770453580e5828fd466e9c5.tar.xz
abrt-c00b15ff52f89ada9770453580e5828fd466e9c5.zip
change stealing semantics from copy to move
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/lib/abrt_dbus.c')
-rw-r--r--src/lib/abrt_dbus.c17
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);
+}