--- src/include/dump_dir.h | 1 + src/lib/dump_dir.c | 10 ++++++++++ 2 files changed, 11 insertions(+)
diff --git a/src/include/dump_dir.h b/src/include/dump_dir.h index f8d2931..1073949 100644 --- a/src/include/dump_dir.h +++ b/src/include/dump_dir.h @@ -70,6 +70,7 @@ void dd_save_text(struct dump_dir *dd, const char *name, const char *data); void dd_save_binary(struct dump_dir *dd, const char *name, const char *data, unsigned size); /* Returns 0 if directory is deleted or not found */ int dd_delete(struct dump_dir *dd); +int dd_rename(struct dump_dir *dd, const char *new_path);
/* reported_to handling */ diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c index 908a2df..a61fccf 100644 --- a/src/lib/dump_dir.c +++ b/src/lib/dump_dir.c @@ -913,6 +913,16 @@ report_result_t *find_in_reported_to(struct dump_dir *dd, const char *prefix) return result; }
+int dd_rename(struct dump_dir *dd, const char *new_path) +{ + int res = rename(dd->dd_dirname, new_path); + if (res == 0) + { + free(dd->dd_dirname); + dd->dd_dirname = rm_trailing_slashes(new_path); + } + return res; +}
/* Utility function */