mbox-save.c revision 468bb8fbe53f28a18a47b8dc6761171d5d8ce706
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen/* Copyright (C) 2002 Timo Sirainen */
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainenstatic int write_from_line(MailStorage *storage, int fd, time_t internal_date)
c5b99a8a85370e7d1f7edb1fcb18a9d44616f726Timo Sirainen /* failed, use just the hostname */
01ff322068d8cb54d37b478efc1348087b1f9f78Timo Sirainen sender = t_strconcat(storage->user, "@", my_hostdomain, NULL);
01ff322068d8cb54d37b478efc1348087b1f9f78Timo Sirainen line = mbox_from_create(sender, internal_date);
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainenint mbox_storage_save(Mailbox *box, MailFlags flags, const char *custom_flags[],
44a9b5fc1b57e5cc0a113f8cada9d9011747cadcTimo Sirainen time_t internal_date, IOBuffer *data, size_t data_size)
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen mail_storage_set_error(box->storage, "Mailbox is read-only");
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen if (!index_mailbox_fix_custom_flags(ibox, &flags, custom_flags))
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen /* append the data into mbox file */
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen fd = open(ibox->index->mbox_path, O_RDWR | O_CREAT);
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen mail_storage_set_critical(box->storage, "Can't open mbox file "
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen if (!mbox_lock(ibox->index, ibox->index->mbox_path, fd)) {
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen "lseek() failed for mbox file %s: %m",
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen if (!write_from_line(box->storage, fd, internal_date) ||
0469ed17dafcc56589ce00960a23f4f06817dfb5Timo Sirainen /* failed, truncate file back to original size */