Lines Matching refs:list
9 #include "mailbox-list-private.h"
10 #include "mailbox-list-delete.h"
17 mailbox_list_check_root_delete(struct mailbox_list *list, const char *name,
22 root_dir = mailbox_list_get_root_forced(list, MAILBOX_LIST_PATH_TYPE_DIR);
27 (list->ns->flags & NAMESPACE_FLAG_INBOX_ANY) != 0) {
28 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE,
32 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE,
47 int mailbox_list_delete_maildir_via_trash(struct mailbox_list *list,
54 if (mailbox_list_get_path(list, name, MAILBOX_LIST_PATH_TYPE_MAILBOX,
57 if (mailbox_list_check_root_delete(list, name, src) < 0)
71 mailbox_list_set_error(list, MAIL_ERROR_NOTFOUND,
72 T_MAILBOX_LIST_ERR_NOT_FOUND(list, name));
80 if (mailbox_list_set_error_from_errno(list))
82 mailbox_list_set_critical(list,
103 mailbox_list_set_critical(list,
111 mailbox_list_set_critical(list,
121 int mailbox_list_delete_mailbox_file(struct mailbox_list *list,
128 mailbox_list_set_error(list, MAIL_ERROR_NOTFOUND,
129 T_MAILBOX_LIST_ERR_NOT_FOUND(list, name));
132 if (!mailbox_list_set_error_from_errno(list)) {
133 mailbox_list_set_critical(list,
140 int mailbox_list_delete_mailbox_nonrecursive(struct mailbox_list *list,
152 if (mailbox_list_check_root_delete(list, name, path) < 0)
158 mailbox_list_set_error(list, MAIL_ERROR_NOTFOUND,
159 T_MAILBOX_LIST_ERR_NOT_FOUND(list, name));
161 if (!mailbox_list_set_error_from_errno(list)) {
162 mailbox_list_set_critical(list,
183 mailbox_dir = list->v.is_internal_name != NULL &&
184 list->v.is_internal_name(list, d->d_name);
191 mailbox_list_set_critical(list,
206 mailbox_list_set_critical(list,
215 mailbox_list_set_critical(list, "readdir(%s) failed: %m", path);
219 mailbox_list_set_critical(list, "closedir(%s) failed: %m",
243 mailbox_list_set_error(list, MAIL_ERROR_NOTFOUND,
244 T_MAILBOX_LIST_ERR_NOT_FOUND(list, name));
246 mailbox_list_set_critical(list, "rmdir(%s) failed: %m",
253 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE,
260 static bool mailbox_list_path_is_index(struct mailbox_list *list,
269 type_root = mailbox_list_get_root_forced(list, type);
270 index_root = mailbox_list_get_root_forced(list, MAILBOX_LIST_PATH_TYPE_INDEX);
274 void mailbox_list_delete_until_root(struct mailbox_list *list, const char *path,
280 if (list->set.iter_from_index_dir && !list->set.no_noselect &&
281 mailbox_list_path_is_index(list, type)) {
289 root_dir = mailbox_list_get_root_forced(list, type);
312 mailbox_list_set_critical(list, "rmdir(%s) failed: %m",
324 void mailbox_list_delete_mailbox_until_root(struct mailbox_list *list,
338 if (mailbox_list_get_path(list, storage_name, types[i], &path) > 0)
339 mailbox_list_delete_until_root(list, path, types[i]);
343 static int mailbox_list_try_delete(struct mailbox_list *list, const char *name,
349 if (mailbox_list_get_path(list, name, MAILBOX_LIST_PATH_TYPE_MAILBOX,
351 mailbox_list_get_path(list, name, type, &path) <= 0 ||
356 mailbox_list_get_path(list, name, MAILBOX_LIST_PATH_TYPE_INDEX,
369 *list->set.maildir_name == '\0') {
372 bool rmdir_path = *list->set.maildir_name != '\0';
373 if (mailbox_list_delete_mailbox_nonrecursive(list, name, path,
378 mailbox_list_get_last_mail_error(list);
390 mailbox_list_set_critical(list,
399 mailbox_list_delete_until_root(list, path, type);
403 int mailbox_list_delete_finish(struct mailbox_list *list, const char *name)
407 ret = mailbox_list_try_delete(list, name, MAILBOX_LIST_PATH_TYPE_INDEX);
408 ret2 = mailbox_list_try_delete(list, name, MAILBOX_LIST_PATH_TYPE_INDEX_CACHE);
411 ret2 = mailbox_list_try_delete(list, name, MAILBOX_LIST_PATH_TYPE_CONTROL);
414 ret2 = mailbox_list_try_delete(list, name, MAILBOX_LIST_PATH_TYPE_ALT_MAILBOX);
420 int mailbox_list_delete_finish_ret(struct mailbox_list *list,
426 mailbox_list_get_last_mail_error(list) != MAIL_ERROR_NOTFOUND) {
429 } else if ((ret2 = mailbox_list_delete_finish(list, name)) < 0) {
440 make sure the list has the correct error set, since it
442 mailbox_list_set_error(list, MAIL_ERROR_NOTFOUND,
443 T_MAILBOX_LIST_ERR_NOT_FOUND(list, name));
463 int mailbox_list_delete_symlink_default(struct mailbox_list *list,
469 ret = mailbox_list_get_path(list, name, MAILBOX_LIST_PATH_TYPE_DIR,
479 mailbox_list_set_error(list, MAIL_ERROR_NOTFOUND,
480 T_MAILBOX_LIST_ERR_NOT_FOUND(list, name));
482 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE,
485 mailbox_list_set_critical(list, "unlink(%s) failed: %m", path);