Commit
55414b25b did const-ification surgery which removed the old
"temporarily drop a NUL in here" anti-pattern, but one of the
Ustrcmp->Ustrncmp conversions was missed, for transport-name comparison.
As a result, since Exim 4.85, we've had an undocumented
requirement-by-bug that the transport name be the last such option
given. Restore old behaviour.
Still missing a test-case to deter regression.
lookup first. Only if that gives a definite &"no such host"& is the local
function called.
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
If no IP address for a host can be found, what happens is controlled by the
JH/16 Fix logging of delivery remote port, when specified by router, under
callout/hold.
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
-----------------
Exim version 4.89
-----------------
{
transport_instance *t;
for (t = transports; t != NULL; t = t->next)
{
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;
{
transport = t;
individual_transport_set = TRUE;