Signed-off-by: Nikola Pajkovsky <npajkovs(a)redhat.com>
---
src/include/report/dump_dir.h | 1 +
src/lib/dump_dir.c | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/src/include/report/dump_dir.h b/src/include/report/dump_dir.h
index 913eca1..849525e 100644
--- a/src/include/report/dump_dir.h
+++ b/src/include/report/dump_dir.h
@@ -59,6 +59,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);
void dd_delete(struct dump_dir *dd);
char **dd_get_unknown_files(struct dump_dir *dd, const char **known_files);
+void dd_add_attachments_name(struct dump_dir *dd, const char *name);
void delete_dump_dir(const char *dd_dir);
diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c
index 0e0b5f1..7f62be3 100644
--- a/src/lib/dump_dir.c
+++ b/src/lib/dump_dir.c
@@ -544,6 +544,40 @@ char **dd_get_unknown_files(struct dump_dir *dd, const char
**known_files)
return unknowns;
}
+/*
+ * todo: add flags OPEN, CLOSE to be able run OPEN | CLOSE
+ * and safe a few boring commands
+ */
+void dd_add_attachments_name(struct dump_dir *dd, const char *name)
+{
+ if (!dd->locked)
+ error_msg_and_die("dump_dir is not opened"); /* bug */
+
+ char *attach_list = dd_load_text_ext(dd, "attachments",
+ DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
+ if (!attach_list)
+ {
+ dd_save_text(dd, "attachments", name);
+ return;
+ }
+
+ char *token = strtok(attach_list, "\n");
+ while (token)
+ {
+ if (strcmp(name, token) == 0)
+ {
+ free(attach_list);
+ return;
+ }
+
+ token = strtok(NULL, "\n");
+ }
+
+ char *add = xasprintf("%s\n%s\n", attach_list, name);
+ dd_save_text(dd, "attachments", add);
+ free(add);
+}
+
/* Utility function */
void delete_dump_dir(const char *dd_dir)
{
--
1.7.3.3.489.g44430