Tidies to ${prvscheck: (1) treat missing 3rd argument as an empty
[users/jgh/exim.git] / doc / doc-misc / WishList
index 8f2b7953646de644492a6182bcbcff6802973371..1fbe547bfeb473a54c30a1a60a27a6bf9c60aad0 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-misc/WishList,v 1.30 2005/05/03 08:38:13 ph10 Exp $
+$Cambridge: exim/doc/doc-misc/WishList,v 1.53 2005/10/11 09:30:41 ph10 Exp $
 
 EXIM 4 WISH LIST
 ----------------
@@ -72,7 +72,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
-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
@@ -124,7 +124,7 @@ http://www.net.lut.ac.uk/~martin/antispam/exim-hacks/
 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
@@ -321,7 +321,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
-any change be made?
+any change be made? See also Exim 4/333.
 ------------------------------------------------------------------------------
 
 (155) 16-Jun-2000 M  Special handling for certain hosts
@@ -366,15 +366,6 @@ delivery to a given address rather than freezing the message. Use the errors_to
 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
 
@@ -382,10 +373,6 @@ This is for looking up things like subject contents. Probably need an option to
 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.
@@ -424,12 +411,6 @@ latter would worth the hassle), in a way like:
         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
 ------------------------------------------------------------------------------
 
@@ -459,10 +440,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.
 
-. 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
@@ -493,7 +470,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
-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".
 
@@ -501,9 +479,6 @@ stdout as the SMTP response."
 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
@@ -528,8 +503,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.
 
-. 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.
 
@@ -588,11 +561,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
-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
@@ -793,7 +763,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
-in Received: headers.)
+in Received: headers.) See also 333.
 ------------------------------------------------------------------------------
 
 (58)  26-Jun-02 ?  Extend PAM support
@@ -819,7 +789,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
-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
@@ -827,7 +797,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
-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
@@ -864,24 +834,6 @@ So as to avoid duplication problems when sending multiple addresses in multiple
 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!
-
-The only sensible approach seems to be to allow IP address arguments only.
-Anything else should be diagnosed as an error. However, if a name appears in
-the list, a PTR lookup should be done. This may require a lot of refactoring
-in the code, because of the current assumption that were are (almost) always
-dealing with THE sending host.
-------------------------------------------------------------------------------
-
 (74)  22-Jul-02 M  Extend -bV to do more semantic checking
 
 For example, diagnose "local_hosts" that should probably be "+local_hosts".
@@ -1166,6 +1118,8 @@ For sending reasons for slow response, etc.
 ------------------------------------------------------------------------------
 
 (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
@@ -1201,10 +1155,6 @@ needed is a flag for a rewrite rule.
 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
 
 ------------------------------------------------------------------------------
@@ -1366,6 +1316,8 @@ option, for use with multiple Exim daemons.
 ------------------------------------------------------------------------------
 
 (212) 31-Oct-03 M  specify headers lines in HELO ACL to be added to all msgs
+
+See also 333.
 ------------------------------------------------------------------------------
 
 (214) 05-Nov-03 S  Put the wild part of local part prefix/suffx in variables
@@ -1506,7 +1458,8 @@ this reason, I don't really like this idea.
 
 (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.
+This would be useful for verbs where "message" is an error message. See also
+333.
 ------------------------------------------------------------------------------
 
 (238) 05-Feb-04 S  ${address to handle multiple addresses
@@ -1616,7 +1569,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
-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
@@ -1842,7 +1795,8 @@ runners must be startable for the different "queues". Don't forget that the
 (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.
+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.
@@ -1875,12 +1829,6 @@ file would contain the complete email. I suppose there may be other scanning
 solutions with a similar requirement."
 ------------------------------------------------------------------------------
 
-(320) 03-Mar-05 T Options to control daemon retry binding
-
-Currently the daemon tries 10 times at 30-second intervals to listen on an IP
-address. The wish is for options to control these numbers.
-------------------------------------------------------------------------------
-
 (321) 07-Mar-05 S Run an ACL on a sync error
 
 ... and possibly "accept" or "deny" it.
@@ -1901,15 +1849,143 @@ transport and the callout code could prevent this kind of thing from happening.
 This is in the Bugzilla as #10.
 ------------------------------------------------------------------------------
 
-(325) 28-Apr-05 ? Support for quotas over 2G in appendfile.
-
-Things get bigger far more quickly than I ever imagine...
-------------------------------------------------------------------------------
-
 (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.
 ------------------------------------------------------------------------------
---- HWM 326 ------------------------------------------------------------------
+
+(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, 237, 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/TF/02.
+------------------------------------------------------------------------------
+
+(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}}
+------------------------------------------------------------------------------
+
+(344) 10-Oct-05 M Make debug_print work in authenticators
+------------------------------------------------------------------------------
+--- HWM 344 ------------------------------------------------------------------
 ---------------------------- End of WishList ---------------------------------