Mercurial > dovecot > core-2.2
changeset 22886:d1cb41cdebe1
lib-mail: Refactor code to make the next commit smaller
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 09 Jan 2018 11:33:59 -0500 |
parents | 9648a682f05a |
children | 075c48f8ffb5 |
files | src/lib-mail/message-address.c src/lib-mail/message-id.c src/lib-mail/message-parser.c |
diffstat | 3 files changed, 16 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/message-address.c Fri Dec 22 18:56:53 2017 +0200 +++ b/src/lib-mail/message-address.c Tue Jan 09 11:33:59 2018 -0500 @@ -400,9 +400,9 @@ if (rfc822_skip_lwsp(&ctx.parser) <= 0) { /* no addresses */ - return NULL; + } else { + (void)parse_address_list(&ctx, max_addresses); } - (void)parse_address_list(&ctx, max_addresses); return ctx.first_addr; }
--- a/src/lib-mail/message-id.c Fri Dec 22 18:56:53 2017 +0200 +++ b/src/lib-mail/message-id.c Tue Jan 09 11:33:59 2018 -0500 @@ -9,6 +9,7 @@ { struct rfc822_parser_context parser; int ret; + bool success = FALSE; rfc822_parser_init(&parser, (const unsigned char *)*msgid_p, strlen(*msgid_p), NULL); @@ -27,23 +28,18 @@ ret = rfc822_parse_quoted_string(&parser, msgid); else ret = rfc822_parse_dot_atom(&parser, msgid); - if (ret <= 0) - return FALSE; - - if (*parser.data != '@') - return FALSE; - str_append_c(msgid, '@'); - parser.data++; - rfc822_skip_lwsp(&parser); + if (ret > 0 && *parser.data == '@') { + str_append_c(msgid, '@'); + parser.data++; + rfc822_skip_lwsp(&parser); - if (rfc822_parse_dot_atom(&parser, msgid) <= 0) - return FALSE; - - if (*parser.data != '>') - return FALSE; - - *msgid_p = (const char *)parser.data + 1; - return TRUE; + if (rfc822_parse_dot_atom(&parser, msgid) > 0 && + *parser.data == '>') { + *msgid_p = (const char *)parser.data + 1; + success = TRUE; + } + } + return success; } static void strip_lwsp(char *str)
--- a/src/lib-mail/message-parser.c Fri Dec 22 18:56:53 2017 +0200 +++ b/src/lib-mail/message-parser.c Tue Jan 09 11:33:59 2018 -0500 @@ -499,9 +499,8 @@ ctx->part->flags |= MESSAGE_PART_FLAG_MULTIPART_DIGEST; } - if (ret < 0) - return; - if ((ctx->part->flags & MESSAGE_PART_FLAG_MULTIPART) == 0 || + if (ret < 0 || + (ctx->part->flags & MESSAGE_PART_FLAG_MULTIPART) == 0 || ctx->last_boundary != NULL) return;