Tom,
Thanks for your help on this issue... I did get it resolved. Although it took me a little time to get the .patch file figured out in the correct format, it is working as it should now.
thank you again !
p.s. for those "linuxlly challanged" amongst us, the patch should read as follows:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
diff -urN da_vm-pop3d-1.1.7f.orig/extra.c da_vm-pop3d-1.1.7f/extra.c
--- da_vm-pop3d-1.1.7f.orig/extra.c 2005-01-17 11:13:17.000000000 -0700
+++ da_vm-pop3d-1.1.7f/extra.c 2005-09-03 10:20:52.000000000 -0700
@@ -255,6 +255,7 @@
unsigned int max_count = 0;
/* start with 1 because first line of mbox is From */
int empty_line = 1, line_count = 0, len = 0;
+ int imap_header = 0;
struct md5_ctx md5context;
@@ -282,6 +283,10 @@
while (strchr(buf, '\n') == NULL)
fgets(buf, FREAD_SIZE, mbox); /* get all of From line */
+ if(!imap_header && strstr(buf,"MAILER-DAEMON")) {
+ imap_header = 1; /* we have the imap header message */
+ }
+
if (num_messages > 0) { /* another message */
md5_finish_ctx(&md5context, messages[num_messages - 1].uidl);
}
@@ -322,8 +327,11 @@
}
/* creating md5 hash for the UIDL using just first 25 lines */
/* FiXMe: Should be only for header! -TEMHOTA */
- if (line_count++ < 26 && len > 0)
- md5_process_bytes(buf, len, &md5context);
+ if(strncmp(buf,"Status:",7) &&
+ strncmp(buf,"X-",2)) {
+ if (line_count++ < 26 && len > 0)
+ md5_process_bytes(buf, len, &md5context);
+ }
}
if (buf[0] == '\n')
@@ -335,6 +343,14 @@
if (num_messages > 0) {
md5_finish_ctx(&md5context, messages[num_messages - 1].uidl);
}
+ if(imap_header != 0) {
+ /* We have the imap header, lets always return
+ * this uidl for it so it won't download again.
+ * This message changes every time a message is
+ * read or deleted.
+ */
+ memset(messages[0].uidl,'\0',sizeof(messages[0].uidl));
+ }
return OK;
}