ph10 2005/08/23 11:29:10 BST
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src exim.c
Log:
Don't panic if the attempt to create the spool directory fails and the
error isn't "already exists". Needed for the new test suite.
Revision Changes Path
1.210 +5 -0 exim/exim-doc/doc-txt/ChangeLog
1.25 +3 -2 exim/exim-src/src/exim.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.209
retrieving revision 1.210
diff -u -r1.209 -r1.210
--- ChangeLog 23 Aug 2005 08:46:33 -0000 1.209
+++ ChangeLog 23 Aug 2005 10:29:10 -0000 1.210
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.209 2005/08/23 08:46:33 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.210 2005/08/23 10:29:10 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -113,6 +113,11 @@
header lines when this was not necessary.
PH/27 Added the % operator to ${eval:}.
+
+PH/28 Exim tries to create and chdir to its spool directory when it starts;
+ it should be ignoring failures (because with -C, for example, it has lost
+ privilege). It wasn't ignoring creation failures other than "already
+ exists".
Exim version 4.52
Index: exim.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/exim.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- exim.c 9 Aug 2005 13:31:52 -0000 1.24
+++ exim.c 23 Aug 2005 10:29:10 -0000 1.25
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/exim.c,v 1.24 2005/08/09 13:31:52 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/exim.c,v 1.25 2005/08/23 10:29:10 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -3300,11 +3300,12 @@
on this in the code, which always uses fully qualified names, but it's useful
for core dumps etc. Don't complain if it fails - the spool directory might not
be generally accessible and calls with the -C option (and others) have lost
-privilege by now. */
+privilege by now. Before the chdir, we try to ensure that the directory exists.
+*/
if (Uchdir(spool_directory) != 0)
{
- (void)directory_make(spool_directory, US"", SPOOL_DIRECTORY_MODE, TRUE);
+ (void)directory_make(spool_directory, US"", SPOOL_DIRECTORY_MODE, FALSE);
(void)Uchdir(spool_directory);
}