select() -> poll(). Bug 2831
[exim.git] / doc / doc-docbook / spec.xfpt
index 540a9cbf80eaa28110287122b1a6cd3c3a25167a..a8cd63b192a5c38fe7ebac7be55cbf11f997c694 100644 (file)
@@ -766,17 +766,17 @@ the Exim documentation, &"spool"& is always used in the first sense.
 .chapter "Incorporated code" "CHID2"
 .cindex "incorporated code"
 .cindex "regular expressions" "library"
 .chapter "Incorporated code" "CHID2"
 .cindex "incorporated code"
 .cindex "regular expressions" "library"
-.cindex "PCRE"
+.cindex "PCRE2"
 .cindex "OpenDMARC"
 A number of pieces of external code are included in the Exim distribution.
 
 .ilist
 Regular expressions are supported in the main Exim program and in the
 .cindex "OpenDMARC"
 A number of pieces of external code are included in the Exim distribution.
 
 .ilist
 Regular expressions are supported in the main Exim program and in the
-Exim monitor using the freely-distributable PCRE library, copyright
-© University of Cambridge. The source to PCRE is no longer shipped with
-Exim, so you will need to use the version of PCRE shipped with your system,
+Exim monitor using the freely-distributable PCRE2 library, copyright
+© University of Cambridge. The source to PCRE2 is not longer shipped with
+Exim, so you will need to use the version of PCRE2 shipped with your system,
 or obtain and install the full version of the library from
 or obtain and install the full version of the library from
-&url(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre).
+&url(https://github.com/PhilipHazel/pcre2/releases).
 .next
 .cindex "cdb" "acknowledgment"
 Support for the cdb (Constant DataBase) lookup method is provided by code
 .next
 .cindex "cdb" "acknowledgment"
 Support for the cdb (Constant DataBase) lookup method is provided by code
@@ -1745,20 +1745,20 @@ overridden if necessary.
 A C99-capable compiler will be required for the build.
 
 
 A C99-capable compiler will be required for the build.
 
 
-.section "PCRE library" "SECTpcre"
-.cindex "PCRE library"
-Exim no longer has an embedded PCRE library as the vast majority of
-modern systems include PCRE as a system library, although you may need to
-install the PCRE package or the PCRE development package for your operating
-system. If your system has a normal PCRE installation the Exim build
+.section "PCRE2 library" "SECTpcre"
+.cindex "PCRE2 library"
+Exim no longer has an embedded regular-expression library as the vast majority of
+modern systems include PCRE2 as a system library, although you may need to
+install the PCRE2 package or the PCRE2 development package for your operating
+system. If your system has a normal PCRE2 installation the Exim build
 process will need no further configuration. If the library or the
 process will need no further configuration. If the library or the
-headers are in an unusual location you will need to either set the PCRE_LIBS
+headers are in an unusual location you will need to either set the PCRE2_LIBS
 and INCLUDE directives appropriately,
 and INCLUDE directives appropriately,
-or set PCRE_CONFIG=yes to use the installed &(pcre-config)& command.
+or set PCRE2_CONFIG=yes to use the installed &(pcre-config)& command.
 If your operating system has no
 If your operating system has no
-PCRE support then you will need to obtain and build the current PCRE
-from &url(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/).
-More information on PCRE is available at &url(https://www.pcre.org/).
+PCRE2 support then you will need to obtain and build the current PCRE
+from &url(https://github.com/PhilipHazel/pcre2/releases).
+More information on PCRE2 is available at &url(https://www.pcre.org/).
 
 .section "DBM libraries" "SECTdb"
 .cindex "DBM libraries" "discussion of"
 
 .section "DBM libraries" "SECTdb"
 .cindex "DBM libraries" "discussion of"
@@ -2587,6 +2587,25 @@ use of Exim's filtering capabilities, you should make the document entitled
 
 
 
 
 
 
+.section "Running the daemon" SECTdaemonLaunch
+The most common command line for launching the Exim daemon looks like
+.code
+exim -bd -q5m
+.endd
+This starts a daemon which
+.ilist
+listens for incoming smtp connections, launching handler processes for
+each new one
+.next
+starts a queue-runner process every five minutes, to inspect queued messages
+and run delivery attempts on any that have arrived at their retry time
+.endlist
+Should a queue run take longer than the time between queue-runner starts,
+they will run in parallel.
+Numbers of jobs of the various types are subject to policy controls
+defined in the configuration.
+
+
 .section "Upgrading Exim" "SECID36"
 .cindex "upgrading Exim"
 If you are already running Exim on your host, building and installing a new
 .section "Upgrading Exim" "SECID36"
 .cindex "upgrading Exim"
 If you are already running Exim on your host, building and installing a new
@@ -6635,9 +6654,9 @@ Chapter &<<CHAPplaintext>>& covers both.
 .chapter "Regular expressions" "CHAPregexp"
 
 .cindex "regular expressions" "library"
 .chapter "Regular expressions" "CHAPregexp"
 
 .cindex "regular expressions" "library"
-.cindex "PCRE"
+.cindex "PCRE2"
 Exim supports the use of regular expressions in many of its options. It
 Exim supports the use of regular expressions in many of its options. It
-uses the PCRE regular expression library; this provides regular expression
+uses the PCRE2 regular expression library; this provides regular expression
 matching that is compatible with Perl 5. The syntax and semantics of
 regular expressions is discussed in
 online Perl manpages, in
 matching that is compatible with Perl 5. The syntax and semantics of
 regular expressions is discussed in
 online Perl manpages, in
@@ -6649,10 +6668,10 @@ O'Reilly (see &url(http://www.oreilly.com/catalog/regex2/)).
 . --- to the old URL for now.  2018-09-07.
 
 The documentation for the syntax and semantics of the regular expressions that
 . --- to the old URL for now.  2018-09-07.
 
 The documentation for the syntax and semantics of the regular expressions that
-are supported by PCRE is included in the PCRE distribution, and no further
-description is included here. The PCRE functions are called from Exim using
-the default option settings (that is, with no PCRE options set), except that
-the PCRE_CASELESS option is set when the matching is required to be
+are supported by PCRE2 is included in the PCRE2 distribution, and no further
+description is included here. The PCRE2 functions are called from Exim using
+the default option settings (that is, with no PCRE2 options set), except that
+the PCRE2_CASELESS option is set when the matching is required to be
 case-insensitive.
 
 In most cases, when a regular expression is required in an Exim configuration,
 case-insensitive.
 
 In most cases, when a regular expression is required in an Exim configuration,
@@ -18410,12 +18429,7 @@ larger prime than requested.
 The value of this option is expanded and indicates the source of DH parameters
 to be used by Exim.
 
 The value of this option is expanded and indicates the source of DH parameters
 to be used by Exim.
 
-This option is ignored for GnuTLS version 3.6.0 and later.
-The library manages parameter negotiation internally.
-
-&*Note: The Exim Maintainers strongly recommend,
-for other TLS library versions,
-using a filename with site-generated
+&*Note: The Exim Maintainers strongly recommend using a filename with site-generated
 local DH parameters*&, which has been supported across all versions of Exim.  The
 other specific constants available are a fallback so that even when
 "unconfigured", Exim can offer Perfect Forward Secrecy in older ciphersuites in TLS.
 local DH parameters*&, which has been supported across all versions of Exim.  The
 other specific constants available are a fallback so that even when
 "unconfigured", Exim can offer Perfect Forward Secrecy in older ciphersuites in TLS.
@@ -18640,7 +18654,8 @@ either &%tls_verify_hosts%& or &%tls_try_verify_hosts%& is set and
 Any client that matches &%tls_verify_hosts%& is constrained by
 &%tls_verify_certificates%&. When the client initiates a TLS session, it must
 present one of the listed certificates. If it does not, the connection is
 Any client that matches &%tls_verify_hosts%& is constrained by
 &%tls_verify_certificates%&. When the client initiates a TLS session, it must
 present one of the listed certificates. If it does not, the connection is
-aborted. &*Warning*&: Including a host in &%tls_verify_hosts%& does not require
+aborted.
+&*Warning*&: Including a host in &%tls_verify_hosts%& does not require
 the host to use TLS. It can still send SMTP commands through unencrypted
 connections. Forcing a client to use TLS has to be done separately using an
 ACL to reject inappropriate commands when the connection is not encrypted.
 the host to use TLS. It can still send SMTP commands through unencrypted
 connections. Forcing a client to use TLS has to be done separately using an
 ACL to reject inappropriate commands when the connection is not encrypted.
@@ -26095,6 +26110,10 @@ certificate verification must succeed.
 The &%tls_verify_certificates%& option must also be set.
 If both this option and &%tls_try_verify_hosts%& are unset
 operation is as if this option selected all hosts.
 The &%tls_verify_certificates%& option must also be set.
 If both this option and &%tls_try_verify_hosts%& are unset
 operation is as if this option selected all hosts.
+&*Warning*&: Including a host in &%tls_verify_hosts%& does not require
+that connections use TLS.
+Fallback to in-clear communication will be done unless restricted by 
+the &%hosts_require_tls%& option.
 
 .option utf8_downconvert smtp integer&!! -1
 .cindex utf8 "address downconversion"
 
 .option utf8_downconvert smtp integer&!! -1
 .cindex utf8 "address downconversion"
@@ -40683,7 +40702,7 @@ Consider the use of the &%inlisti%& expansion condition instead.
 .cindex "security" "data sources"
 .cindex "security" "regular expressions"
 .cindex "regular expressions" "security"
 .cindex "security" "data sources"
 .cindex "security" "regular expressions"
 .cindex "regular expressions" "security"
-.cindex "PCRE" "security"
+.cindex "PCRE2" "security"
 If configuration data for Exim can come from untrustworthy sources, there
 are some issues to be aware of:
 
 If configuration data for Exim can come from untrustworthy sources, there
 are some issues to be aware of:
 
@@ -40693,7 +40712,7 @@ Use of &%${expand...}%& may provide a path for shell injection attacks.
 Letting untrusted data provide a regular expression is unwise.
 .next
 Using &%${match...}%& to apply a fixed regular expression against untrusted
 Letting untrusted data provide a regular expression is unwise.
 .next
 Using &%${match...}%& to apply a fixed regular expression against untrusted
-data may result in pathological behaviour within PCRE.  Be aware of what
+data may result in pathological behaviour within PCRE2.  Be aware of what
 "backtracking" means and consider options for being more strict with a regular
 expression. Avenues to explore include limiting what can match (avoiding &`.`&
 when &`[a-z0-9]`& or other character class will do), use of atomic grouping and
 "backtracking" means and consider options for being more strict with a regular
 expression. Avenues to explore include limiting what can match (avoiding &`.`&
 when &`[a-z0-9]`& or other character class will do), use of atomic grouping and