summaryrefslogtreecommitdiff
blob: 8e23afd6399109a2ad46542dd5b0ceb7cb509173 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- 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)&&