diff options
author | Milan Crha <mcrha@redhat.com> | 2009-07-30 17:31:14 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-08-11 04:32:02 +0800 |
commit | 854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa (patch) | |
tree | 992e7f99e752c8128952b532dffd455b2e4a2a66 /calendar/gui/dialogs | |
parent | aa8a700dd924a83e1dcd8eb374df777fb0a83b66 (diff) | |
download | gsoc2013-evolution-854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa.tar gsoc2013-evolution-854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa.tar.gz gsoc2013-evolution-854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa.tar.bz2 gsoc2013-evolution-854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa.tar.lz gsoc2013-evolution-854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa.tar.xz gsoc2013-evolution-854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa.tar.zst gsoc2013-evolution-854c2cd5c84a7c6a38ecf2fc86efb6e474aa32fa.zip |
Bug #273535 - Meeting request with attachments has bogus CID value
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index 7aa242f18e..6f74f73248 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -2618,19 +2618,24 @@ real_send_comp (CompEditor *editor, ECalComponentItipMethod method, gboolean str } } else { /* Clone the component with attachments set to CID:... */ - gint num_attachments, i; GSList *attach_list = NULL; - GSList *mime_attach_list; + GSList *mime_attach_list, *attach; - num_attachments = e_cal_component_get_num_attachments (send_comp); + /* mime_attach_list is freed by itip_send_comp */ + mime_attach_list = comp_editor_get_mime_attach_list (editor); + + for (attach = mime_attach_list; attach; attach = attach->next) { + struct CalMimeAttach *cma = (struct CalMimeAttach *) attach->data; - for (i = 0; i < num_attachments; i++) { - attach_list = g_slist_append (attach_list, g_strdup ("CID:...")); + attach_list = g_slist_append (attach_list, cma->content_id); + } + + if (attach_list) { + e_cal_component_set_attachment_list (send_comp, attach_list); + + g_slist_free (attach_list); } - e_cal_component_set_attachment_list (send_comp, attach_list); - /* mime_attach_list is freed by itip_send_comp */ - mime_attach_list = comp_editor_get_mime_attach_list (editor); if (itip_send_comp (method, send_comp, priv->client, NULL, mime_attach_list, users, strip_alarms)) { gboolean saved = save_comp (editor); @@ -2835,6 +2840,8 @@ comp_editor_get_mime_attach_list (CompEditor *editor) camel_data_wrapper_decode_to_stream (wrapper, (CamelStream *) mstream); buffer = g_memdup (mstream->buffer->data, mstream->buffer->len); + camel_mime_part_set_content_id (mime_part, NULL); + cal_mime_attach->encoded_data = (gchar *)buffer; cal_mime_attach->length = mstream->buffer->len; cal_mime_attach->filename = g_strdup (camel_mime_part_get_filename (mime_part)); @@ -2843,6 +2850,7 @@ comp_editor_get_mime_attach_list (CompEditor *editor) desc = _("attachment"); cal_mime_attach->description = g_strdup (desc); cal_mime_attach->content_type = g_strdup (camel_data_wrapper_get_mime_type (wrapper)); + cal_mime_attach->content_id = g_strdup (camel_mime_part_get_content_id (mime_part)); disp = camel_mime_part_get_disposition (mime_part); if (disp && !g_ascii_strcasecmp(disp, "inline")) |