From 1a46a8c5c398c91f20c3f4def0ceb448ec8de96a Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Tue, 22 Mar 2005 14:11:54 +0000 Subject: 1. Added Tony F's ${dlfunc expansion, slightly modified (see NewStuff). 2. Recognize ${perl even if not compiled, and give suitable error message. --- doc/doc-txt/ChangeLog | 102 ++++++++++++++++++++++++++------------------------ doc/doc-txt/NewStuff | 94 +++++++++++++++++++++++++++++++++------------- 2 files changed, 121 insertions(+), 75 deletions(-) (limited to 'doc') 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 -- cgit v1.2.3