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.
pgp00000.pgp
Description: PGP signature
--- imap/pop3dserver.c 5 Oct 2003 04:47:50 -0000 1.25
+++ imap/pop3dserver.c 7 Oct 2003 12:37:14 -0000
@@ -194,7 +194,7 @@
if (ch != '\n')
{
- if (n < sizeof(linebuf)-3)
+ if (n < sizeof(linebuf)-5)
linebuf[n++]=ch;
continue;
}
@@ -202,7 +202,7 @@
n=0;
if (vernum == 0)
- strcat(linebuf, " 0");
+ strcat(linebuf, " 0 0");
/* Convert version 0 to version 1 format - PRESTO! */
if ((p=strrchr(linebuf, ' ')) == NULL)
@@ -238,6 +238,9 @@
case 3:
m->size=sz;
m->next=list;
+
+ if (m->size == 0 && m->uid.uidv == 0)
+ calcsize(m); /* VERSION 0 */
list=m;
++mcnt;
break;
pgp00001.pgp
Description: PGP signature
