Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7281:e5b840b3c5c2 HEAD
Header searches shouldn't include the header name or ":" in matching.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 21 Feb 2008 19:58:56 +0200 |
parents | e5d3e6c598ec |
children | bbae5b6b6d2b |
files | src/lib-storage/index/index-search.c |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-search.c Thu Feb 21 18:58:41 2008 +0200 +++ b/src/lib-storage/index/index-search.c Thu Feb 21 19:58:56 2008 +0200 @@ -378,6 +378,14 @@ } memset(&block, 0, sizeof(block)); + + /* We're searching only for values, so drop header name and middle + parts. We use header searching so that MIME words will be decoded. */ + hdr = *ctx->hdr; + hdr.name = ""; hdr.name_len = 0; + hdr.middle_len = 0; + block.hdr = &hdr; + msg_search_ctx = msg_search_arg_context(ctx->index_context, arg); if (msg_search_ctx == NULL) match = FALSE; @@ -393,14 +401,11 @@ (unsigned int)-1, TRUE); str = t_str_new(ctx->hdr->value_len); message_address_write(str, addr); - hdr = *ctx->hdr; hdr.value = hdr.full_value = str_data(str); hdr.value_len = hdr.full_value_len = str_len(str); - block.hdr = &hdr; match = message_search_more(msg_search_ctx, &block); } T_END; } else { - block.hdr = ctx->hdr; match = message_search_more(msg_search_ctx, &block); }