[Dovecot] Workaround for outlook UIDL handling bug ??
Nikolaus Gerstmayr
mymailingslists at gmx.at
Thu Sep 2 21:50:44 EEST 2004
Scenario: Using Dovecot 0.99.10.9 as pop3 server.
With delete on retrival off.
clients: outlook*
Problem: Everytihng work perfectly, except that outlooks keeps
re-downloading SOME mail over and over. Though it already got them.
No obvious pattern which, but only a small percentage.
First of I looked at dovecots UIDLs.
Initialy I thought it's broken (see my previous thread)
Sorry for even thinking that, it's ok, my bad :)
Rather, outlooks UIDL handling seems to be very broken :(
But I think I found an easy workaround.
Dovecots UIDLS seem to be
timestamp.message#
eg.
1 1093990148.1
2 1093990148.2
3 1093990148.3
4 1093990148.4
5 1093990148.5
6 1093990148.6
7 1093990148.7
8 1093990148.8
9 1093990148.9
10 1093990148.10
11 1093990148.11
12 1093990148.12
The problems started with #10
-> Asumption: outlook falsy only takes a fixed numbers of chars to hold the
UIDL, the rest ist ignored. Perhaps only the first 13 or so.
What I did is reversing the order in UIDL generation.
Instead of
timestamp.message# ->
message#.timestamp.
Seems to work perfectly.
Well, a bit too early too tell if it really works.
Need to wait a couple of days and see if the problem re-appears or not.
The only thing I'm 100% sure is that outlooks UIDL handling is broken.
BTW: very nice source code.
Very easy to follow, took me 5 minutes to find the correct .c and routine.
In /pop3/command.c,
list_uids() all I changed is
... mail->seq, client->uidvality, mail->uid to
mail->seq, mail->uid, client->uidvality.
(2 times)
If anyone is interested, I'll keep you informed if the problem is really
gone with this mini-patch.
More information about the dovecot
mailing list