You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a copy/move is local, then the COPYUID response is calculated locally, and everything's fine.
If the target of the copy/move is remote, then the messages are APPENDed to the target, and the APPENDUID from the remote server's response is copied into the COPYUID response to the client:
If I'm reading the spec right, I think [APPENDUID uidvalidity newuids] would correspond with [COPYUID uidvalidity olduids newuids].
That is to say, if we were to use the remote values from APPENDUID and copy in the locally-known one, the locally-known one goes in the middle. So we'd need to parse and reassemble the APPENDUID response properly, not just concatenate the locally-known value.
This came up on the info list: https://cyrus.topicbox.com/groups/info/T25c7531b76d23ba0-Mb4348afa7dbb30b2bc95f978/move-mails-between-folders-on-different-backend-servers
If a copy/move is local, then the COPYUID response is calculated locally, and everything's fine.
If the target of the copy/move is remote, then the messages are APPENDed to the target, and the APPENDUID from the remote server's response is copied into the COPYUID response to the client:
cyrus-imapd/imap/imapd.c
Lines 6698 to 6707 in 7f17801
A similar pattern occurs in imap_proxy.c:
cyrus-imapd/imap/imap_proxy.c
Lines 1170 to 1179 in 7f17801
But this behaviour makes no sense: the APPENDUID response is specified as having two fields, whereas the COPYUID response has three: https://datatracker.ietf.org/doc/html/rfc4315#section-3
The text was updated successfully, but these errors were encountered: