diff src/mlmmj-send.c @ 772:179d5a0ed686

Better logging when moving requeue mailfiles into place
author Ben Schmidt
date Fri, 12 Nov 2010 00:01:07 +1100
parents f8f3f4525a2b
children 2add5c5f88f8
line wrap: on
line diff
--- a/src/mlmmj-send.c	Mon Nov 01 08:31:08 2010 +1100
+++ b/src/mlmmj-send.c	Fri Nov 12 00:01:07 2010 +1100
@@ -1303,10 +1303,23 @@
 		} else {
 			len = strlen(listdir) + 9 + 20 + 9;
 		  	requeuefilename = mymalloc(len);
-		  	snprintf(requeuefilename, len, "%s/requeue/%d/mailfile", listdir,
-				mindex);
-			if (rename(mailfilename, requeuefilename) < 0)
+			snprintf(requeuefilename, len, "%s/requeue/%d",
+				listdir, mindex);
+			if(stat(requeuefilename, &st) < 0) {
+				/* Nothing was requeued and we don't keep
+				 * mail for a noarchive list. */
 				unlink(mailfilename);
+			} else {
+				snprintf(requeuefilename, len,
+					"%s/requeue/%d/mailfile",
+					listdir, mindex);
+				if (rename(mailfilename, requeuefilename) < 0) {
+					log_error(LOG_ARGS,
+							"Could not rename(%s,%s);",
+							mailfilename,
+							requeuefilename);
+				}
+			}
 			myfree(requeuefilename);
 		}
 		myfree(archivefilename);