summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2004-12-20 12:29:10 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2004-12-20 12:29:10 +0000
commit0ec020ea98fcff1a3c4a286f9a168c0004cf5d91 (patch)
treeeab25fcb5697c7a0b90af9e333bfddb02383afad
parenta444213a3484d4236c044558a7e1cf5a56183996 (diff)
When checking for a message's continued existence, exim_tidydb was not
looking in the split spool subdirectories.
-rw-r--r--doc/doc-txt/ChangeLog7
-rw-r--r--src/src/exim_dbutil.c10
2 files changed, 13 insertions, 4 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 181fa93bb..a06b29b49 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.44 2004/12/20 11:46:21 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.45 2004/12/20 12:29:10 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -190,6 +190,11 @@ Exim version 4.50
46. Reset the locale to "C" after calling embedded Perl, in case it was changed
(this can affect the format of dates).
+47. exim_tidydb, when checking for the continued existence of a message for
+ which it has found a message-specific retry record, was not finding
+ messages that were in split spool directories. Consequently, it was
+ deleting retry records that should have stayed in existence.
+
Exim version 4.43
-----------------
diff --git a/src/src/exim_dbutil.c b/src/src/exim_dbutil.c
index dd401741d..c193d38ae 100644
--- a/src/src/exim_dbutil.c
+++ b/src/src/exim_dbutil.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim_dbutil.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
+/* $Cambridge: exim/src/src/exim_dbutil.c,v 1.2 2004/12/20 12:29:10 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -1246,8 +1246,12 @@ while (keychain != NULL)
if (Ustat(buffer, &statbuf) != 0)
{
- dbfn_delete(dbm, key);
- printf("deleted %s (no message)\n", key);
+ sprintf(CS(buffer + path_len), "%c/%s-D", id[5], id);
+ if (Ustat(buffer, &statbuf) != 0)
+ {
+ dbfn_delete(dbm, key);
+ printf("deleted %s (no message)\n", key);
+ }
}
}
}