Mercurial > dovecot > core-2.2
changeset 21622:b6b198961bc6
lib-mail: Gave message_part_data its own field in struct message_part.
author | Stephan Bosch <stephan.bosch@dovecot.fi> |
---|---|
date | Sun, 23 Oct 2016 13:29:43 +0200 |
parents | 4e137a17cfd7 |
children | ff0f2eb98d79 |
files | src/lib-imap/imap-bodystructure.c src/lib-imap/imap-bodystructure.h src/lib-mail/message-part.h src/lib-storage/index/index-mail.c |
diffstat | 4 files changed, 25 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-imap/imap-bodystructure.c Sun Oct 23 13:10:11 2016 +0200 +++ b/src/lib-imap/imap-bodystructure.c Sun Oct 23 13:29:43 2016 +0200 @@ -238,16 +238,16 @@ bool parent_rfc822; if (hdr == NULL) { - if (part->context == NULL) { + if (part->data == NULL) { /* no Content-* headers. add an empty context structure anyway. */ - part->context = part_data = + part->data = part_data = p_new(pool, struct message_part_data, 1); part_data->pool = pool; } else if ((part->flags & MESSAGE_PART_FLAG_IS_MIME) == 0) { /* If there was no Mime-Version, forget all the Content-stuff */ - part_data = part->context; + part_data = part->data; envelope = part_data->envelope; i_zero(part_data); @@ -265,13 +265,13 @@ if (!parent_rfc822 && strncasecmp(hdr->name, "Content-", 8) != 0) return; - if (part->context == NULL) { + if (part->data == NULL) { /* initialize message part data */ - part->context = part_data = + part->data = part_data = p_new(pool, struct message_part_data, 1); part_data->pool = pool; } - part_data = part->context; + part_data = part->data; if (strncasecmp(hdr->name, "Content-", 8) == 0) { T_BEGIN { @@ -334,7 +334,7 @@ static void part_write_body_multipart(const struct message_part *part, string_t *str, bool extended) { - struct message_part_data *data = part->context; + struct message_part_data *data = part->data; if (part->children != NULL) imap_bodystructure_write_siblings(part->children, str, extended); @@ -370,7 +370,7 @@ static void part_write_body(const struct message_part *part, string_t *str, bool extended) { - struct message_part_data *data = part->context; + struct message_part_data *data = part->data; bool text; if (part->flags & MESSAGE_PART_FLAG_MESSAGE_RFC822) { @@ -423,7 +423,7 @@ i_assert(part->children != NULL); i_assert(part->children->next == NULL); - child_data = part->children->context; + child_data = part->children->data; str_append(str, " ("); if (child_data->envelope_str != NULL) @@ -450,7 +450,7 @@ bool imap_bodystructure_is_plain_7bit(const struct message_part *part) { - const struct message_part_data *data = part->context; + const struct message_part_data *data = part->data; i_assert(part->parent == NULL); @@ -700,9 +700,9 @@ uoff_t vsize; bool multipart, text, message_rfc822; - i_assert(part->context == NULL); + i_assert(part->data == NULL); - part->context = data = p_new(pool, struct message_part_data, 1); + part->data = data = p_new(pool, struct message_part_data, 1); data->pool = pool; multipart = FALSE; @@ -841,7 +841,7 @@ } str_truncate(tmpstr, 0); imap_write_envelope(list_args, tmpstr); - child_data = part->children->context; + child_data = part->children->data; child_data->envelope_str = p_strdup(pool, str_c(tmpstr)); args += 2;
--- a/src/lib-imap/imap-bodystructure.h Sun Oct 23 13:10:11 2016 +0200 +++ b/src/lib-imap/imap-bodystructure.h Sun Oct 23 13:29:43 2016 +0200 @@ -24,7 +24,7 @@ struct message_part; struct message_header_line; -/* Parse a single header. Note that this modifies part->context. */ +/* Parse a single header. Note that this modifies part->data. */ void imap_bodystructure_parse_header(pool_t pool, struct message_part *part, struct message_header_line *hdr); @@ -33,14 +33,14 @@ bool imap_bodystructure_is_plain_7bit(const struct message_part *part) ATTR_PURE; -/* Write a BODY/BODYSTRUCTURE from given message_part. The - message_part->contexts must contain struct message_part_data. - part->body_size.virtual_size and .lines are also used for writing it. */ +/* Write a BODY/BODYSTRUCTURE from given message_part. The message_part->data + field must be set. part->body_size.virtual_size and .lines are also used + for writing it. */ void imap_bodystructure_write(const struct message_part *part, string_t *dest, bool extended); -/* Parse BODYSTRUCTURE and save the contents to message_part->contexts. - Returns 0 if ok, -1 if bodystructure wasn't valid. */ +/* Parse BODYSTRUCTURE and save the contents to message_part->data for each + message tree node. Returns 0 if ok, -1 if bodystructure wasn't valid. */ int imap_bodystructure_parse(const char *bodystructure, pool_t pool, struct message_part *parts, const char **error_r);
--- a/src/lib-mail/message-part.h Sun Oct 23 13:10:11 2016 +0200 +++ b/src/lib-mail/message-part.h Sun Oct 23 13:29:43 2016 +0200 @@ -3,6 +3,8 @@ #include "message-size.h" +struct message_part_data; + /* Note that these flags are used directly by message-parser-serialize, so existing flags can't be changed without breaking backwards compatibility */ enum message_part_flags { @@ -31,6 +33,8 @@ struct message_size header_size; struct message_size body_size; + struct message_part_data *data; + /* total number of message_parts under children */ unsigned int children_count; enum message_part_flags flags;
--- a/src/lib-storage/index/index-mail.c Sun Oct 23 13:10:11 2016 +0200 +++ b/src/lib-storage/index/index-mail.c Sun Oct 23 13:29:43 2016 +0200 @@ -944,7 +944,7 @@ static struct message_part * index_mail_find_first_text_mime_part(struct message_part *parts) { - struct message_part_data *body_data = parts->context; + struct message_part_data *body_data = parts->data; struct message_part *part; i_assert(body_data != NULL); @@ -966,7 +966,7 @@ for (part = parts->children; part != NULL; part = part->next) { struct message_part_data *sub_body_data = - part->context; + part->data; i_assert(sub_body_data != NULL);