Hi,
There seems to be a bug in exicyclog. If log_file_path is set in the
configuration file to be ":syslog", then the script "guesses" where the
logs files are, rather than using the compiled in default. In our case
the guess is not the same as the compiled default, so the script
suddenly stopped working when I started to use syslog...
The following patch checks to see if log_file_path is "". If so, it
attempts to read it from exim with no configuration file to get the
compiled in version, before it falls back to the previous guessing code.
This is against exicyclog from exim 4.44. It seems to be the same with
exim 4.50, too.
Matthew
--- exicyclog-dist Wed Jun 8 17:37:43 2005
+++ exicyclog-new Wed Jun 8 17:41:16 2005
@@ -136,9 +136,18 @@
log_file_path=`echo "$log_file_path" | \
sed 's/^ *:\{0,1\} *syslog *:\{0,1\} *//;s/: *syslog *:/:/;s/: *syslog *$//'`
-# If log_file_path is empty, then the logs we are interested in are called
-# "mainlog" and "rejectlog" in the directory called "log" in the spool
-# directory. Otherwise we fish out the directory from the given path, and
+# If log_file_path is empty then try and get the compiled in default by using
+# /dev/null as the configuration file.
+
+if [ "$log_file_path" = "" ]; then
+ log_file_path=`$exim_path -C /dev/null -bP log_file_path | sed 's/.*=[ ]*//'`
+ log_file_path=`echo "$log_file_path" | \
+ sed 's/^ *:\{0,1\} *syslog *:\{0,1\} *//;s/: *syslog *:/:/;s/: *syslog *$//'`
+fi
+
+# If log_file_path is still empty, then the logs we are interested in are
+# probably called "mainlog" and "rejectlog" in the directory called "log" in the
+# spool directory. Otherwise we fish out the directory from the given path, and
# also the names of the logs.
if [ "$log_file_path" = "" ]; then
--
Matthew Newton <mcn4@???>
UNIX and e-mail Systems Administrator, Network Support Section,
Computer Centre, University of Leicester,
Leicester LE1 7RH, United Kingdom