summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-docbook/spec.xfpt4
-rw-r--r--doc/doc-txt/ChangeLog3
-rw-r--r--src/src/routers/manualroute.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index 4a239b73c..aab8c00d5 100644
--- a/doc/doc-docbook/spec.xfpt
+++ b/doc/doc-docbook/spec.xfpt
@@ -19469,6 +19469,10 @@ instead of TRY_AGAIN. That is why the default action is to try a DNS
lookup first. Only if that gives a definite &"no such host"& is the local
function called.
+&*Compatibility*&: From Exim 4.85 until fixed for 4.90, there was an
+inadvertent constraint that a transport name as an option had to be the last
+option specified.
+
If no IP address for a host can be found, what happens is controlled by the
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 336935329..03ec157ec 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -109,6 +109,9 @@ JH/15 Fix a crash in the smtp transport caused when two hosts in succession
JH/16 Fix logging of delivery remote port, when specified by router, under
callout/hold.
+PP/06 Repair manualroute's ability to take options before hostnames.
+ Fixes bug 2140.
+
Exim version 4.89
-----------------
diff --git a/src/src/routers/manualroute.c b/src/src/routers/manualroute.c
index 95c69328d..31185e160 100644
--- a/src/src/routers/manualroute.c
+++ b/src/src/routers/manualroute.c
@@ -333,7 +333,7 @@ while (*options != 0)
{
transport_instance *t;
for (t = transports; t != NULL; t = t->next)
- if (Ustrcmp(t->name, s) == 0)
+ if (Ustrncmp(t->name, s, n) == 0)
{
transport = t;
individual_transport_set = TRUE;