Lookups: Fix "subdir" filter on a dsearch.
[users/heiko/exim.git] / doc / doc-docbook / spec.xfpt
index b1387eb497122eae0a27b66dd892539e3a124aa3..77784969a5b5e1297c5577209974d98169e10db3 100644 (file)
@@ -8038,8 +8038,8 @@ For MySQL, PostgreSQL and Redis lookups (but not currently for Oracle and InterB
 it is possible to specify a list of servers with an individual query. This is
 done by appending a comma-separated option to the query type:
 .display
-.endd
 &`,servers=`&&'server1:server2:server3:...'&
+.endd
 .wen
 Each item in the list may take one of two forms:
 .olist
@@ -10170,6 +10170,18 @@ extracted is used.
 You can use &`fail`& instead of {<&'string3'&>} as in a string extract.
 
 
+.new
+.vitem &*${listquote{*&<&'separator'&>&*}{*&<&'string'&>&*}}*&
+.cindex quoting "for list"
+.cindex list quoting
+This item doubles any occurrence of the separator character
+in the given string.
+An empty string is replaced with a single space.
+This converts the string into a safe form for use as a list element,
+in a list using the given separator.
+.wen
+
+
 .vitem "&*${lookup{*&<&'key'&>&*}&~*&<&'search&~type'&>&*&~&&&
         {*&<&'file'&>&*}&~{*&<&'string1'&>&*}&~{*&<&'string2'&>&*}}*&"
 This is the first of one of two different types of lookup item, which are both
@@ -11922,15 +11934,12 @@ request, for a password, so the data consists of just two strings.
 
 There can be problems if any of the strings are permitted to contain colon
 characters. In the usual way, these have to be doubled to avoid being taken as
-separators. If the data is being inserted from a variable, the &%sg%& expansion
-item can be used to double any existing colons. For example, the configuration
+separators.
+The &%listquote%& expansion item can be used for this.
+For example, the configuration
 of a LOGIN authenticator might contain this setting:
 .code
-server_condition = ${if pam{$auth1:${sg{$auth2}{:}{::}}}}
-.endd
-For a PLAIN authenticator you could use:
-.code
-server_condition = ${if pam{$auth2:${sg{$auth3}{:}{::}}}}
+server_condition = ${if pam{$auth1:${listquote{:}{$auth2}}}}
 .endd
 In some operating systems, PAM authentication can be done only from a process
 running as root. Since Exim is running as the Exim user when receiving
@@ -17767,35 +17776,42 @@ See section &<<SECSPF>>& for more details.
 This option is available when Exim is compiled with SPF support.  It
 allows the customisation of the SMTP comment that the SPF library
 generates.  You are strongly encouraged to link to your own explanative
-site. The following placeholders (along with Exim variables) are allowed
-in the template (this list is compiled from the libspf2 sources):
+site. The template must not contain spaces. If you need spaces in the
+output, use the proper placeholder. If libspf2 can not parse the
+template, it uses a built-in default broken link. The following placeholders
+(along with Exim variables (but see below)) are allowed in the template:
 .ilist
-&*L*&: Envelope sender's local part.
+&*%_*&: A space.
+.next
+&*%{L}*&: Envelope sender's local part.
 .next
-&*S*&: Envelope sender.
+&*%{S}*&: Envelope sender.
 .next
-&*O*&: Envelope sender's domain.
+&*%{O}*&: Envelope sender's domain.
 .next
-&*D*&: Current(?) domain.
+&*%{D}*&: Current(?) domain.
 .next
-&*I*&: SMTP client Ip.
+&*%{I}*&: SMTP client Ip.
 .next
-&*C*&: SMTP client pretty IP.
+&*%{C}*&: SMTP client pretty IP.
 .next
-&*T*&: Epoch time (UTC).
+&*%{T}*&: Epoch time (UTC).
 .next
-&*P*&: SMTP client domain name.
+&*%{P}*&: SMTP client domain name.
 .next
-&*V*&: IP version.
+&*%{V}*&: IP version.
 .next
-&*H*&: EHLO/HELO domain.
+&*%{H}*&: EHLO/HELO domain.
 .next
-&*R*&: Receiving domain.
+&*%{R}*&: Receiving domain.
 .endlist
 The capitalized placeholders do proper URL encoding, if you use them
-lowercased, no encoding takes place.  A note on using Exim variables: As
-currenty the SPF library is initialized already during the EHLO phase,
-the amount of variables available for expansion is quite limited.
+lowercased, no encoding takes place.  This list was compiled from the
+libspf2 sources.
+
+A note on using Exim variables: As
+currently the SPF library is initialized before the SMTP EHLO phase,
+the variables useful for expansion are quite limited.
 .wen
 
 
@@ -29202,8 +29218,14 @@ certificate verification to the listed servers.  Verification either must
 or need not succeed respectively.
 
 The &%tls_verify_cert_hostnames%& option lists hosts for which additional
-checks are made: that the host name (the one in the DNS A record)
-is valid for the certificate.
+name checks are made on the server certificate.
+.new
+The match against this list is, as per other Exim usage, the
+IP for the host.  That is most closely associated with the
+name on the DNS A (or AAAA) record for the host.
+However, the name that needs to be in the certificate
+is the one at the head of any CNAME chain leading to the A record.
+.wen
 The option defaults to always checking.
 
 The &(smtp)& transport has two OCSP-related options: