dovecot-1.1: Header searches shouldn't include the header name o...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Feb 21 19:57:34 EET 2008
details: http://hg.dovecot.org/dovecot-1.1/rev/e5b840b3c5c2
changeset: 7281:e5b840b3c5c2
user: Timo Sirainen <tss at iki.fi>
date: Thu Feb 21 19:58:56 2008 +0200
description:
Header searches shouldn't include the header name or ":" in matching.
diffstat:
1 file changed, 8 insertions(+), 3 deletions(-)
src/lib-storage/index/index-search.c | 11 ++++++++---
diffs (33 lines):
diff -r e5d3e6c598ec -r e5b840b3c5c2 src/lib-storage/index/index-search.c
--- 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 @@ static void search_header_arg(struct mai
}
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 @@ static void search_header_arg(struct mai
(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);
}
More information about the dovecot-cvs
mailing list