-/* $Cambridge: exim/src/src/match.c,v 1.3 2005/01/04 10:00:42 ph10 Exp $ */
+/* $Cambridge: exim/src/src/match.c,v 1.5 2005/02/17 11:58:26 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
store_pool = POOL_PERM;
p = store_get(sizeof(namedlist_cacheblock));
p->key = string_copy(get_check_key(arg, type));
+
+
+ p->data = (*valueptr == NULL)? NULL : string_copy(*valueptr);
store_pool = old_pool;
- p->data = *valueptr;
p->next = nb->cache_data;
nb->cache_data = p;
if (*valueptr != NULL)
DEBUG(D_lists) debug_printf("address match: subject=%s pattern=%s\n",
subject, pattern);
-/* Handle a regular expression, which must match the entire incoming address.
+/* Handle a regular expression, which must match the entire incoming address.
This may be the empty address. */
if (*pattern == '^')
if (*s == '*') s++;
if (*s == '@') s++;
-/* If it is a straight lookup, do a lookup for the whole address. This may be
+/* If it is a straight lookup, do a lookup for the whole address. This may be
the empty address. Partial matching doesn't make sense here, so we ignore it,
but write a panic log entry. However, *@ matching will be honoured. */
valueptr);
}
-/* For the remaining cases, an empty subject matches only an empty pattern,
-because other patterns expect to have a local part and a domain to match
+/* For the remaining cases, an empty subject matches only an empty pattern,
+because other patterns expect to have a local part and a domain to match
against. */
if (*subject == 0) return (*pattern == 0)? OK : FAIL;