21 #ifndef LIBREPORT_DUMP_DIR_H_
22 #define LIBREPORT_DUMP_DIR_H_
25 #include <sys/types.h>
33 DD_FAIL_QUIETLY_ENOENT = (1 << 0),
34 DD_FAIL_QUIETLY_EACCES = (1 << 1),
36 DD_OPEN_FOLLOW = (1 << 2),
37 DD_OPEN_READONLY = (1 << 3),
53 struct dump_dir *dd_opendir(
const char *dir,
int flags);
57 struct dump_dir *dd_create(
const char *dir, uid_t uid, mode_t mode);
59 void dd_create_basic_files(
struct dump_dir *dd, uid_t uid,
const char *chroot_dir);
60 int dd_exist(
const struct dump_dir *dd,
const char *path);
61 void dd_sanitize_mode_and_owner(
struct dump_dir *dd);
63 DIR *dd_init_next_file(
struct dump_dir *dd);
64 int dd_get_next_file(
struct dump_dir *dd,
char **short_name,
char **full_name);
68 DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE = (DD_OPEN_READONLY << 1),
70 char* dd_load_text_ext(
const struct dump_dir *dd,
const char *name,
unsigned flags);
71 char* dd_load_text(
const struct dump_dir *dd,
const char *name);
72 void dd_save_text(
struct dump_dir *dd,
const char *name,
const char *data);
73 void dd_save_binary(
struct dump_dir *dd,
const char *name,
const char *data,
unsigned size);
78 long dd_get_item_size(
struct dump_dir *dd,
const char *name);
83 int dd_delete_item(
struct dump_dir *dd,
const char *name);
86 int dd_rename(
struct dump_dir *dd,
const char *new_path);
95 int dd_chown(
struct dump_dir *dd, uid_t new_uid);
99 #define add_reported_to libreport_add_reported_to
100 void add_reported_to(
struct dump_dir *dd,
const char *line);
110 #define free_report_result libreport_free_report_result
112 #define find_in_reported_to libreport_find_in_reported_to
117 void delete_dump_dir(
const char *dirname);
121 int dump_dir_accessible_by_uid(
const char *dirname, uid_t uid);
129 int dd_mark_as_notreportable(
struct dump_dir *dd,
const char *reason);