const char *name;
int priority; /* lower number = higher priority */
- /* temporarily set while cleaning: */
- const char *ns_name;
struct mail_storage *storage;
+
+ /* temporarily set while cleaning: */
struct mailbox *box;
struct mailbox_transaction_context *trans;
struct mail_search_context *search_ctx;
{
struct mail_search_args *search_args;
- trash->box = mailbox_open(trash->storage, trash->ns_name, NULL,
+ trash->box = mailbox_open(trash->storage, trash->name, NULL,
MAILBOX_OPEN_KEEP_RECENT);
if (trash->box == NULL)
return 0;
{
struct mail_storage *const *storages;
unsigned int i, count;
+ const char *name;
storages = array_get("a->storages, &count);
for (i = 0; i < count; i++) {
- trash->ns_name = trash->name;
- if (mail_namespace_update_name(storages[i]->ns,
- &trash->ns_name)) {
+ name = trash->name;
+ if (mail_namespace_update_name(storages[i]->ns, &name)) {
+ if (name != trash->name)
+ trash->name = p_strdup(config_pool, name);
trash->storage = storages[i];
return;
}
}
mailbox_close(&trash->box);
- trash->storage = NULL;
- trash->ns_name = NULL;
}
if (size_expunged < size_needed) {