Mercurial > dovecot > core-2.2
changeset 22894:9d24918492bb
config: Make local_name comparison faster
Based on patch by J. Nick Koston <nick@cpanel.net>
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Tue, 06 Mar 2018 10:31:51 +0200 |
parents | f03ca15a9bf1 |
children | 7c9209747a9e |
files | src/config/config-filter.c |
diffstat | 1 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/config/config-filter.c Mon Feb 26 12:53:19 2018 +0200 +++ b/src/config/config-filter.c Tue Mar 06 10:31:51 2018 +0200 @@ -37,13 +37,14 @@ { /* Handle multiple names seperated by spaces in local_name * Ex: local_name "mail.domain.tld domain.tld mx.domain.tld" { ... } */ - const char *const *local_name = t_strsplit_spaces(mask->local_name, " "); - - for (; *local_name != NULL; local_name++) { - if (dns_match_wildcard(filter_local_name, *local_name) == 0) + const char *ptr, *local_name = mask->local_name; + while((ptr = strchr(local_name, ' ')) != NULL) { + if (dns_match_wildcard(filter_local_name, + t_strdup_until(local_name, ptr)) == 0) return TRUE; + local_name = ptr+1; } - return FALSE; + return dns_match_wildcard(filter_local_name, local_name) == 0; } static bool config_filter_match_rest(const struct config_filter *mask,