Proxy clarification & nit fixes.
[exim.git] / doc / doc-misc / WishList
index bee4f328afe439c4c2de027e91781bc65033063d..28ae7332f5a264b824f80414f0ad9fd62426570d 100644 (file)
@@ -1,8 +1,12 @@
-$Cambridge: exim/doc/doc-misc/WishList,v 1.1 2004/10/08 10:38:47 ph10 Exp $
-
 EXIM 4 WISH LIST
 ----------------
 
 EXIM 4 WISH LIST
 ----------------
 
+This Wish List is now obsolete. The items it contains have been imported into
+the Exim Bugzilla, which is where all new wishes should be added. This file is
+no longer maintained. Some day it should be deleted.
+
+
+===============================================================================
 Even when it was first released, Exim 4 had a Wish List because not all the
 things suggested for it were implemented. The list has not stopped growing...
 
 Even when it was first released, Exim 4 had a Wish List because not all the
 things suggested for it were implemented. The list has not stopped growing...
 
@@ -72,7 +76,7 @@ Oliver Smith
 
 The problem with header_remove followed by header_add is that you can't refer
 to the previous value of the header when adding a replacement. This could be
 
 The problem with header_remove followed by header_add is that you can't refer
 to the previous value of the header when adding a replacement. This could be
-solved with a replace_header option.
+solved with a replace_header option. See also Exim 4/333.
 ------------------------------------------------------------------------------
 
 (43) 15-Oct-98  M  Sender rewrite *after* SMTP incoming checks
 ------------------------------------------------------------------------------
 
 (43) 15-Oct-98  M  Sender rewrite *after* SMTP incoming checks
@@ -124,7 +128,7 @@ http://www.net.lut.ac.uk/~martin/antispam/exim-hacks/
 Dave Lewney
 John Holman
 
 Dave Lewney
 John Holman
 
-Such as "return-receipt-to". See also 41.
+Such as "return-receipt-to". See also 41. See also Exim 4/333.
 ------------------------------------------------------------------------------
 
 (90) 21-Apr-99  M  change wild prefix/suffix greediness
 ------------------------------------------------------------------------------
 
 (90) 21-Apr-99  M  change wild prefix/suffix greediness
@@ -167,8 +171,8 @@ So the admin can pass back a reason.
 mark david mcCreary
 
 "I use the syntax_errors_to feature to email a copy of the error message.
 mark david mcCreary
 
 "I use the syntax_errors_to feature to email a copy of the error message.
-It would be helpful to have the X-Failed-Receipients header in there,
-identifying which addreses(s) are the problem, so that I don't have to
+It would be helpful to have the X-Failed-Recipients header in there,
+identifying which address(es) are the problem, so that I don't have to
 parse the body of the email message to figure out which addresses."
 ------------------------------------------------------------------------------
 
 parse the body of the email message to figure out which addresses."
 ------------------------------------------------------------------------------
 
@@ -295,15 +299,6 @@ David Carter
 So several warnings could be generated as the mailbox got bigger and bigger.
 ------------------------------------------------------------------------------
 
 So several warnings could be generated as the mailbox got bigger and bigger.
 ------------------------------------------------------------------------------
 
-(146) 15-May-2000 M  Allow SMTP error codes in retry rules
-
-This would allow special handling of certain errors from certain hosts. In
-particular, it would allow failing of certain 4xx codes.
-
-This is now available for 4xx responses to RCPT commands. Is anything more
-needed?
-------------------------------------------------------------------------------
-
 (148) 15-May-2000 S  Warn recipient if message rejected for quota excession.
 Heinz Ekker
 
 (148) 15-May-2000 S  Warn recipient if message rejected for quota excession.
 Heinz Ekker
 
@@ -320,7 +315,7 @@ be tricky to specify, hence the L.
 
 A separate but related issue is the effect of headers added by "unseen"
 directors. These are documented in chapter 19 as not being accumulated. Should
 
 A separate but related issue is the effect of headers added by "unseen"
 directors. These are documented in chapter 19 as not being accumulated. Should
-any change be made?
+any change be made? See also Exim 4/333.
 ------------------------------------------------------------------------------
 
 (155) 16-Jun-2000 M  Special handling for certain hosts
 ------------------------------------------------------------------------------
 
 (155) 16-Jun-2000 M  Special handling for certain hosts
@@ -365,15 +360,6 @@ delivery to a given address rather than freezing the message. Use the errors_to
 address?
 ------------------------------------------------------------------------------
 
 address?
 ------------------------------------------------------------------------------
 
-(172)  11-Sep-2000 S  Allow file/directory in appendfile to override
-"Michael J. Tubby"
-
-When appendfile is called from forward or filter files, it ignores file or
-directory settings. Maybe they should override. The path set by the forward or
-filter is available in $address_file these days, so it could be used to create
-a longer path.
-------------------------------------------------------------------------------
-
 (173)  18-Sep-2000 S  A way of doing lsearches with EOL terminated keys
 Jason Robertson
 
 (173)  18-Sep-2000 S  A way of doing lsearches with EOL terminated keys
 Jason Robertson
 
@@ -381,10 +367,6 @@ This is for looking up things like subject contents. Probably need an option to
 exim_dbmbuild to make them into DBM files.
 ------------------------------------------------------------------------------
 
 exim_dbmbuild to make them into DBM files.
 ------------------------------------------------------------------------------
 
-(174)  19-Sep-2000 S  A way of using a different port for fallback hosts.
-Dean Brooks
-------------------------------------------------------------------------------
-
 (181)  10-Nov-2000 S  Compile-time options for ignoring Sendmail options
 
 So that new ones could be accommodated easily.
 (181)  10-Nov-2000 S  Compile-time options for ignoring Sendmail options
 
 So that new ones could be accommodated easily.
@@ -423,12 +405,6 @@ latter would worth the hassle), in a way like:
         headers_remove = "X-*:Additional-header"
 ------------------------------------------------------------------------------
 
         headers_remove = "X-*:Additional-header"
 ------------------------------------------------------------------------------
 
-(188)  02-Jan-2001 S  Make pipe timeout a temporary error
-Georg v.Zezschwitz
-
-A way to make a timeout into a temporary error.
-------------------------------------------------------------------------------
-
 (190)  03-Jan-2001 M  Multiple message operations in eximon
 ------------------------------------------------------------------------------
 
 (190)  03-Jan-2001 M  Multiple message operations in eximon
 ------------------------------------------------------------------------------
 
@@ -458,10 +434,6 @@ could be put into $recipient, but that risks confusion with $recipients
 might have. At ACL time, one would need to verify the recipient, and determine
 that it routed to host X.
 
 might have. At ACL time, one would need to verify the recipient, and determine
 that it routed to host X.
 
-. A new lookup library that operates on a specially prepared file of IP
-addresses and masks so that a single "lookup" yields a yes/no answer. This
-should be a freestanding thing - needs a utility to build the file from a list.
-
 . People want to change the wording of messages; can we find an efficient way
 of allowing this? (Maybe put all messages into a separate module?) The problem
 is not in the messages themselves, but in the values that get inserted into
 . People want to change the wording of messages; can we find an efficient way
 of allowing this? (Maybe put all messages into a separate module?) The problem
 is not in the messages themselves, but in the values that get inserted into
@@ -492,7 +464,8 @@ can make use of it.
 . Implement randomize for ldap/sql servers.
 
 . Add an option for ETRN that says "wait for the command to finish, and use its
 . Implement randomize for ldap/sql servers.
 
 . Add an option for ETRN that says "wait for the command to finish, and use its
-stdout as the SMTP response."
+stdout as the SMTP response."  // A serialized ETRN now does the waiting, but
+there is as yet no way to use the status. //
 
 . -odsomething for "ignore retry when doing immediate delivery".
 
 
 . -odsomething for "ignore retry when doing immediate delivery".
 
@@ -500,9 +473,6 @@ stdout as the SMTP response."
 it were 4xx. Or possible add a sophisticated "after command X, treat xxx as
 yyy".
 
 it were 4xx. Or possible add a sophisticated "after command X, treat xxx as
 yyy".
 
-. A way of rewriting addresses in non-standard header lines such as
-Mail-Followup-To.
-
 . Global option to enable initgroups() for exim uid. Default off.
 
 . When verifying a sender, should it be rewritten with any T rewrites, because
 . Global option to enable initgroups() for exim uid. Default off.
 
 . When verifying a sender, should it be rewritten with any T rewrites, because
@@ -527,8 +497,6 @@ these entries.
 . Options and/or a utility to enable non-privileged users to view the queue
 (e.g. -bpp), manipulate their own messages, etc.
 
 . Options and/or a utility to enable non-privileged users to view the queue
 (e.g. -bpp), manipulate their own messages, etc.
 
-. Specify a port along with a host in a route_list.
-
 . A generalized "From" escaping scheme that also escapes >From so that the
 whole thing can be reversed.
 
 . A generalized "From" escaping scheme that also escapes >From so that the
 whole thing can be reversed.
 
@@ -577,15 +545,6 @@ size. Directory scanning is expensive; is there any scope for caching? It would
 seem not (you don't often get two addresses to the same user).
 ------------------------------------------------------------------------------
 
 seem not (you don't often get two addresses to the same user).
 ------------------------------------------------------------------------------
 
-(4)  01-Jan-02  S  Option to reject if no From: or Date: header line
-
-Exim, in common with many other MTAs, inserts a From: or Date: header line if
-one is missing. (It also inserts a blank Bcc:, but that is no longer needed by
-RFC 2822 - it was by 822.) The suggestion is an option to give an error
-instead. This could be done by making it possible to detect these insertions in
-the acl_smtp_data ACL.
-------------------------------------------------------------------------------
-
 (6)  01-Jan-02  S  Option to disable the use of -t
 Dave C.
 
 (6)  01-Jan-02  S  Option to disable the use of -t
 Dave C.
 
@@ -596,11 +555,8 @@ Would require work so that Exim itself doesn't use -t.
 John W Baxter
 
 May be tricky, because at the higher levels, the format of the query is not
 John W Baxter
 
 May be tricky, because at the higher levels, the format of the query is not
-understood.
-------------------------------------------------------------------------------
-
-(8)  01-Jan-02  S  Expand once_repeat in autoreply
-John Jetmore
+understood. // There is now a fudge that works in some cases. See ChangeLog
+4.51/PH/10. //
 ------------------------------------------------------------------------------
 
 (9)  01-Jan-02  S  Headers as well as body in file for autoreply
 ------------------------------------------------------------------------------
 
 (9)  01-Jan-02  S  Headers as well as body in file for autoreply
@@ -630,7 +586,7 @@ This could perhaps be done by extending the local_scan() idea and providing a
 (15) 01-Jan-02  M  More hooks like local_scan()
 
 One request has been for a similar hook at logging time. For other SMTP
 (15) 01-Jan-02  M  More hooks like local_scan()
 
 One request has been for a similar hook at logging time. For other SMTP
-interactions, maybe a hook into the ACL? See also 79 and 218.
+interactions, maybe a hook into the ACL? See also 79 and 218 and 301.
 ------------------------------------------------------------------------------
 
 (17) 11-Jan-02  M  The construction of config.h needs refactoring
 ------------------------------------------------------------------------------
 
 (17) 11-Jan-02  M  The construction of config.h needs refactoring
@@ -664,7 +620,7 @@ Joachim Wieland
 
 Is this really worth it? A per-transport value is also suggested - that would
 mean remembering the value with each failed address and taking a minimum or
 
 Is this really worth it? A per-transport value is also suggested - that would
 mean remembering the value with each failed address and taking a minimum or
-a maximimum (which?).
+a maximum (which?).
 ------------------------------------------------------------------------------
 
 (24)  21-Feb-02 ?  A way of testing TLS using -bh
 ------------------------------------------------------------------------------
 
 (24)  21-Feb-02 ?  A way of testing TLS using -bh
@@ -767,9 +723,11 @@ Client: We need a variant of 'exim -bs' which would connect to a specified
 host, send AUTH/ATRN, and then accept incoming messages as usual.
 ------------------------------------------------------------------------------
 
 host, send AUTH/ATRN, and then accept incoming messages as usual.
 ------------------------------------------------------------------------------
 
-(50)  22-May-02 T  Add comment (duplicate address) to Envelope-To:
+(50)  22-May-02 S?  Add comment (duplicate address) to Envelope-To:
 
 
-This is just to minimize the confusion some people have.
+This is just to minimize the confusion some people have. However, it is not
+trivially easy to decide which to label as duplicates because of complications
+with redirection. I'm not convinced it will actually reduce confusion.
 ------------------------------------------------------------------------------
 
 (51)  07-Jun-02 S  Option to use another address in callout MAIL FROM
 ------------------------------------------------------------------------------
 
 (51)  07-Jun-02 S  Option to use another address in callout MAIL FROM
@@ -799,7 +757,7 @@ Current rewriting rules apply to individual addresses in header lines. This
 feature would use a regex to match whole lines and replace them. It could be
 useful for patching up syntactically invalid lines from crappy clients, before
 the syntax check kicks in. (It might also be useful for hiding local host names
 feature would use a regex to match whole lines and replace them. It could be
 useful for patching up syntactically invalid lines from crappy clients, before
 the syntax check kicks in. (It might also be useful for hiding local host names
-in Received: headers.)
+in Received: headers.) See also 333.
 ------------------------------------------------------------------------------
 
 (58)  26-Jun-02 ?  Extend PAM support
 ------------------------------------------------------------------------------
 
 (58)  26-Jun-02 ?  Extend PAM support
@@ -825,7 +783,7 @@ Patrice Fournier
 
 "I'd like to be able to give Exim a list of headers that must be removed
 from the message at arrival, before data_acl processing (and before the
 
 "I'd like to be able to give Exim a list of headers that must be removed
 from the message at arrival, before data_acl processing (and before the
-rcpt_acl warn headers are added to the message)."
+rcpt_acl warn headers are added to the message)." See also 333.
 ------------------------------------------------------------------------------
 
 (63)  28-Jun-02 S  Access to ACL-added headers in ACLs
 ------------------------------------------------------------------------------
 
 (63)  28-Jun-02 S  Access to ACL-added headers in ACLs
@@ -833,7 +791,7 @@ Patrice Fournier
 
 "I'd like also to be able to look at the already added headers by a
 rcpt_acl when still checking rcpt_acl (either later in the acl for the same
 
 "I'd like also to be able to look at the already added headers by a
 rcpt_acl when still checking rcpt_acl (either later in the acl for the same
-RCPT TO or for another RCPT TO)."
+RCPT TO or for another RCPT TO)." See also 333.
 ------------------------------------------------------------------------------
 
 (65)  28-Jun-02 M  Expand fallback hosts
 ------------------------------------------------------------------------------
 
 (65)  28-Jun-02 M  Expand fallback hosts
@@ -857,7 +815,7 @@ logs the IP of the sending host in the => line?" Also requested was amount of
 data transmitted for a non-delivery attempt.
 ------------------------------------------------------------------------------
 
 data transmitted for a non-delivery attempt.
 ------------------------------------------------------------------------------
 
-(69)  03-Jul-02 T  Log selector to log whoson checs
+(69)  03-Jul-02 T  Log selector to log whoson checks
 Matt Bernstein
 
 "I'd quite like a log_selector option which could spot you'd done a whoson
 Matt Bernstein
 
 "I'd quite like a log_selector option which could spot you'd done a whoson
@@ -870,18 +828,6 @@ So as to avoid duplication problems when sending multiple addresses in multiple
 copies to the same address.
 ------------------------------------------------------------------------------
 
 copies to the same address.
 ------------------------------------------------------------------------------
 
-(73)  17-Jul-02 M  Match a list from within a condition
-
-e.g.  ${if matchdomain {$domain}{+domainlist} ...
-      ${if matchhost {$sender_host_address}{1.2.3.4/10:2.3.4.5/16}...
-
-Thought needed about how to handle host names. This may be too messy to specify
-cleanly.
-
-22-Apr-04: Implemented for domains, addresses, and local parts. Hosts are
-too messy!
-------------------------------------------------------------------------------
-
 (74)  22-Jul-02 M  Extend -bV to do more semantic checking
 
 For example, diagnose "local_hosts" that should probably be "+local_hosts".
 (74)  22-Jul-02 M  Extend -bV to do more semantic checking
 
 For example, diagnose "local_hosts" that should probably be "+local_hosts".
@@ -1043,7 +989,7 @@ a list defer.
 Peter A. Savitch
 
 OpenLDAP 2.1 is going to be more popular (2.1.9 is available with many
 Peter A. Savitch
 
 OpenLDAP 2.1 is going to be more popular (2.1.9 is available with many
-bug fixes). TLS-enabled LDAP is an interesting and usefull thing.
+bug fixes). TLS-enabled LDAP is an interesting and useful thing.
 I can try to implement some things and send the patches, like with
 ldapi.
 
 I can try to implement some things and send the patches, like with
 ldapi.
 
@@ -1166,6 +1112,8 @@ For sending reasons for slow response, etc.
 ------------------------------------------------------------------------------
 
 (160) 19-May-03 M  Remove headers using wild cards
 ------------------------------------------------------------------------------
 
 (160) 19-May-03 M  Remove headers using wild cards
+
+See also 333.
 ------------------------------------------------------------------------------
 
 (162) 28-May-03 M/L Use of real numbers in filters, expansions, and options
 ------------------------------------------------------------------------------
 
 (162) 28-May-03 M/L Use of real numbers in filters, expansions, and options
@@ -1201,10 +1149,6 @@ needed is a flag for a rewrite rule.
 Suggested patch supplied.
 ------------------------------------------------------------------------------
 
 Suggested patch supplied.
 ------------------------------------------------------------------------------
 
-(171) 23-Jun-03 S  Option to make timeout a soft failure on pipe transport
-
-------------------------------------------------------------------------------
-
 (172) 23-Jun-03 M  Option to make SQL query to specific server
 
 ------------------------------------------------------------------------------
 (172) 23-Jun-03 M  Option to make SQL query to specific server
 
 ------------------------------------------------------------------------------
@@ -1270,12 +1214,6 @@ Maybe there should always be a variable with the error message for all the
 different kinds of verify failure.
 ------------------------------------------------------------------------------
 
 different kinds of verify failure.
 ------------------------------------------------------------------------------
 
-(196) 30-Sep-03 S  A way of detecting whether it was HELO or EHLO in the ACL
-
-$received_protocol isn't reset until after the command is accepted (which
-seems right), and $smtp_data shows only the arguments. Maybe $smtp_command?
-------------------------------------------------------------------------------
-
 (197) 30-Sep-03 S  MACROS_DROP_PRIVS and ALT_CONFIG_DROP_PRIVS
 
 Now that alternative configurations can be restricted to certain directories,
 (197) 30-Sep-03 S  MACROS_DROP_PRIVS and ALT_CONFIG_DROP_PRIVS
 
 Now that alternative configurations can be restricted to certain directories,
@@ -1311,14 +1249,13 @@ This is an option that turns all hard bounces into soft bounces. The idea is
 that it can be used as a safety-net while testing configurations. Instead of a
 local bounce, the message stays on the queue; instead of 5xx SMTP responses,
 4xx ones are given.
 that it can be used as a safety-net while testing configurations. Instead of a
 local bounce, the message stays on the queue; instead of 5xx SMTP responses,
 4xx ones are given.
-
-The ability to do the opposite - turn 4xx into 5xx under certain circumstances
-might also be useful (e.g. after a certain time). This might best be done by
-extending the retry logic to recognize 4xx as a special error. (This is now
-done.)
 ------------------------------------------------------------------------------
 
 (202) 10-Oct-03 S  -bvsomething to do a callout after the verify
 ------------------------------------------------------------------------------
 
 (202) 10-Oct-03 S  -bvsomething to do a callout after the verify
+
+For example: -bvc and -bvsc. The problem now (Nov 04) is that there are quite a
+few possible callout options that can be specified in an ACL, and they would
+have to be replicated here.
 ------------------------------------------------------------------------------
 
 (203) 14-Oct-03 S  verify=something to easily check for header presence
 ------------------------------------------------------------------------------
 
 (203) 14-Oct-03 S  verify=something to easily check for header presence
@@ -1349,7 +1286,6 @@ permanent ones after some fixed time.
 ------------------------------------------------------------------------------
 
 (209) 31-Oct-03 S  a way of making crashes in pipe commands temporary errors
 ------------------------------------------------------------------------------
 
 (209) 31-Oct-03 S  a way of making crashes in pipe commands temporary errors
-
 ------------------------------------------------------------------------------
 
 (210) 31-Oct-03 S  runtime option to change the daemon name used for tcprwappers
 ------------------------------------------------------------------------------
 
 (210) 31-Oct-03 S  runtime option to change the daemon name used for tcprwappers
@@ -1362,17 +1298,13 @@ option, for use with multiple Exim daemons.
 ------------------------------------------------------------------------------
 
 (212) 31-Oct-03 M  specify headers lines in HELO ACL to be added to all msgs
 ------------------------------------------------------------------------------
 
 (212) 31-Oct-03 M  specify headers lines in HELO ACL to be added to all msgs
-------------------------------------------------------------------------------
 
 
-(214) 05-Nov-03 S  Put the wild part of local part prefix/suffx in variables
-
-Unfortunately, this isn't quite as trivial as it seems.
+See also 333.
 ------------------------------------------------------------------------------
 
 ------------------------------------------------------------------------------
 
-(215) 14-Nov-03 S  A way of turning off message-submission fix-ups
+(214) 05-Nov-03 S  Put the wild part of local part prefix/suffix in variables
 
 
-Globally, and perhaps also via an ACL control so that it can be done on a
-per-message basis.
+Unfortunately, this isn't quite as trivial as it seems.
 ------------------------------------------------------------------------------
 
 (215) 26-Nov-03 M/L Conversion of IDNA domain names for logging
 ------------------------------------------------------------------------------
 
 (215) 26-Nov-03 M/L Conversion of IDNA domain names for logging
@@ -1386,13 +1318,6 @@ e.g. exigrep, eximstats, will be automatically handled if the logs are
 changed.)
 ------------------------------------------------------------------------------
 
 changed.)
 ------------------------------------------------------------------------------
 
-(216) 27-Nov-03 S  Option to bounce if required TLS doesn't happen
-
-This is for the smtp transport with hosts_require_tls set. Currently, it
-defers. Possibly the best approach is to make the error one that can be seen by
-the retry logic.
-------------------------------------------------------------------------------
-
 (217) 27-Nov-03 M  A function to pass back variables from Perl
 
 This is a function that can be called from Perl, to take a name and a value and
 (217) 27-Nov-03 M  A function to pass back variables from Perl
 
 This is a function that can be called from Perl, to take a name and a value and
@@ -1413,14 +1338,10 @@ be able to set variables in routers like in acl's." This is effectively a
 radical suggestion for a complete re-design, and is therefore BIG.
 ------------------------------------------------------------------------------
 
 radical suggestion for a complete re-design, and is therefore BIG.
 ------------------------------------------------------------------------------
 
-(222) 19-Dec-03 S  Iterative option for dnsdb
-
-A way of getting a dnsdb lookup to chop off components until something is
-found: e.g. ${lookup dndsb-i{ns=a.b.c.d}} would look for nameservers for
-a.b.c.d, then b.c.d, etc.
-------------------------------------------------------------------------------
-
 (223) 22-Dec-03 S  Support SOA lookup in dnsdb lookups
 (223) 22-Dec-03 S  Support SOA lookup in dnsdb lookups
+
+This could be like zns, and climb up the tree till it hits a zone. Would the
+name of the zone be required?
 ------------------------------------------------------------------------------
 
 (225) 22-Dec-03 M  Add acl= to routers
 ------------------------------------------------------------------------------
 
 (225) 22-Dec-03 M  Add acl= to routers
@@ -1474,7 +1395,8 @@ and last item with ease; doing this using {if ...} would be quite difficult!"
 (230) 30-Jan-04 M  Find IP addresses of a domain's nameservers
 
 This needs some way of processing a list of things in a similar way, which
 (230) 30-Jan-04 M  Find IP addresses of a domain's nameservers
 
 This needs some way of processing a list of things in a similar way, which
-should perhaps be a more general facility.
+should perhaps be a more general facility. // This can now be done using the
+list facilities of dnsdb; verbose, but it can be done. //
 ------------------------------------------------------------------------------
 
 (231) 30-Jan-04 ?  -C has a number of problems when used for real
 ------------------------------------------------------------------------------
 
 (231) 30-Jan-04 ?  -C has a number of problems when used for real
@@ -1493,17 +1415,14 @@ course, security issues. This is not something I want to go into at present.
 (235) 02-Feb-04 T  Make smtp_accept_count available as a variable
 
 This is for use in ACLs. Of course, it is a snapshot of the count at the
 (235) 02-Feb-04 T  Make smtp_accept_count available as a variable
 
 This is for use in ACLs. Of course, it is a snapshot of the count at the
-start of the receiving process.
+start of the receiving process. As such, it could be confusing because if a
+connection lasts a long time, the "true" value could be very different. For
+this reason, I don't really like this idea.
 ------------------------------------------------------------------------------
 
 (236) 02-Feb-04 S  String in local_scan that's added to the binary version string
 ------------------------------------------------------------------------------
 
 ------------------------------------------------------------------------------
 
 (236) 02-Feb-04 S  String in local_scan that's added to the binary version string
 ------------------------------------------------------------------------------
 
-(237) 02-Feb-04 M  Add_header in ACLs because "message" is overloaded
-
-This would be useful for verbs where "message" is an error message.
-------------------------------------------------------------------------------
-
 (238) 05-Feb-04 S  ${address to handle multiple addresses
 
 At present, ${address expects to see just one address. An extension would let
 (238) 05-Feb-04 S  ${address to handle multiple addresses
 
 At present, ${address expects to see just one address. An extension would let
@@ -1520,7 +1439,8 @@ library, because there's no crypto code in Exim itself.
 (240) 23-Feb-04 ? Some way to know if a ip is a mx for a given domain
 
 Some kind of iterative operation for dnsdb might be a general way of providing
 (240) 23-Feb-04 ? Some way to know if a ip is a mx for a given domain
 
 Some kind of iterative operation for dnsdb might be a general way of providing
-this.
+this. // This can now be done using the list facilities of dnsdb; verbose, but
+it can be done. //
 ------------------------------------------------------------------------------
 
 (242) 01-Mar-04 ? Run a filter from an expansion condition
 ------------------------------------------------------------------------------
 
 (242) 01-Mar-04 ? Run a filter from an expansion condition
@@ -1601,14 +1521,6 @@ A modifier that sets a delay between lines for multiline responses.
 Given that pids are reused non-cyclically these days, is this actually useful?
 ------------------------------------------------------------------------------
 
 Given that pids are reused non-cyclically these days, is this actually useful?
 ------------------------------------------------------------------------------
 
-(269) 26-May-04 U Run both a system and a user filter in test mode
-
-    exim -bF systemfilter -bf userfilter -f sender@dom < message
-
-This would allow testing the way the userfilter handles the system
-variables set by the systemfilter.
-------------------------------------------------------------------------------
-
 (270) 01-Jun-04 M Add headers at top and middle
 
 Various initiatives like SPF and DomainKeys require header lines to be added
 (270) 01-Jun-04 M Add headers at top and middle
 
 Various initiatives like SPF and DomainKeys require header lines to be added
@@ -1618,7 +1530,7 @@ where header lines are added will probably become necessary. Some new syntax
 will be required.
 
 This can now be done fairly generally from local_scan(), and at the start and
 will be required.
 
 This can now be done fairly generally from local_scan(), and at the start and
-after the Received: block from an ACL. Is anything more needed?
+after the Received: block from an ACL. Is anything more needed? See also 333.
 ------------------------------------------------------------------------------
 
 (271) 02-Jun-04 L Callouts at routing time
 ------------------------------------------------------------------------------
 
 (271) 02-Jun-04 L Callouts at routing time
@@ -1661,7 +1573,8 @@ Similar to the bounce and delivery warn message files.
 (280) 23-Jun-04 M A way of adding a header line after callout defer_ok
 
 This would record that, e.g., a sender domain verified, but the callout
 (280) 23-Jun-04 M A way of adding a header line after callout defer_ok
 
 This would record that, e.g., a sender domain verified, but the callout
-could not be done.
+could not be done. There are ways of fudging this, using ACL variables and
+"warn" statements.
 ------------------------------------------------------------------------------
 
 (285) 16-Jul-04 M Separate and independent log_selector for rejectlog
 ------------------------------------------------------------------------------
 
 (285) 16-Jul-04 M Separate and independent log_selector for rejectlog
@@ -1670,12 +1583,6 @@ For example: mainlog_selector and rejectlog_selector, with log_selector setting
 both of them.
 ------------------------------------------------------------------------------
 
 both of them.
 ------------------------------------------------------------------------------
 
-(286) 21-Jul-04 M Distinguishing a larger number of errors
-
-For instance, detecting "connection reset by peer" (ENETRESET or ECONNRESET)
-might be useful.
-------------------------------------------------------------------------------
-
 (288) 10-Aug-04 M Option for verify to require MX
 
 e.g. verify=sender/require_mx
 (288) 10-Aug-04 M Option for verify to require MX
 
 e.g. verify=sender/require_mx
@@ -1701,7 +1608,7 @@ how useful this would actually be in practice.
 
 (292) 13-Aug-04 M Overall timeout for message reception
 
 
 (292) 13-Aug-04 M Overall timeout for message reception
 
-A client could in priciple keep an SMTP connection open for a very long time by
+A client could in principle keep an SMTP connection open for a very long time by
 trickling in data very slowly. Also, after message_size_limit is exceeded, Exim
 continues to swallow the data (though it does not write it to disk) until the
 end is reached. Again, the connection could be held open for a very long time.
 trickling in data very slowly. Also, after message_size_limit is exceeded, Exim
 continues to swallow the data (though it does not write it to disk) until the
 end is reached. Again, the connection could be held open for a very long time.
@@ -1716,12 +1623,437 @@ include sockets as well as TCP/IP connections. Also, people want to make use of
 AUTH during the callout checking, on all types of connection. I suppose that
 means making TLS available as well. This probably means a rewrite of the code
 that actually does the callout. Should we use the relevant transport in a new
 AUTH during the callout checking, on all types of connection. I suppose that
 means making TLS available as well. This probably means a rewrite of the code
 that actually does the callout. Should we use the relevant transport in a new
-"callout" mode instead of keeping things separate? See also 253.
+"callout" mode instead of keeping things separate? See also 253 and 323.
+
+And here's another submitted idea: "My actual suggestion is that if this model
+is followed, the parent process doesn't have to stop the callout process if it
+is taking too long to respond: it can return 450 to the incoming connection
+within the 5 minute SMTP command timeout and leave the callout process to
+continue, in the hope that it will eventually get a result and store it in the
+callout cache in time for the sender's next attempt."
 ------------------------------------------------------------------------------
 
 (296) 09-Sep-04 S Make deliver_time work for == lines as well as =>
 
 What about ** lines?
 ------------------------------------------------------------------------------
 ------------------------------------------------------------------------------
 
 (296) 09-Sep-04 S Make deliver_time work for == lines as well as =>
 
 What about ** lines?
 ------------------------------------------------------------------------------
---- HWM 297 ------------------------------------------------------------------
+
+(299) 25-Oct-04 S Options to make Sieve "keep" pass to next router
+
+Currently, "keep" saves in the mailbox. Probably need two options, for implicit
+and explicit keep commands.
+------------------------------------------------------------------------------
+
+(301) 27-Oct-04 M Use an "ACL" to filter logging
+
+This idea was for ACL syntax to be able to "accept" or "deny" individual log
+lines. This would make it possible to have, for example, per-host logging for
+certain things. See also 15 above.
+------------------------------------------------------------------------------
+
+(302) 28-Oct-04 M Expand pass_router and redirect_router
+
+Doing this would mean postponing the validity checks till the router was
+actually used instead of doing them at start up. It does not seem to be a
+facility that will be widely used.
+------------------------------------------------------------------------------
+
+(303) 28-Oct-04 M Support SQL relay
+
+This would make it easier for packagers to support "generic SQL" without having
+to choose which one. It can be slotted in using a MySQL interface without
+modifying Exim, but native support would be nice.
+------------------------------------------------------------------------------
+
+(304) 02-Nov-04 M A way of seeing the whole message in Perl or ${run
+
+At present, the headers are available in $message_headers, but only part of
+the body is visible. The only way to pass the whole body would be as a file
+descriptor because it can be very large. See also (42).
+------------------------------------------------------------------------------
+
+(305) 02-Nov-04 M A Perl transport
+
+The suggestion here is that an embedded Perl function takes responsibility for
+doing the delivery. I am not at all keen on this. One way of doing it would be
+to implement (244), which provides an "on success" string expansion. Then
+anyone who wants this could run that on a transport that does nothing.
+------------------------------------------------------------------------------
+
+(306) 09-Nov-04 M Make the search type partial-lsearch*@ be useful
+
+At present, it treats the whole key as a domain for the partial search, then
+does the *@ thing. A more sensible plan would be something like:
+
+  user@company.com
+  *@company.com
+  user@*.company.com
+  *@*.company.com
+  *
+
+That is, try the local part and * at each of the partial domain values.
+------------------------------------------------------------------------------
+
+(307) 24-Nov-04 S Check the syntax of Message-ID: header lines
+
+This could be added to "verify=header_syntax" or, if the incompatibility is
+felt to be too great, an additional condition, or a sub-option, could be added.
+------------------------------------------------------------------------------
+
+(308) 24-Nov-04 S Add $body_longlinecount and $header_longlinecount
+
+These variables would hold the number of physical lines in the body and header
+that were longer than 998 bytes. This would be fiddly to implement because of
+the way Exim currently reads the input. It isn't just a trivial patch.
+------------------------------------------------------------------------------
+
+(309) 01-Dec-04 S/M Queue runners should get locks before forking
+
+If a queue-runner opened the -D file and took out the lock before forking, it
+would waste fewer resources if the message was already being delivered. But how
+often would this actually matter in practice?
+------------------------------------------------------------------------------
+
+(310) 06-Dec-04 S After "personal" save what matched
+
+The idea is to save the email address that actually was found in the message
+in a variable so it can be used (e.g. as the From: address in an autoreply).
+------------------------------------------------------------------------------
+
+(311) 07-Dec-04 ? More flexible SMTP response codes
+
+The requestor wanted to be able to specify, for example, 551 in an ACL deny
+instead of 550, and also vary the defer code. The first digit, however, should
+remain fixed. In addition to main codes, enhanced status codes (RFC 2034) were
+requested. (As far as I can tell, they have never been highly popular.)
+------------------------------------------------------------------------------
+
+(312) 10-Dec-04 ? Shadow remote transports
+
+Unless a lot of work is done, this would be restricted to another remote
+transport. A similar effect could therefore be achieved with "shadow_hosts"
+which are like fallback_hosts but which operate on success.
+------------------------------------------------------------------------------
+
+(313) 21-Jan-05 ? Multiple queues
+
+Exim runs poorly if its queue gets too big. Various ways round this are all
+to some extent kludges. There has been a suggestion of using multiple
+directories instead of just "input". (Originally it was for a whole set of
+spool directories, but that introduces complications with the hint files.)
+On message arrival, somehow a selection of "input" must be made. Then queue
+runners must be startable for the different "queues". Don't forget that the
+"msglog" directory is also involved. Perhaps add a new level of indirection:
+/var/spool/exim/queue1/{input,msglog}, /var/spool/exim/queue2/....
+------------------------------------------------------------------------------
+
+(314) 15-Feb-05 M Multiple headers_{add,remove} for routers
+
+If headers_{add,remove} could be specified multiple times, it would be easier
+for those people that construct configs using .ifdef or .include, etc. See also
+333.
+------------------------------------------------------------------------------
+
+(315) 15-Feb-05 M String variables for use in filters.
+
+Currently, only numerical variables are supported.
+------------------------------------------------------------------------------
+
+(316) 21-Feb-05 M Put callout response into a variable
+
+When a callout fails, put the entire SMTP response into a variable. This is not
+trivial because we probably should retain it in the cache as well.
+------------------------------------------------------------------------------
+
+(317) 25-Feb-05 S Delete the pid file when the daemon exits
+
+At least try to catch some of the exit routes from the daemon and either delete
+or empty the pid file.
+------------------------------------------------------------------------------
+
+(318) 02-Mar-05 S Add current connection count to daemon's exiwhat output
+------------------------------------------------------------------------------
+
+(319) 03-Mar-05 ? Allow file rather than directory for scanning call
+
+"I can call arbitrary scanning software by specifying the full path. I can pass
+a directory to be scanned in the arguments. I'd like to be able to pass a
+specific file name instead of a directory. I think this would allow me to call
+Bogofilter at smtp time. Bogofilter requires a filename, not a directory. The
+file would contain the complete email. I suppose there may be other scanning
+solutions with a similar requirement."
+------------------------------------------------------------------------------
+
+(321) 07-Mar-05 S Run an ACL on a sync error
+
+... and possibly "accept" or "deny" it.
+------------------------------------------------------------------------------
+
+(322) 15-Mar-05 M Add a /defer_ok option to verify=reverse_host_lookup
+------------------------------------------------------------------------------
+
+(323) 15-Mar-05 M Make callouts use smtp_data from the smtp transport
+
+This is yet another problem caused by duplicating the SMTP code between the
+transport and the callout verification. See item 294 above. Merging the
+transport and the callout code could prevent this kind of thing from happening.
+------------------------------------------------------------------------------
+
+(324) 04-Apr-05 ? Make -bP show ACLs
+
+This is in the Bugzilla as #10.
+------------------------------------------------------------------------------
+
+(326) 03-May-05 ? Queue-only on memory shortage
+
+This is bugzilla #17. The idea is to have something like queue_only_load that
+triggers on a shortage of main memory.
+------------------------------------------------------------------------------
+
+(327) 06-May-05 ? Break delay if connection drops
+
+Currently, "delay=5m" (e.g.) waits for 5 minutes. If we can detect that the
+connection has died in the meantime, it would make sense to break the delay.
+However, it doesn't seem possible to detect a dropped connection without trying
+to read from it.
+------------------------------------------------------------------------------
+
+(328) 10-May-05 S After "unseen" routing, pass on header additions/deletions
+
+Currently, when an "unseen" router accepts an address, header additions and
+deletions stick with that address, and the "clone" address that continues to be
+routed starts off without any additions or removals. This request is for an
+option to select other actions: retain header actions with the clone only, or
+pass them on to both addresses. See also 333.
+------------------------------------------------------------------------------
+
+(329) 12-May-05 S Create message ID at MAIL FROM time
+
+Currently, the ID is created only when Exim is about to create the data (-D)
+file for an incoming message. In other words, after it knows it really is going
+to accept the message. Creating the ID earlier would mean that rejection
+messages in the log would be tagged with an ID, and this is seen as desirable
+by some people.
+------------------------------------------------------------------------------
+
+(330) 31-May-05 ? Default interface for -bh and default port for -oMi
+
+I do not think it worth putting effort in here for these reasons: If a host has
+multiple interfaces, there's no easy way to choose one to be the default for
+$interface_address when -bh is used. If the host does not have multiple
+interfaces, chances are the configuration won't be looking at
+$interface_address anyway. If you are setting -oMi, and care about the port, it
+isn't much effort to tack on a port number, though in this case, I suppose a
+default of 25 is "obvious".
+------------------------------------------------------------------------------
+
+(331) 31-May-05 M More than one retry time per host
+
+Consider this example: an attempt to start a TLS connection to a host gets a
+temporary error. This stops *all* connections, both for TLS and otherwise.
+Different retry times for different circumstances are needed to get round this.
+What are the circumstances? TLS/not-TLS is clearly one, but sometimes you don't
+know if you are going to try TLS until you have connected. So this makes sense
+only if require_tls is used. Perhaps the multiple retry times should just be
+per-transport, to avoid these difficulties. If we made all retry keys depend on
+the transport, this would happen automatically.
+------------------------------------------------------------------------------
+
+(332) 03-Jun-05 S A "receive time taken" log selector
+
+This suggestion is to at an RT= item to the <= line, giving the time it
+actually took to receive the message.
+------------------------------------------------------------------------------
+
+(333) 06-Jun-05 L Re-think and re-implement header handling
+
+There are a number of items related to headers above. Better facilities for
+handling headers at ACL time are needed. The whole way in which Exim handles
+headers should be re-planned and re-implemented in a more consistent manner.
+
+These are the main previous items:
+
+Exim 3 Wish List: 41, 85, 149, 187.
+Exim 4 Wish List: 55, 62, 63, 160, 212, 270, 314, 328.
+------------------------------------------------------------------------------
+
+(334) 07-Jun-05 M Support for messages larger than 2G
+
+This is probably a longish-term thing at the moment. Quotas over 2G are now
+supported, but not individual messages; no doubt one day this will be wanted.
+------------------------------------------------------------------------------
+
+(336) 16-Jun-05 M Show recipient(s) after header check failure
+
+The mainlog line for "There is no valid sender in any header line" shows the
+sending host and the envelope sender, but does not show any recipients. There
+has been a request to show recipients. Presumably this should be on some new
+log selector, and it must have a cutoff maximum number of recipients. NOTE: the
+data in the reject log does show the envelope recipients as part of its
+additional data.
+------------------------------------------------------------------------------
+
+(337) 29-Jun-05 S Add "defer" to $recipient_verify_failure
+
+This is for when defer_ok was set when verifying recipients. Since this isn't
+for a failure, we probably also need "ok" for the non-fail case.
+------------------------------------------------------------------------------
+
+(338) 14-Jul-05 M Change to Bind 9 API
+
+Exim uses the original API for calling the DNS resolver. There is a newer API
+available, and noises are being made in some OS that compatibility with the old
+API is going to be dropped. Nevertheless, there are sure to be systems about
+for ages that require the use of the old API. Therefore, we will have to
+implement not only an interface to the new API, but a backwards compatibility
+feature. It would be nice if this was automatic.
+------------------------------------------------------------------------------
+
+(339) 28-Jul-05 S Log name of maildir file
+
+This wish is for an option to log the name of the file that is written in
+maildir format (e.g. time.pid.host).
+------------------------------------------------------------------------------
+
+(340) 30-Aug-05 M Match more than one item
+
+match_address, for instance, matches one address to a list. The wish is to be
+able to supply two lists; for each address in the first list, search the
+second. Maybe something like ${match_any{...}{...}} is needed.
+------------------------------------------------------------------------------
+
+(341) 15-Sep-05 S Add /return_path_retain to submission mode
+
+This would re-instate the behaviour prior to change 4.52/PH/04.
+------------------------------------------------------------------------------
+
+(342) 26-Sep-05 T Log and maybe defer odd values for condition pre-condition
+
+Odd values for "condition" in an ACL cause it to defer. In a router, they are
+treated as "true". At least they should be logged in a router, and perhaps they
+should also defer, for compatibility with ACLs.
+------------------------------------------------------------------------------
+
+(343) 03-Oct-05 M A query-style lookup for scanning flat files
+
+The natural syntax for this would be to use a regex, like this:
+${lookup regex{/some/file regex}{found-string}{not-found-string}}
+However, it would be natural to want to use $1 etc in the found-string; this
+would be hard because of the lookup caching (if repeated, the lookup won't
+actually be done and therefore the numerical variables won't be set), and in
+any case, even without caching (and it could, I suppose, be disabled for this
+lookup) those variables are not in the right storage pool even if they were
+preserved after the lookup.
+
+An alternative approach might be to implement something like this:
+
+  ${scanfile{/some/file}{sub-expression}}
+
+where the sub-expression is expanded for every line in the file, with each line
+in turn being put into $value. This is like a conditional ${readfile, and in
+fact ${readfile could be written using ${scanfile. It would be nice to find a
+way of stopping the scan once something has happened. The only thing I can
+think of is to invent a variable that changes when scanning a line generates
+some non-null text, and then always to stop on a forced failure. That would
+allow expressions like this:
+
+  ${scanfile{/some/file}
+    {
+    ${if eq{$generated}{}{${if match{regex}{$value}{something}}} fail}
+    }}
+
+It's all rather clumsy. Once a line has matched and generated some text, the
+next iteration would stop the scan. Another thought: maybe use $scanline
+instead of $value (to save confusion) and have $scantext containing everything
+that's been generated so far. That sounds pretty flexible.
+------------------------------------------------------------------------------
+
+(344) 10-Oct-05 M Make debug_print work in authenticators
+------------------------------------------------------------------------------
+
+(345) 14-Oct-05 M Standardize rejection messages
+
+"The parsing for rejection lines is a bit of a mess, and fairly
+unmaintainable. Do you think it would be possible to standardise
+rejection/refusal log messages? How about something like:
+
+(<ID>|16 Spaces) *< (Connection|MAIL|RCPT|HELO|EHLO|DATA) rejected (from
+<Address>)?: <Reason> (\(<Detail>\))?"
+------------------------------------------------------------------------------
+
+(346) 20-Oct-05 S Set $domain and $local_part in retry matching
+
+Currently, these variables are unset. Make it like rewrite matching.
+------------------------------------------------------------------------------
+
+(347) 15-Nov-05 M Arrange to expand data from wildlsearch
+
+This would allow keys that are regular expressions to set up numerical
+variables that are included in the data. This has to be done inside the lookup
+code, because of caching. Probably means we have to invent ewildlsearch and
+enwildlsearch.
+------------------------------------------------------------------------------
+
+(351) 31-Mar-06 ? Allow some/all/a few internal variables to be set
+
+The original idea was to allow "set authenticated = x" to pretend a connection
+is authenticated after other conditions are true. This can, of course, be
+packaged up using macros in other ways. Setting other variables could cause
+problems.
+------------------------------------------------------------------------------
+
+(352) 04-Apr-06 S Add +accept_defer for host lists (and maybe others)
+
+At present, a defer causes a delivery defer. For non-critical ACLs there are
+times when it may be better to accept. See also 226 and 289.
+------------------------------------------------------------------------------
+
+(354) 30-Jun-06 ? Extensions to SMTP error codes
+
+A number of ideas arose following a discussion on the mailing list. I record
+them here so that they don't get lost. The motivations were to support the 551
+bounce code and enhanced status codes. Suggestions are to add a new ACL
+feature, possibly one of:
+
+  errorcode = 511
+  control = errorcode=551
+  message = 551 xxxx
+
+where in the last case, it's recognized by being 3 digits. In all cases, the
+first digit must be "right" for the circumstance - ignore or fault if not?
+
+To handle ESC, perhaps a new variable called $smtp_errorcode, settable by an
+option in a router when it fails, would do the trick. It could be used in any
+of the above modifiers.
+------------------------------------------------------------------------------
+
+(355) 30-Jun-06 ? Facility to permit experiments with SMTP extensions
+
+This is what was suggested:
+
+- adding some expansion variables: $ehlo_extensions (which will
+   hold the remote server supported smtp extensions announced
+   in the ehlo) and $rcpt_arguments with any RCPT extra argument
+
+- a main configuration option for adding ehlo extensions to the
+   ehlo response, like:
+
+   extra_ehlo_extensions = XFOO : XBAR
+
+- a extra option for the smtp transport to add arguments to
+   the RCPT TO command, like:
+
+   rcpt_args = FOO=BAR  (will make exim issue RCPT TO:<a@b.c> FOO=BAR
+   when delivering that message)
+
+- a new acl for unknown smtp commands
+
+This should be very simple to implement and will allow to make
+some experiments and implement custom extensions, i.e. one to
+known if remote client will redirect on 551 or not. Also the acl
+for unknown smtp command could be used for other purposes, like
+to detect and react to some kiddies that send things like
+http://... on the smtp port.
+------------------------------------------------------------------------------
+--- HWM 355 ------------------------------------------------------------------
 ---------------------------- End of WishList ---------------------------------
 ---------------------------- End of WishList ---------------------------------