aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS8
-rw-r--r--TODO.txt1
-rw-r--r--imap.c4
3 files changed, 11 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 554a99fa..c8f13b9c 100644
--- a/NEWS
+++ b/NEWS
@@ -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
diff --git a/TODO.txt b/TODO.txt
index 7ff1f69a..721fc194 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -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
diff --git a/imap.c b/imap.c
index 053b607c..ec097eb5 100644
--- a/imap.c
+++ b/imap.c
@@ -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)"