/usr/include/dovecot/mailbox-list-private.h is in dovecot-dev 1:2.2.9-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | #ifndef MAILBOX_LIST_PRIVATE_H
#define MAILBOX_LIST_PRIVATE_H
#include "mailbox-log.h"
#include "mailbox-list-notify.h"
#include "mail-namespace.h"
#include "mailbox-list.h"
#include "mailbox-list-iter.h"
#include "mail-storage-settings.h"
#define MAILBOX_LIST_NAME_MAILDIRPLUSPLUS "maildir++"
#define MAILBOX_LIST_NAME_IMAPDIR "imapdir"
#define MAILBOX_LIST_NAME_FS "fs"
#define MAILBOX_LIST_NAME_INDEX "index"
#define MAILBOX_LIST_NAME_NONE "none"
#define MAILBOX_LOG_FILE_NAME "dovecot.mailbox.log"
#define T_MAILBOX_LIST_ERR_NOT_FOUND(list, name) \
t_strdup_printf(MAIL_ERRSTR_MAILBOX_NOT_FOUND, \
mailbox_list_get_vname(list, name))
struct stat;
struct dirent;
struct fs;
struct imap_match_glob;
struct mailbox_tree_context;
struct mailbox_list_notify;
struct mailbox_list_notify_rec;
#define MAILBOX_INFO_FLAGS_FINISHED(flags) \
(((flags) & (MAILBOX_SELECT | MAILBOX_NOSELECT | \
MAILBOX_NONEXISTENT)) != 0)
struct mailbox_list_vfuncs {
struct mailbox_list *(*alloc)(void);
int (*init)(struct mailbox_list *list, const char **error_r);
void (*deinit)(struct mailbox_list *list);
int (*get_storage)(struct mailbox_list **list, const char *vname,
struct mail_storage **storage_r);
char (*get_hierarchy_sep)(struct mailbox_list *list);
const char *(*get_vname)(struct mailbox_list *list,
const char *storage_name);
const char *(*get_storage_name)(struct mailbox_list *list,
const char *vname);
int (*get_path)(struct mailbox_list *list, const char *name,
enum mailbox_list_path_type type, const char **path_r);
const char *(*get_temp_prefix)(struct mailbox_list *list, bool global);
const char *(*join_refpattern)(struct mailbox_list *list,
const char *ref, const char *pattern);
struct mailbox_list_iterate_context *
(*iter_init)(struct mailbox_list *list,
const char *const *patterns,
enum mailbox_list_iter_flags flags);
const struct mailbox_info *
(*iter_next)(struct mailbox_list_iterate_context *ctx);
int (*iter_deinit)(struct mailbox_list_iterate_context *ctx);
int (*get_mailbox_flags)(struct mailbox_list *list,
const char *dir, const char *fname,
enum mailbox_list_file_type type,
enum mailbox_info_flags *flags_r);
/* Returns TRUE if name is mailbox's internal file/directory.
If it does, mailbox deletion assumes it can safely delete it. */
bool (*is_internal_name)(struct mailbox_list *list, const char *name);
/* Read subscriptions from src_list, but place them into
dest_list->subscriptions. Set errors to dest_list. */
int (*subscriptions_refresh)(struct mailbox_list *src_list,
struct mailbox_list *dest_list);
int (*set_subscribed)(struct mailbox_list *list,
const char *name, bool set);
int (*delete_mailbox)(struct mailbox_list *list, const char *name);
int (*delete_dir)(struct mailbox_list *list, const char *name);
int (*delete_symlink)(struct mailbox_list *list, const char *name);
int (*rename_mailbox)(struct mailbox_list *oldlist, const char *oldname,
struct mailbox_list *newlist, const char *newname);
int (*notify_init)(struct mailbox_list *list,
enum mailbox_list_notify_event mask,
struct mailbox_list_notify **notify_r);
int (*notify_next)(struct mailbox_list_notify *notify,
const struct mailbox_list_notify_rec **rec_r);
void (*notify_deinit)(struct mailbox_list_notify *notify);
void (*notify_wait)(struct mailbox_list_notify *notify,
void (*callback)(void *context), void *context);
};
struct mailbox_list_module_register {
unsigned int id;
};
union mailbox_list_module_context {
struct mailbox_list_vfuncs super;
struct mailbox_list_module_register *reg;
};
struct mailbox_list {
const char *name;
enum mailbox_list_properties props;
size_t mailbox_name_max_length;
struct mailbox_list_vfuncs v, *vlast;
/* private: */
pool_t pool;
struct mail_namespace *ns;
struct mailbox_list_settings set;
const struct mail_storage_settings *mail_set;
enum mailbox_list_flags flags;
/* may not be set yet, use mailbox_list_get_permissions() to access */
struct mailbox_permissions root_permissions;
struct mailbox_tree_context *subscriptions;
time_t subscriptions_mtime, subscriptions_read_time;
struct mailbox_log *changelog;
time_t changelog_timestamp;
pool_t guid_cache_pool;
HASH_TABLE(uint8_t *, struct mailbox_guid_cache_rec *) guid_cache;
bool guid_cache_errors;
char *error_string;
enum mail_error error;
bool temporary_error;
ARRAY(union mailbox_list_module_context *) module_contexts;
unsigned int index_root_dir_created:1;
};
union mailbox_list_iterate_module_context {
struct mailbox_list_module_register *reg;
};
struct mailbox_list_iterate_context {
struct mailbox_list *list;
pool_t pool;
enum mailbox_list_iter_flags flags;
bool failed;
struct imap_match_glob *glob;
struct mailbox_list_autocreate_iterate_context *autocreate_ctx;
struct mailbox_info specialuse_info;
ARRAY(union mailbox_list_iterate_module_context *) module_contexts;
};
struct mailbox_list_iter_update_context {
struct mailbox_list_iterate_context *iter_ctx;
struct mailbox_tree_context *tree_ctx;
struct imap_match_glob *glob;
enum mailbox_info_flags leaf_flags, parent_flags;
unsigned int update_only:1;
unsigned int match_parents:1;
};
/* Modules should use do "my_id = mailbox_list_module_id++" and
use objects' module_contexts[id] for their own purposes. */
extern struct mailbox_list_module_register mailbox_list_module_register;
void mailbox_lists_init(void);
void mailbox_lists_deinit(void);
int mailbox_list_settings_parse(struct mail_user *user, const char *data,
struct mailbox_list_settings *set_r,
const char **error_r);
const char *mailbox_list_default_get_storage_name(struct mailbox_list *list,
const char *vname);
const char *mailbox_list_default_get_vname(struct mailbox_list *list,
const char *storage_name);
const char *mailbox_list_get_unexpanded_path(struct mailbox_list *list,
enum mailbox_list_path_type type);
bool mailbox_list_set_get_root_path(const struct mailbox_list_settings *set,
enum mailbox_list_path_type type,
const char **path_r);
int mailbox_list_delete_index_control(struct mailbox_list *list,
const char *name);
void mailbox_list_iter_update(struct mailbox_list_iter_update_context *ctx,
const char *name);
int mailbox_list_iter_subscriptions_refresh(struct mailbox_list *list);
bool mailbox_list_name_is_too_large(const char *name, char sep);
enum mailbox_list_file_type mailbox_list_get_file_type(const struct dirent *d);
int mailbox_list_dirent_is_alias_symlink(struct mailbox_list *list,
const char *dir_path,
const struct dirent *d);
bool mailbox_list_try_get_absolute_path(struct mailbox_list *list,
const char **name);
void mailbox_list_add_change(struct mailbox_list *list,
enum mailbox_log_record_type type,
const guid_128_t guid_128);
void mailbox_name_get_sha128(const char *name, guid_128_t guid_128_r);
void mailbox_list_clear_error(struct mailbox_list *list);
void mailbox_list_set_error(struct mailbox_list *list,
enum mail_error error, const char *string);
void mailbox_list_set_critical(struct mailbox_list *list, const char *fmt, ...)
ATTR_FORMAT(2, 3);
void mailbox_list_set_internal_error(struct mailbox_list *list);
bool mailbox_list_set_error_from_errno(struct mailbox_list *list);
int mailbox_list_init_fs(struct mailbox_list *list, const char *driver,
const char *args, const char *root_dir,
struct fs **fs_r, const char **error_r);
#endif
|