From: Timo Sirainen Date: Sat, 27 Mar 2010 00:39:49 +0000 (+0200) Subject: lib-storage: mail_get_parts() no longer returns const pointer. X-Git-Tag: 2.0.beta5~274 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c0225f7f6b43d34dc58c17d3304f0fd60ab89894;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mail_get_parts() no longer returns const pointer. The struct message_part contained context-pointer and other APIs were using it, so the pointer really couldn't be const without casting it away sometimes. --HG-- branch : HEAD --- diff --git a/src/imap/imap-fetch-body.c b/src/imap/imap-fetch-body.c index bc43887feb..af70876e1c 100644 --- a/src/imap/imap-fetch-body.c +++ b/src/imap/imap-fetch-body.c @@ -496,7 +496,7 @@ fetch_body_header_fields(struct imap_fetch_context *ctx, struct mail *mail, static int part_find(struct mail *mail, const struct imap_fetch_body_data *body, const struct message_part **part_r, const char **section_r) { - const struct message_part *part; + struct message_part *part; const char *path; unsigned int num; diff --git a/src/lib-mail/message-search.c b/src/lib-mail/message-search.c index cf9b05f1f4..93f975e480 100644 --- a/src/lib-mail/message-search.c +++ b/src/lib-mail/message-search.c @@ -209,7 +209,7 @@ void message_search_reset(struct message_search_context *ctx) static int message_search_msg_real(struct message_search_context *ctx, - struct istream *input, const struct message_part *parts) + struct istream *input, struct message_part *parts) { const enum message_header_parser_flags hdr_parser_flags = MESSAGE_HEADER_PARSER_FLAG_CLEAN_ONELINE; @@ -221,8 +221,7 @@ message_search_msg_real(struct message_search_context *ctx, message_search_reset(ctx); if (parts != NULL) { - parser_ctx = message_parser_init_from_parts( - (struct message_part *)parts, + parser_ctx = message_parser_init_from_parts(parts, input, hdr_parser_flags, 0); } else { parser_ctx = message_parser_init(pool_datastack_create(), @@ -250,7 +249,7 @@ message_search_msg_real(struct message_search_context *ctx, } int message_search_msg(struct message_search_context *ctx, - struct istream *input, const struct message_part *parts) + struct istream *input, struct message_part *parts) { int ret; diff --git a/src/lib-mail/message-search.h b/src/lib-mail/message-search.h index 740c4d249a..51584eb37a 100644 --- a/src/lib-mail/message-search.h +++ b/src/lib-mail/message-search.h @@ -27,6 +27,6 @@ void message_search_reset(struct message_search_context *ctx); /* Search a full message. Returns 1 if match was found, 0 if not, -1 if error (if stream_error == 0, the parts contained broken data) */ int message_search_msg(struct message_search_context *ctx, - struct istream *input, const struct message_part *parts); + struct istream *input, struct message_part *parts); #endif diff --git a/src/lib-storage/index/index-mail.c b/src/lib-storage/index/index-mail.c index f521723417..396d0f261d 100644 --- a/src/lib-storage/index/index-mail.c +++ b/src/lib-storage/index/index-mail.c @@ -196,8 +196,7 @@ index_mail_get_keyword_indexes(struct mail *_mail) return &data->keyword_indexes; } -int index_mail_get_parts(struct mail *_mail, - const struct message_part **parts_r) +int index_mail_get_parts(struct mail *_mail, struct message_part **parts_r) { struct index_mail *mail = (struct index_mail *)_mail; struct index_mail_data *data = &mail->data; diff --git a/src/lib-storage/index/index-mail.h b/src/lib-storage/index/index-mail.h index 33bc2e39bc..cbbc59f2a2 100644 --- a/src/lib-storage/index/index-mail.h +++ b/src/lib-storage/index/index-mail.h @@ -182,8 +182,7 @@ uint64_t index_mail_get_modseq(struct mail *_mail); const char *const *index_mail_get_keywords(struct mail *_mail); const ARRAY_TYPE(keyword_indexes) * index_mail_get_keyword_indexes(struct mail *_mail); -int index_mail_get_parts(struct mail *_mail, - const struct message_part **parts_r); +int index_mail_get_parts(struct mail *_mail, struct message_part **parts_r); int index_mail_get_received_date(struct mail *_mail, time_t *date_r); int index_mail_get_save_date(struct mail *_mail, time_t *date_r); int index_mail_get_date(struct mail *_mail, time_t *date_r, int *timezone_r); diff --git a/src/lib-storage/index/index-search.c b/src/lib-storage/index/index-search.c index 797f5a0827..58749ffa6c 100644 --- a/src/lib-storage/index/index-search.c +++ b/src/lib-storage/index/index-search.c @@ -73,7 +73,7 @@ struct search_header_context { struct search_body_context { struct index_search_context *index_ctx; struct istream *input; - const struct message_part *part; + struct message_part *part; }; static const enum message_header_parser_flags hdr_parser_flags = diff --git a/src/lib-storage/mail-storage-private.h b/src/lib-storage/mail-storage-private.h index 8f7c26167e..fb6f3da3ea 100644 --- a/src/lib-storage/mail-storage-private.h +++ b/src/lib-storage/mail-storage-private.h @@ -281,7 +281,7 @@ struct mail_vfuncs { uint64_t (*get_modseq)(struct mail *mail); int (*get_parts)(struct mail *mail, - const struct message_part **parts_r); + struct message_part **parts_r); int (*get_date)(struct mail *mail, time_t *date_r, int *timezone_r); int (*get_received_date)(struct mail *mail, time_t *date_r); int (*get_save_date)(struct mail *mail, time_t *date_r); diff --git a/src/lib-storage/mail-storage.h b/src/lib-storage/mail-storage.h index dbc14b5eb3..5fc07f7015 100644 --- a/src/lib-storage/mail-storage.h +++ b/src/lib-storage/mail-storage.h @@ -614,7 +614,7 @@ const ARRAY_TYPE(keyword_indexes) *mail_get_keyword_indexes(struct mail *mail); uint64_t mail_get_modseq(struct mail *mail); /* Returns message's MIME parts */ -int mail_get_parts(struct mail *mail, const struct message_part **parts_r); +int mail_get_parts(struct mail *mail, struct message_part **parts_r); /* Get the Date-header of the mail. Timezone is in minutes. date=0 if it wasn't found or it was invalid. */ diff --git a/src/lib-storage/mail.c b/src/lib-storage/mail.c index 05e02a970d..dbe9b64f31 100644 --- a/src/lib-storage/mail.c +++ b/src/lib-storage/mail.c @@ -68,7 +68,7 @@ const ARRAY_TYPE(keyword_indexes) *mail_get_keyword_indexes(struct mail *mail) return p->v.get_keyword_indexes(mail); } -int mail_get_parts(struct mail *mail, const struct message_part **parts_r) +int mail_get_parts(struct mail *mail, struct message_part **parts_r) { struct mail_private *p = (struct mail_private *)mail; diff --git a/src/lib-storage/test-mail.c b/src/lib-storage/test-mail.c index 705141d83b..40d8e13547 100644 --- a/src/lib-storage/test-mail.c +++ b/src/lib-storage/test-mail.c @@ -82,7 +82,7 @@ static uint64_t test_mail_get_modseq(struct mail *mail ATTR_UNUSED) static int test_mail_get_parts(struct mail *mail ATTR_UNUSED, - const struct message_part **parts_r ATTR_UNUSED) + struct message_part **parts_r ATTR_UNUSED) { return -1; } diff --git a/src/plugins/virtual/virtual-mail.c b/src/plugins/virtual/virtual-mail.c index 937bb83a30..e834cfef5d 100644 --- a/src/plugins/virtual/virtual-mail.c +++ b/src/plugins/virtual/virtual-mail.c @@ -172,7 +172,7 @@ static int virtual_mail_handle_lost(struct virtual_mail *vmail) } static int -virtual_mail_get_parts(struct mail *mail, const struct message_part **parts_r) +virtual_mail_get_parts(struct mail *mail, struct message_part **parts_r) { struct virtual_mail *vmail = (struct virtual_mail *)mail;