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;