summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2005-03-22 14:11:54 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2005-03-22 14:11:54 +0000
commit1a46a8c5c398c91f20c3f4def0ceb448ec8de96a (patch)
tree511495f754f5483f2645ab05cfb6dfb6d77f5c6e /doc
parent8d67ada3e036ae1b48d7f20a82af42f9e52b810d (diff)
1. Added Tony F's ${dlfunc expansion, slightly modified (see NewStuff).
2. Recognize ${perl even if not compiled, and give suitable error message.
Diffstat (limited to 'doc')
-rw-r--r--doc/doc-txt/ChangeLog102
-rw-r--r--doc/doc-txt/NewStuff94
2 files changed, 121 insertions, 75 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index b2a43652c..f366edf2c 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.93 2005/03/22 10:11:42 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.94 2005/03/22 14:11:54 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -7,53 +7,59 @@ Change log file for Exim from version 4.21
Exim version 4.51
-----------------
-TK/01. Added Yahoo DomainKeys support via libdomainkeys. See
- doc/experimental-spec.txt for details. (http://domainkeys.sf.net)
-
-TK/02. Fix ACL "control" statment not being available in MIME ACL.
-
-TK/03. Fix ACL "regex" condition not being available in MIME ACL.
-
-PH/01. Installed a patch from the Sieve maintainer that allows -bf to be used
- to test Sieve filters that use "vacation".
-
-PH/02. Installed a slightly modified version of Nikos Mavrogiannopoulos' patch
- that changes the way the GnuTLS parameters are stored in the cache file.
- The new format can be generated externally. For backward compatibility,
- if the data in the cache doesn't make sense, Exim assumes it has read an
- old-format file, and it generates new data and writes a new file. This
- means that you can't go back to an older release without removing the
- file.
-
-PH/03. A redirect router that has both "unseen" and "one_time" set does not
- work if there are any delivery delays because "one_time" forces the
- parent to be marked "delivered", so its unseen clone is never tried
- again. For this reason, Exim now forbids the simultaneous setting of
- these two options.
-
-PH/04. Change 4.11/85 fixed an obscure bug concerned with addresses that are
- redirected to themselves ("homonym" addresses). Read the long ChangeLog
- entry if you want to know the details. The fix, however, neglected to
- consider the case when local delivery batching is involved. The test for
- "previously delivered" was not happening when checking to see if an
- address could be batched with a previous (undelivered) one; under
- certain circumstances this could lead to multiple deliveries to the same
- address. A one-line patch to add the appropriate test fixes the bug.
-
-PH/05. Renamed the macro SOCKLEN_T as EXIM_SOCKLEN_T because AIX uses SOCKLEN_T
- in its include files, and this causes problems building Exim.
-
-PH/06. A number of "verify =" ACL conditions have no options (e.g. verify =
- header_syntax) but Exim was just ignoring anything given after a slash.
- In particular, this caused confusion with an attempt to use "verify =
- reverse_host_lookup/defer_ok". An error is now given when options are
- supplied for verify items that do not have them. (Maybe reverse_host_
- lookup should have a defer_ok option, but that's a different point.)
-
-PH/07. Increase the size of the buffer for incoming SMTP commands from 512 (as
- defined by RFC 821) to 2048, because there were problems with some AUTH
- commands, and RFC 1869 says the size should be increased for extended
- SMTP commands that take arguments.
+TK/01 Added Yahoo DomainKeys support via libdomainkeys. See
+ doc/experimental-spec.txt for details. (http://domainkeys.sf.net)
+
+TK/02 Fix ACL "control" statment not being available in MIME ACL.
+
+TK/03 Fix ACL "regex" condition not being available in MIME ACL.
+
+PH/01 Installed a patch from the Sieve maintainer that allows -bf to be used
+ to test Sieve filters that use "vacation".
+
+PH/02 Installed a slightly modified version of Nikos Mavrogiannopoulos' patch
+ that changes the way the GnuTLS parameters are stored in the cache file.
+ The new format can be generated externally. For backward compatibility,
+ if the data in the cache doesn't make sense, Exim assumes it has read an
+ old-format file, and it generates new data and writes a new file. This
+ means that you can't go back to an older release without removing the
+ file.
+
+PH/03 A redirect router that has both "unseen" and "one_time" set does not
+ work if there are any delivery delays because "one_time" forces the
+ parent to be marked "delivered", so its unseen clone is never tried
+ again. For this reason, Exim now forbids the simultaneous setting of
+ these two options.
+
+PH/04 Change 4.11/85 fixed an obscure bug concerned with addresses that are
+ redirected to themselves ("homonym" addresses). Read the long ChangeLog
+ entry if you want to know the details. The fix, however, neglected to
+ consider the case when local delivery batching is involved. The test for
+ "previously delivered" was not happening when checking to see if an
+ address could be batched with a previous (undelivered) one; under
+ certain circumstances this could lead to multiple deliveries to the same
+ address. A one-line patch to add the appropriate test fixes the bug.
+
+PH/05 Renamed the macro SOCKLEN_T as EXIM_SOCKLEN_T because AIX uses SOCKLEN_T
+ in its include files, and this causes problems building Exim.
+
+PH/06 A number of "verify =" ACL conditions have no options (e.g. verify =
+ header_syntax) but Exim was just ignoring anything given after a slash.
+ In particular, this caused confusion with an attempt to use "verify =
+ reverse_host_lookup/defer_ok". An error is now given when options are
+ supplied for verify items that do not have them. (Maybe reverse_host_
+ lookup should have a defer_ok option, but that's a different point.)
+
+PH/07 Increase the size of the buffer for incoming SMTP commands from 512 (as
+ defined by RFC 821) to 2048, because there were problems with some AUTH
+ commands, and RFC 1869 says the size should be increased for extended
+ SMTP commands that take arguments.
+
+PH/08 Added ${dlfunc dynamically loaded function for expansion (code from Tony
+ Finch).
+
+PH/09 Previously, an attempt to use ${perl when it wasn't compiled gave an
+ "unknown" error; now it says that the functionality isn't in the binary.
A note about Exim versions 4.44 and 4.50
diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff
index 827c5d1dc..383c0f6f4 100644
--- a/doc/doc-txt/NewStuff
+++ b/doc/doc-txt/NewStuff
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.27 2005/03/08 11:38:21 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.28 2005/03/22 14:11:54 ph10 Exp $
New Features in Exim
--------------------
@@ -12,32 +12,72 @@ file contains a listing of all changes, including bug fixes.
Version 4.51
------------
-PH/01. The format in which GnuTLS parameters are written to the gnutls-param
- file in the spool directory has been changed. This change has been made
- to alleviate problems that some people had with the generation of the
- parameters by Exim when /dev/random was exhausted. In this situation,
- Exim would hang until /dev/random acquired some more entropy.
-
- The new code exports and imports the DH and RSA parameters in PEM
- format. This means that the parameters can be generated externally using
- the certtool command that is part of GnuTLS.
-
- To replace the parameters with new ones, instead of deleting the file
- and letting Exim re-create it, you can generate new parameters using
- certtool and, when this has been done, replace Exim's cache file by
- renaming. The relevant commands are something like this:
-
- # rm -f new.params
- # touch new.params
- # chown exim:exim new.params
- # chmod 0400 new.params
- # certtool --generate-privkey --bits 512 >new.params
- # echo "" >>new.params
- # certtool --generate-dh-params --bits 1024 >> new.params
- # mv new.params params
-
- If Exim never has to generate the parameters itself, the possibility of
- stalling is removed.
+PH/01 The format in which GnuTLS parameters are written to the gnutls-param
+ file in the spool directory has been changed. This change has been made
+ to alleviate problems that some people had with the generation of the
+ parameters by Exim when /dev/random was exhausted. In this situation,
+ Exim would hang until /dev/random acquired some more entropy.
+
+ The new code exports and imports the DH and RSA parameters in PEM
+ format. This means that the parameters can be generated externally using
+ the certtool command that is part of GnuTLS.
+
+ To replace the parameters with new ones, instead of deleting the file
+ and letting Exim re-create it, you can generate new parameters using
+ certtool and, when this has been done, replace Exim's cache file by
+ renaming. The relevant commands are something like this:
+
+ # rm -f new.params
+ # touch new.params
+ # chown exim:exim new.params
+ # chmod 0400 new.params
+ # certtool --generate-privkey --bits 512 >new.params
+ # echo "" >>new.params
+ # certtool --generate-dh-params --bits 1024 >> new.params
+ # mv new.params params
+
+ If Exim never has to generate the parameters itself, the possibility of
+ stalling is removed.
+
+PH/02 A new expansion item for dynamically loading and calling a locally-
+ written C function is now provided, if Exim is compiled with
+
+ EXPAND_DLFUNC=yes
+
+ set in Local/Makefile. The facility is not included by default (a
+ suitable error is given if you try to use it when it is not there.)
+ You load and call the function like this:
+
+ ${dlfunc{/some/file}{function}{arg1}{arg2}...}
+
+ Once loaded, Exim remembers it so that it doesn't reload it in the same
+ Exim process (but of course Exim does start new processes frequently).
+
+ There may be from zero to eight arguments to the function. When compiling
+ a local function that is to be called in this way, local_scan.h should be
+ included. The Exim variables and functions that are defined by that API
+ are also available for dynamically loaded functions. The function itself
+ must have the following type:
+
+ int dlfunction(uschar **yield, int argc, uschar *argv[])
+
+ Where "uschar" is a typedef for "unsigned char" in local_scan.h. The
+ function should return one of the following values:
+
+ OK Success. The string that is placed in "yield" is put into
+ the expanded string that is being built.
+
+ FAIL A non-forced expansion failure occurs, with the error
+ message taken from "yield", if it is set.
+
+ FAIL_FORCED A forced expansion failure occurs, with the error message
+ taken from "yield" if it is set.
+
+ ERROR Same as FAIL, except that a panic log entry is written.
+
+ When compiling a function that is to be used in this way with gcc,
+ you need to add -shared to the gcc command. Also, in the Exim build-time
+ configuration, you must add -export-dynamic to EXTRALIBS.
Version 4.50