diff options
author | Philip Hazel <ph10@hermes.cam.ac.uk> | 2004-12-20 12:29:10 +0000 |
---|---|---|
committer | Philip Hazel <ph10@hermes.cam.ac.uk> | 2004-12-20 12:29:10 +0000 |
commit | 0ec020ea98fcff1a3c4a286f9a168c0004cf5d91 (patch) | |
tree | eab25fcb5697c7a0b90af9e333bfddb02383afad | |
parent | a444213a3484d4236c044558a7e1cf5a56183996 (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/ChangeLog | 7 | ||||
-rw-r--r-- | src/src/exim_dbutil.c | 10 |
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); + } } } } |