Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4265:75d5843153f1 HEAD
Added message_part to struct message_block and some cleanups.
author | Timo Sirainen <timo.sirainen@movial.fi> |
---|---|
date | Tue, 09 May 2006 12:37:40 +0300 |
parents | b3fa08c14747 |
children | 662578b5ae22 |
files | src/lib-mail/message-parser.c src/lib-mail/message-parser.h |
diffstat | 2 files changed, 14 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/message-parser.c Tue May 09 12:36:58 2006 +0300 +++ b/src/lib-mail/message-parser.c Tue May 09 12:37:40 2006 +0300 @@ -242,15 +242,8 @@ /* get back to parent MIME part, summing the child MIME part sizes into parent's body sizes */ while (boundary->part != ctx->part) { - ctx->part->parent->body_size.physical_size += - ctx->part->header_size.physical_size + - ctx->part->body_size.physical_size; - ctx->part->parent->body_size.virtual_size += - ctx->part->header_size.virtual_size + - ctx->part->body_size.virtual_size; - ctx->part->parent->body_size.lines += - ctx->part->header_size.lines + - ctx->part->body_size.lines; + message_size_add(&ctx->part->parent->body_size, + &ctx->part->body_size); ctx->part = ctx->part->parent; } @@ -542,29 +535,27 @@ int ret; bool eof = FALSE; + block_r->part = ctx->part; + while ((ret = ctx->parse_next_block(ctx, block_r)) == 0) { if ((ret = i_stream_read(ctx->input)) == 0) break; if (ret < 0) { + if (ret == -2) + ret = 0; if (eof) break; eof = TRUE; } else { eof = FALSE; } + block_r->part = ctx->part; } if (ret < 0) { while (ctx->part->parent != NULL) { - ctx->part->parent->body_size.physical_size += - ctx->part->header_size.physical_size + - ctx->part->body_size.physical_size; - ctx->part->parent->body_size.virtual_size += - ctx->part->header_size.virtual_size + - ctx->part->body_size.virtual_size; - ctx->part->parent->body_size.lines += - ctx->part->header_size.lines + - ctx->part->body_size.lines; + message_size_add(&ctx->part->parent->body_size, + &ctx->part->body_size); ctx->part = ctx->part->parent; } } @@ -581,7 +572,7 @@ int ret; while ((ret = message_parser_parse_next_block(ctx, &block)) > 0) { - callback(ctx->part, block.hdr, context); + callback(block.part, block.hdr, context); if (block.hdr == NULL) break; @@ -605,7 +596,7 @@ while ((ret = message_parser_parse_next_block(ctx, &block)) > 0) { if (block.size == 0 && hdr_callback != NULL) - hdr_callback(ctx->part, block.hdr, context); + hdr_callback(block.part, block.hdr, context); } i_assert(ret != 0); }
--- a/src/lib-mail/message-parser.h Tue May 09 12:36:58 2006 +0300 +++ b/src/lib-mail/message-parser.h Tue May 09 12:37:40 2006 +0300 @@ -38,6 +38,9 @@ struct message_parser_ctx; struct message_block { + /* Message part this block belongs to */ + struct message_part *part; + /* non-NULL if a header line was read */ struct message_header_line *hdr;