]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Better logging when moving requeue mailfiles into place
authorBen Schmidt <none@none>
Thu, 11 Nov 2010 13:01:07 +0000 (00:01 +1100)
committerBen Schmidt <none@none>
Thu, 11 Nov 2010 13:01:07 +0000 (00:01 +1100)
ChangeLog
src/mlmmj-send.c

index fe272d8b619679290cd78d10ef14d43ad16b4a58..104f14ad9f47fb5d5ca368c5e20949dd4d9e61cf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+ o Improved error logging when requeuing
  o Fix php-admin to work when topdir contains a symlink (e.g. on Mac)
  o Better techniques for locating support files in php-admin -- existing
    installations will need to have their conf/config.php altered to set
index 445799b89de20efa69b4e81da354b7347a9e0d83..61808027e6c60fc4c06ad28d457459cc5e7f0e64 100644 (file)
@@ -1303,10 +1303,23 @@ int main(int argc, char **argv)
                } 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);