summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2006-10-31 16:08:11 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2006-10-31 16:08:11 +0000
commit1bf43b7812e6dd16ab21c42a28f6ba34a28d2bb7 (patch)
treeefcce7eb6c26c596a680e85a9d305842621b71db /src
parent0d85fa3fd0f9f036b4ca269a15fce0f0c5348ffe (diff)
$domain not always set when scanning a domain list.
Diffstat (limited to 'src')
-rw-r--r--src/src/match.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/src/match.c b/src/src/match.c
index 238a2cdea..d70169899 100644
--- a/src/src/match.c
+++ b/src/src/match.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/match.c,v 1.15 2006/07/27 13:50:43 ph10 Exp $ */
+/* $Cambridge: exim/src/src/match.c,v 1.16 2006/10/31 16:08:11 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -481,7 +481,19 @@ if (type >= MCL_NOEXPAND)
}
else
{
- list = expand_string(*listptr);
+ /* If we are searching a domain list, and $domain is not set, set it to the
+ subject that is being sought for the duration of the expansion. */
+
+ if (type == MCL_DOMAIN && deliver_domain == NULL)
+ {
+ check_string_block *cb = (check_string_block *)arg;
+ deliver_domain = cb->subject;
+ list = expand_string(*listptr);
+ deliver_domain = NULL;
+ }
+
+ else list = expand_string(*listptr);
+
if (list == NULL)
{
if (expand_string_forcedfail)