ph10 2004/12/20 12:29:10 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src exim_dbutil.c
Log:
When checking for a message's continued existence, exim_tidydb was not
looking in the split spool subdirectories.
Revision Changes Path
1.45 +5 -0 exim/exim-doc/doc-txt/ChangeLog
1.2 +6 -2 exim/exim-src/src/exim_dbutil.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- ChangeLog 20 Dec 2004 11:46:21 -0000 1.44
+++ ChangeLog 20 Dec 2004 12:29:10 -0000 1.45
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.44 2004/12/20 11:46:21 ph10 Exp $
+$Cambridge: exim/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
-------------------------------------------
@@ -189,6 +189,11 @@
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
Index: exim_dbutil.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/exim_dbutil.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- exim_dbutil.c 7 Oct 2004 10:39:01 -0000 1.1
+++ exim_dbutil.c 20 Dec 2004 12:29:10 -0000 1.2
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/exim_dbutil.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
+/* $Cambridge: exim/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 @@
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);
+ }
}
}
}