git://git.exim.org
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
337e350
)
Don't use match_isinlist() for simple string list matching
tom_dev
github/tom_dev
author
Tom Kistner
<tom@tahini.csx.cam.ac.uk>
Sun, 8 May 2011 08:58:12 +0000
(09:58 +0100)
committer
Tom Kistner
<tom@tahini.csx.cam.ac.uk>
Sun, 8 May 2011 08:58:12 +0000
(09:58 +0100)
src/src/receive.c
patch
|
blob
|
history
diff --git
a/src/src/receive.c
b/src/src/receive.c
index 914b1d2811b6a5801e92157c3e769ade0033da8b..f331d2ae5d3f764973f3cfde7380a442366cbab0 100644
(file)
--- a/
src/src/receive.c
+++ b/
src/src/receive.c
@@
-3022,14
+3022,29
@@
else
appears in the expanded list. */
if (seen_items != NULL)
{
appears in the expanded list. */
if (seen_items != NULL)
{
+ uschar *seen_item = NULL;
+ uschar seen_item_buf[256];
uschar *seen_items_list = seen_items;
uschar *seen_items_list = seen_items;
- if (match_isinlist(item,
- &seen_items_list,0,NULL,NULL,MCL_STRING,TRUE,NULL) == OK)
+ int seen_this_item = 0;
+
+ while ((seen_item = string_nextinlist(&seen_items_list, &sep,
+ seen_item_buf,
+ sizeof(seen_item_buf))) != NULL)
+ {
+ if (Ustrcmp(seen_item,item) == 0)
+ {
+ seen_this_item = 1;
+ break;
+ }
+ }
+
+ if (seen_this_item > 0)
{
DEBUG(D_receive)
debug_printf("acl_smtp_dkim: skipping signer %s, already seen\n", item);
continue;
}
{
DEBUG(D_receive)
debug_printf("acl_smtp_dkim: skipping signer %s, already seen\n", item);
continue;
}
+
seen_items = string_append(seen_items,&seen_items_size,&seen_items_offset,1,":");
}
seen_items = string_append(seen_items,&seen_items_size,&seen_items_offset,1,":");
}