summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-docbook/spec.xfpt11
-rw-r--r--doc/doc-txt/ChangeLog4
-rw-r--r--doc/doc-txt/OptionLists.txt46
-rw-r--r--src/src/smtp_in.c3
4 files changed, 55 insertions, 9 deletions
diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index ed9b0d710..c1f845eaf 100644
--- a/doc/doc-docbook/spec.xfpt
+++ b/doc/doc-docbook/spec.xfpt
@@ -8536,6 +8536,13 @@ start of a portion of the string that is interpreted and replaced as described
below in section &<<SECTexpansionitems>>& onwards. Backslash is used as an
escape character, as described in the following section.
+Whether a string is expanded depends upon the context. Usually this is solely
+dependent upon the option for which a value is sought; in this documentation,
+options for which string expansion is performed are marked with &dagger; after
+the data type. ACL rules always expand strings. A couple of expansion
+conditions do not expand some of the brace-delimited branches, for security
+reasons.
+
.section "Literal text in expanded strings" "SECTlittext"
@@ -9917,6 +9924,10 @@ lower case), signifying multiplication by 1024 or 1024*1024, respectively.
As a special case, the numerical value of an empty string is taken as
zero.
+In all cases, a relative comparator OP is testing if <&'string1'&> OP
+<&'string2'&>; the above example is checking if &$message_size$& is larger than
+10M, not if 10M is larger than &$message_size$&.
+
.vitem &*bool&~{*&<&'string'&>&*}*&
.cindex "expansion" "boolean parsing"
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index f24e1a8f9..ee63f414e 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -41,6 +41,10 @@ PP/10 Added dbmjz lookup type.
PP/11 Let heimdal_gssapi authenticator take a SASL message without an authzid.
+PP/12 MAIL args handles TAB as well as SP, for better interop with
+ non-compliant senders.
+ Analysis and variant patch by Todd Lyons.
+
Exim version 4.77
-----------------
diff --git a/doc/doc-txt/OptionLists.txt b/doc/doc-txt/OptionLists.txt
index 6c820fbea..5313fd17c 100644
--- a/doc/doc-txt/OptionLists.txt
+++ b/doc/doc-txt/OptionLists.txt
@@ -336,7 +336,7 @@ mailbox_size string* unset appendfile
maildir_format boolean false appendfile 1.70
maildir_retries integer 10 appendfile 1.70
maildir_tag string* unset appendfile 1.92
-maildir_use_size_file boolean false appendfile 4.30
+maildir_use_size_file boolean* false appendfile 4.30 expanded in 4.77
maildirfolder_create_regex string unset appendfile 4.62
mailstore_format boolean false appendfile 2.00
mailstore_prefix string* unset appendfile 2.00
@@ -466,14 +466,19 @@ sender_unqualified_hosts host list unset main
senders address list unset routers 4.00
serialize_hosts host list unset smtp 1.60
server_advertise_condition string* unset authenticators 4.14
+server_channelbinding bool false gsasl 4.78
server_condition string* unset authenticators 3.10 (plaintext) 4.64 (others)
-server_hostname string* "$primary_hostname" cyrus_sasl 4.43
+server_hostname string* "$primary_hostname" cyrus_sasl,gsasl,heimdal_gssapi (cyrus-only) 4.78 (others)
+server_keytab string* unset heimdal_gssapi 4.78
server_mail_auth_condition string* unset authenticators 3.22
-server_mech string public_name cyrus_sasl 4.43
+server_mech string public_name cyrus_sasl,gsasl 4.43 (cyrus-only) 4.78 (others)
+server_password string unset gsasl 4.78
server_prompts string* unset plaintext 3.10
-server_realm string unset cyrus_sasl 4.43
+server_realm string unset cyrus_sasl,gsasl 4.43 (cyrus-only) 4.78 (others)
+server_scram_iter string* unset gsasl 4.78
+server_scram_salt string* unset gsasl 4.78
server_secret string* unset cram_md5 3.10
-server_service string "smtp" cyrus_sasl 4.43
+server_service string "smtp" cyrus_sasl,gsasl,heimdal_gssapi (cyrus-only) 4.78 (others)
server_set_id string* unset authenticators 3.10
shadow_condition string* unset transports
shadow_transport string unset transports
@@ -737,9 +742,12 @@ provide compatibility with Sendmail.
3. BUILD TIME OPTIONS FOR EXIM
------------------------------
-The table below contains a complete list of options that can be set in
-Local/Makefile when building Exim. More information about individual options
-can be found in src/EDITME and OS/Makefile-Default.
+The table below contains a "mostly" complete list of options that can be
+set in Local/Makefile when building Exim. The only items not included are
+those whose names can be trivially derived from rules stated below.
+
+More information about individual options can be found in src/EDITME and
+OS/Makefile-Default.
The second column below gives the type of option:
@@ -769,6 +777,23 @@ empty by default, and is provided for just this reason. Of course, if you do
actually want to modify a setting from the OS-specific file, there is nothing
to stop you overriding it in your Local/Makefile.
+When building Exim with dynamically loaded lookup support, for "LOOKUP_FOO",
+you can define "LOOKUP_FOO_INCLUDE" and "LOOKUP_FOO_LIBS", for includes and
+libraries specific only to that module. These rules are only used where the
+relevant lookup is a module. These options are not explicitly listed below.
+
+Variables with names endined `_PC' are used for pkg-config integration; setting
+the value to the name of a pkg-config package will cause Exim's build system to
+query the --cflags and --libs for the given name, when building anything
+dependent upon the component associated with the `_PC' variable. For lookups,
+if the lookup is dynamically loaded, then this *replaces* the use of the
+corresponding _INCLUDE and _LIBS options, which will be ignored. If the lookup
+is statically loaded into Exim, the results will be inserted into the
+"LOOKUP_INCLUDE" and "LOOKUP_LIBS" options. For authenticator, the results
+will be inserted into the "CFLAGS" and "AUTH_LIBS" options. These options are
+only listed below for the TLS implementation cases.
+
+
Option Type Description
------------------------------------------------------------------------------
@@ -779,6 +804,9 @@ APPENDFILE_LOCKFILE_MODE optional*
AR system command to build a library
AUTH_CRAM_MD5 driver include cram_md5 authenticator
AUTH_CYRUS_SASL driver include Cyrus SASL authenticator
+AUTH_GSASL driver include GNU SASL authenticator
+AUTH_HEIMDAL_GSSAPI driver include Heimdal GSSAPI authenticator
+AUTH_LIBS system library linkage for authenticators
AUTH_PLAINTEXT driver include plaintext authenticator
AUTH_SPA driver include SPA (NTLM) authenticator
AUTH_VARS=3 optional* number of $auth variables
@@ -927,6 +955,8 @@ TRANSPORT_SMTP driver include smtp transport
TRUSTED_CONFIG_LIST optional config files safe to retain privileges
USE_DB system** use native DB interface
USE_GNUTLS optional use GnuTLS instead of OpenSSL
+USE_GNUTLS_PC optional probably "gnutls"
+USE_OPENSSL_PC optional probably "openssl"
USE_READLINE optional try to load libreadline for -be
USE_TCP_WRAPPERS system link with tcpwrappers
USE_TDB optional use the tdb DB interface
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c
index e79f0a202..476bbf0c2 100644
--- a/src/src/smtp_in.c
+++ b/src/src/smtp_in.c
@@ -983,7 +983,8 @@ if (*v != '=') return FALSE;
n = v;
while(isalpha(n[-1])) n--;
-if (n[-1] != ' ') return FALSE;
+/* RFC says SP, but TAB seen in wild and other major MTAs accept it */
+if (!isspace(n[-1])) return FALSE;
n[-1] = 0;
*name = n;