Use xmlto; add to 'clean' target.
[exim.git] / doc / doc-docbook / spec.xfpt
index 9d2dc4b270b7286cc131433cbbd69e0430d6c668..92d0a22879211a7b191de4e1d15406cdd04b08c1 100644 (file)
@@ -42,6 +42,7 @@
 
 . /////////////////////////////////////////////////////////////////////////////
 . These definitions set some parameters and save some typing.
+. Update the Copyright year (only) when changing content.
 . /////////////////////////////////////////////////////////////////////////////
 
 .set previousversion "4.80"
@@ -50,6 +51,9 @@
 .set ACL "access control lists (ACLs)"
 .set I   "    "
 
+.macro copyyear
+2012
+.endmacro
 
 . /////////////////////////////////////////////////////////////////////////////
 . Additional xfpt markup used by this document, over and above the default
   <authorinitials>EM</authorinitials>
 </revision></revhistory>
 <copyright><year>
-.year
+.copyyear
            </year><holder>University of Cambridge</holder></copyright>
 </bookinfo>
 .literal off
@@ -11746,6 +11750,12 @@ envelope sender.
 .vindex "&$return_size_limit$&"
 This is an obsolete name for &$bounce_return_size_limit$&.
 
+.vitem &$router_name$&
+.cindex "router" "name"
+.cindex "name" "of router"
+.vindex "&$router_name$&"
+During the running of a router this variable contains its name.
+
 .vitem &$runrc$&
 .cindex "return code" "from &%run%& expansion"
 .vindex "&$runrc$&"
@@ -12200,6 +12210,12 @@ This variable contains the numerical value of the local timezone, for example:
 This variable contains the UTC date and time in &"Zulu"& format, as specified
 by ISO 8601, for example: 20030221154023Z.
 
+.vitem &$transport_name$&
+.cindex "transport" "name"
+.cindex "name" "of transport"
+.vindex "&$transport_name$&"
+During the running of a transport, this variable contains its name.
+
 .vitem &$value$&
 .vindex "&$value$&"
 This variable contains the result of an expansion lookup, extraction operation,
@@ -16050,6 +16066,9 @@ use OpenSSL with a directory.
 
 See &<<SECTtlssni>>& for discussion of when this option might be re-expanded.
 
+A forced expansion failure or setting to an empty string is equivalent to
+being unset.
+
 
 .option tls_verify_hosts main "host list&!!" unset
 .cindex "TLS" "client certificate verification"
@@ -16416,7 +16435,8 @@ be specified using &%condition%&.
 .option debug_print routers string&!! unset
 .cindex "testing" "variables in drivers"
 If this option is set and debugging is enabled (see the &%-d%& command line
-option), the string is expanded and included in the debugging output.
+option) or in address-testing mode (see the &%-bt%& command line option),
+the string is expanded and included in the debugging output.
 If expansion of the string fails, the error message is written to the debugging
 output, and Exim carries on processing.
 This option is provided to help with checking out the values of variables and
@@ -16425,6 +16445,7 @@ option appears not to be working, &%debug_print%& can be used to output the
 variables it references. The output happens after checks for &%domains%&,
 &%local_parts%&, and &%check_local_user%& but before any other preconditions
 are tested. A newline is added to the text if it does not end with one.
+The variable &$router_name$& contains the name of the router.
 
 
 
@@ -19585,6 +19606,8 @@ so on when debugging driver configurations. For example, if a &%headers_add%&
 option is not working properly, &%debug_print%& could be used to output the
 variables it references. A newline is added to the text if it does not end with
 one.
+The variables &$transport_name$& and &$router_name$& contain the name of the
+transport and the router that called it.
 
 
 .option delivery_date_add transports boolean false
@@ -36321,6 +36344,12 @@ Add to &_src/config.h.defaults_& the line:
 Edit &_src/drtables.c_&, adding conditional code to pull in the private header
 and create a table entry as is done for all the other drivers and lookup types.
 .next
+Edit &_scripts/lookups-Makefile_& if this is a new lookup; there is a for-loop
+near the bottom, ranging the &`name_mod`& variable over a list of all lookups.
+Add your &`NEWDRIVER`& to that list.
+As long as the dynamic module would be named &_newdriver.so_&, you can use the
+simple form that most lookups have.
+.next
 Edit &_Makefile_& in the appropriate sub-directory (&_src/routers_&,
 &_src/transports_&, &_src/auths_&, or &_src/lookups_&); add a line for the new
 driver or lookup type and add it to the definition of OBJ.