summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2005-08-23 10:29:10 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2005-08-23 10:29:10 +0000
commitba18e66ae840cf03be48235bbad9f09e68dd2400 (patch)
tree357d48822e55c72dd434843fce00cff2b8eeb38a
parentf9a68dd38e32cbd8f01719e70a2858fe88e627fd (diff)
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.
-rw-r--r--doc/doc-txt/ChangeLog7
-rw-r--r--src/src/exim.c7
2 files changed, 10 insertions, 4 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 2b51e62f2..31789929d 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.209 2005/08/23 08:46:33 ph10 Exp $
+$Cambridge: 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
-------------------------------------------
@@ -114,6 +114,11 @@ PH/26 Exim was recognizing IPv6 addresses of the form [IPv6:....] in EHLO
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
-----------------
diff --git a/src/src/exim.c b/src/src/exim.c
index 06e01399a..8ed39d654 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim.c,v 1.24 2005/08/09 13:31:52 ph10 Exp $ */
+/* $Cambridge: 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 @@ if (((debug_selector & D_any) != 0 || (log_extra_selector & LX_arguments) != 0)
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);
}