I have just submitted a bug (#2877) and a patch that fixes XFER, such that XFER also transfers the cyrus.expunge and the deleted but unexpunged message files to the destination machine. The approach I used was to open the directory and
transfer all the message files,  transfer the cyrus.expunge file (if it
exists),  and then the other meta files.  Finally the rest of the user's
files are transferred in dump_mailbox (mbdump.c).

The only problem I can see with this,  is if the destination machine
does not support delayed expunge, we have transferred the cyrus.expunge,
and the previously deleted messages.  These deleted messages are now
sitting in the destination mailbox but not in the cyrus.index file. If the user's mailbox were then reconstructed, the deleted messages would end up back in the mailbox.

Rename also has the same problem (bug 2872),  where the cyrus.expunge is
deleted and the deleted messages are expunged and not moved to the new location. I propose adding similar code to rename, that moves whatever message files in the mailbox
to the destination along with all the meta files.

So do you think this is a valid way of processing xfer and rename?


Reply via email to