Jeff Tucker writes:
I haven't studied the code in great detail, but I don't see how the system will ever end up with the filename as a modern UIDL. Sam, what am I missing? Or what were you expecting that isn't here? My old 1.6 pop3dserver.c simply prints the filename for the UIDL. What do I need to do to make 2.1.2 do the same?
Try the following patch. The upgrade logic may not be working correctly.
Sam,
Unfortunately, this still doesn't work. The patch seems to be entirely concerned with opening an older version of the courierpop3dsizelist file. It appears that if you opened one of these old files (was it just a filename and a size), then every message entry in the msglist gets 0 in the uid.n and uid.uidv. With my old version of Courier IMAP, this file doesn't exist. So, the readpop3dlist() returns with just a single, blank or null entry in the msglist as far as I can tell.
When this happens, the system notices that there are files in the cur directory which don't appear in the msglist. This causes savepop3dlist() to be called, which writes out a new courierpop3dsizelist file with version 2 entries in it. From then on, if UIDL is called the version 2 entries cause the new-style UIDL to be printed.
The only way an old-style UIDL (filename) will be printed is if the uid.n field in the msglist is zero. So, what I need is a msglist with all these current existing messages to have a uid.n of 0. The only way I can see that happening is if the system noticed that it was started with no courierpop3dsizelist file and created one using the special rule that uid.n was set to zero for all existing files. All new files can have an incrementing uid.n field. This might break other logic, though.
I have a feeling that intermediate versions of Courier IMAP created earlier versions of the courierpop3dsizelist file, ones in which the uid.n wasn't printed out. Those versions printed the filename as the UIDL. When this version reads one of those old files, it gets 0 for the uid.n for every filename and saves that when writing out the new-style file. But this version of the software doesn't seem to be able to handle a missing courierpop3dsizelist file.
What if I patched this version of the code to store 0 for the uid.n for every file. I could run that for a month or so, then undo the patch. That would work, wouldn't it?
Jeff
------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
