void mail_index_unregister_sync_lost_handler(struct mail_index *index,
mail_index_sync_lost_handler_t *cb);
-int mail_index_create_tmp_file(struct mail_index *index, const char **path_r);
+int mail_index_create_tmp_file(struct mail_index *index,
+ const char *path_prefix, const char **path_r);
int mail_index_try_open_only(struct mail_index *index);
void mail_index_close_file(struct mail_index *index);
i_assert(!MAIL_INDEX_IS_IN_MEMORY(index));
i_assert(map->hdr.indexid == index->indexid);
- fd = mail_index_create_tmp_file(index, &path);
+ fd = mail_index_create_tmp_file(index, index->filepath, &path);
if (fd == -1)
return -1;
return ret;
}
-int mail_index_create_tmp_file(struct mail_index *index, const char **path_r)
+int mail_index_create_tmp_file(struct mail_index *index,
+ const char *path_prefix, const char **path_r)
{
mode_t old_mask;
const char *path;
i_assert(!MAIL_INDEX_IS_IN_MEMORY(index));
- path = *path_r = t_strconcat(index->filepath, ".tmp", NULL);
+ path = *path_r = t_strconcat(path_prefix, ".tmp", NULL);
old_mask = umask(0);
fd = open(path, O_RDWR|O_CREAT|O_EXCL, index->mode);
umask(old_mask);