changeset 884:b0f28e7ead43

Avoid deleting mail currently being sent.
author Ben Schmidt
date Mon, 03 Feb 2014 10:02:12 +1100
parents 4e97d0735da7
children 58004be79ae0
files src/mlmmj-maintd.c
diffstat 1 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/mlmmj-maintd.c	Fri Jun 28 08:04:08 2013 +1000
+++ b/src/mlmmj-maintd.c	Mon Feb 03 10:02:12 2014 +1100
@@ -247,6 +247,7 @@
 			ch = strrchr(mailname, '.');
 			MY_ASSERT(ch);
 			*ch = '\0';
+			/* delete orphaned sidecar files */
 			if(stat(mailname, &st) < 0) {
 				if(errno == ENOENT) {
 					*ch = '.';
@@ -268,10 +269,18 @@
 
 		if((fromfd < 0 && err == ENOENT) ||
 		   (tofd < 0 && errno == ENOENT)) {
+			/* only delete old files to avoid deleting
+			   mail currently being sent */
+			t = time(NULL);
+			if(stat(mailname, &st) == 0) {
+				if(t - st.st_mtime > (time_t)36000) {
 			unlink(mailname);
+					/* avoid leaving orphans */
 			unlink(fromname);
 			unlink(toname);
 			unlink(reptoname);
+				}
+			}
 			myfree(mailname);
 			myfree(fromname);
 			myfree(toname);