--- bbmail-0.6.10.orig/bbmail.cc +++ bbmail-0.6.10/bbmail.cc @@ -55,7 +55,7 @@ } bool Checkmail::CheckMHBox(int spoolno,bool force) { - struct stat file_status; + struct stat file_status, maildir_status; FILE *fp; int num[2]={-1,-1}; int number_of_values; @@ -67,6 +67,23 @@ bbtool->getResource()->spoolfile[spoolno].filename); return(false); } + + // check maildir new/ and cur/ directories + char *maildir = new + char[strlen (bbtool->getResource()->spoolfile[spoolno].filename) + 5]; + sprintf (maildir, "%s/new", bbtool->getResource()->spoolfile[spoolno].filename); + if (stat (maildir, &maildir_status) == 0 && + maildir_status.st_mtime > file_status.st_mtime) { + file_status.st_mtime = maildir_status.st_mtime; + } + + sprintf (maildir, "%s/cur", bbtool->getResource()->spoolfile[spoolno].filename); + if (stat (maildir, &maildir_status) == 0 && + maildir_status.st_mtime > file_status.st_mtime) { + file_status.st_mtime = maildir_status.st_mtime; + } + + delete [] maildir; } if ((file_status.st_mtime != spoolfile[spoolno].last_mtime)&&