diff options
author | Matthias Andree <matthias.andree@gmx.de> | 2007-12-26 23:24:32 +0000 |
---|---|---|
committer | Matthias Andree <matthias.andree@gmx.de> | 2007-12-26 23:24:32 +0000 |
commit | 1db90e6d2b3774dfedb84f7de1e515a767336cee (patch) | |
tree | ae9726367c5d35a5c13a28056e784cc17d4d423b | |
parent | d583c6119a4be8ccf08cb82b47542d00b2ab47a3 (diff) | |
download | fetchmail-1db90e6d2b3774dfedb84f7de1e515a767336cee.tar.gz fetchmail-1db90e6d2b3774dfedb84f7de1e515a767336cee.tar.bz2 fetchmail-1db90e6d2b3774dfedb84f7de1e515a767336cee.zip |
Fix Berlios Bug #11797, imap_mark_seen doesn't consider expunged messages
(and marks the wrong messages seen after expunges, leading to data loss in
'keep flush' configurations). Report and patch by Alexander Cherepanov. Thanks\!
svn path=/branches/BRANCH_6-3/; revision=5147
-rw-r--r-- | NEWS | 8 | ||||
-rw-r--r-- | TODO.txt | 1 | ||||
-rw-r--r-- | imap.c | 4 |
3 files changed, 11 insertions, 2 deletions
@@ -52,9 +52,15 @@ fetchmail 6.3.9 (not yet released): fetchmail by default talks SMTP to the localhost, so the overall risk is rather low. This bug was apparently introduced on 1998-11-27 when the bouncemail facility - was modularized. The bug made then its appearance in fetchmail release 4.6.8. + was modularized. The bug then made its appearance in fetchmail release 4.6.8. See also fetchmail-SA-2007-02.txt. +# CRITICAL BUG FIX: +* When expunging, mark the right messages as seen to avoid message loss in "keep + flush" configurations. Workaround for previous versions: "expunge 0". + Report and patch by Alexander Cherepanov - thanks a lot, Berlios Bug #11797, + "imap_mark_seen doesn't consider expunged messages". + # BUG FIXES: * The configure script will additionally check for 'dn_skipname', to fix build failures with µClibc. The new check still recognizes the resolver libraries on @@ -1,5 +1,4 @@ soon - MUST: -- BerliOS Bug #11797, imap_mark_seen doesn't consider expunged messages - BerliOS Bug #10972, Fetchmail refetches big messages repeatedly (SMTP listener issue) - report multiline SMTP errors properly (sample in private mail from @@ -1240,6 +1240,10 @@ static int imap_mark_seen(int sock, struct query *ctl, int number) /* mark the given message as seen */ { (void)ctl; + + /* expunges change the message numbers */ + number -= expunged; + return(gen_transact(sock, imap_version == IMAP4 ? "STORE %d +FLAGS.SILENT (\\Seen)" |