A NOTE has been added to this issue. ====================================================================== http://www.dbmail.org/mantis/view.php?id=535 ====================================================================== Reported By: paul Assigned To: ====================================================================== Project: DBMail Issue ID: 535 Category: IMAP daemon Reproducibility: always Severity: minor Priority: normal Status: new target: ====================================================================== Date Submitted: 14-Mar-07 09:38 CET Last Modified: 16-Mar-07 22:40 CET ====================================================================== Summary: EXPUNGE response is incorrect Description: The EXPUNGE response doesn't return the correct response if the Deleted flag was stored silently ======================================================================
---------------------------------------------------------------------- idk - 15-Mar-07 10:37 ---------------------------------------------------------------------- I don't know if the condition is setting deleted flag silently, but I found this incorrect behaviour of EXPUNGE command: 000R UID STORE 542930,542932,542934,542936,542939,542941 +FLAGS.SILENT (\Deleted \Seen) 000R OK UID STORE completed 000S EXPUNGE * 87 EXPUNGE * 88 EXPUNGE * 89 EXPUNGE * 90 EXPUNGE * 91 EXPUNGE * 92 EXPUNGE 000S OK EXPUNGE completed The problem is in invalid order of * EXPUNGE messages. By the RFC for this example there is two choices: send this messages in reverse order or six time send the same * 87 EXPUNGE. I thought over my problem with expunging more messages (in SquirrelMail as well as Outlook Express, the most popular IMAP clients of my users) by studying MSOE log files. Then I found inconsistency between MSOE log and packet capture out (in test reported above MSOE logged only last messsage OK EXPUNGE). Till now I'll belive packet sniffer only. But I don't understand this: in db_expunge is SELECT message_idnr FROM messages ORDER BY message_idnr DESC, so near right for report (report should has not UID), but after returning of fetched ids back into _ic_expunge ones are destroyed (dm_free(msgids)) and then is called dbmail_imap_session_mailbox_status which prints via imap_msginfo_notify "* %llu EXPUNGE\r\n" out in g_tree_foreach loop for oldmsginfo = self->msginfo. From where is self->msginfo filled? db_expunge has no ref parameter to self... ---------------------------------------------------------------------- paul - 16-Mar-07 15:07 ---------------------------------------------------------------------- Please test the latest SVN revisions in the 2.2. branch. ---------------------------------------------------------------------- jasb - 16-Mar-07 20:14 ---------------------------------------------------------------------- Paul, Sometimes, not always this also happens... Want a level5 debug log right? ---------------------------------------------------------------------- idk - 16-Mar-07 22:40 ---------------------------------------------------------------------- Hmm, the latest trunk (2470) works for me fine. Thanks. I believe my note about result discarding was helpful :) (I saw diffs). Issue History Date Modified Username Field Change ====================================================================== 14-Mar-07 09:38 paul New Issue 14-Mar-07 10:01 paul Description Updated 14-Mar-07 13:53 jasb Issue Monitored: jasb 15-Mar-07 10:37 idk Note Added: 0001900 15-Mar-07 10:38 idk Issue Monitored: idk 16-Mar-07 15:07 paul Note Added: 0001909 16-Mar-07 20:14 jasb Note Added: 0001912 16-Mar-07 22:40 idk Note Added: 0001913 ====================================================================== _______________________________________________ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://twister.fastxs.net/mailman/listinfo/dbmail-dev