Changeset 1354
- Timestamp:
- 12/26/06 20:46:39
- Files:
-
- trunk/libtinymail-camel/tny-camel-mime-part.c (modified) (6 diffs)
- trunk/libtinymail-camel/tny-camel-msg.c (modified) (2 diffs)
- trunk/tests/functional/msg-sender.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libtinymail-camel/tny-camel-mime-part.c
r1341 r1354 131 131 CamelMedium *medium; 132 132 CamelDataWrapper *containee; 133 CamelMultipart *body; 133 134 gint curl = 0, retval = 0; 134 135 CamelMimePart *cpart; … … 148 149 if (G_UNLIKELY (!containee) || G_LIKELY (!CAMEL_IS_MULTIPART (containee))) 149 150 { 150 /* TODO: restore original mime part? */ 151 if (G_LIKELY (containee)) 151 if (containee) 152 152 camel_object_unref (CAMEL_OBJECT (containee)); 153 153 154 154 curl = 0; 155 156 containee = (CamelDataWrapper*)camel_multipart_new (); 157 camel_multipart_set_boundary ((CamelMultipart*)containee, NULL); 158 camel_medium_set_content_object (medium, containee); 159 } 155 body = camel_multipart_new (); 156 camel_data_wrapper_set_mime_type (CAMEL_DATA_WRAPPER (body), 157 "multipart/alternative"); 158 camel_multipart_set_boundary (body, NULL); 159 camel_medium_set_content_object (medium, CAMEL_DATA_WRAPPER (body)); 160 } else 161 body = CAMEL_MULTIPART (containee); 160 162 161 163 cpart = tny_camel_mime_part_get_part (TNY_CAMEL_MIME_PART (part)); 162 camel_multipart_add_part ( (CamelMultipart*)containee, cpart);164 camel_multipart_add_part (body, cpart); 163 165 camel_object_unref (CAMEL_OBJECT (cpart)); 164 166 165 retval = camel_multipart_get_number ((CamelMultipart*)containee); 166 167 /* Warning: large lock that locks code, not data */ 167 retval = camel_multipart_get_number (body); 168 168 169 g_mutex_unlock (priv->part_lock); 169 170 … … 197 198 containee = camel_medium_get_content_object (CAMEL_MEDIUM (priv->part)); 198 199 199 cpart = tny_camel_mime_part_get_part (TNY_CAMEL_MIME_PART (part)); 200 camel_multipart_remove_part (CAMEL_MULTIPART (containee), cpart); 201 camel_object_unref (CAMEL_OBJECT (cpart)); 202 203 /* Warning: large lock that locks code, not data */ 200 if (containee && CAMEL_IS_MULTIPART (containee)) 201 { 202 cpart = tny_camel_mime_part_get_part (TNY_CAMEL_MIME_PART (part)); 203 camel_multipart_remove_part (CAMEL_MULTIPART (containee), cpart); 204 camel_object_unref (CAMEL_OBJECT (cpart)); 205 } 206 204 207 g_mutex_unlock (priv->part_lock); 205 208 … … 384 387 385 388 camel_object_unref (CAMEL_OBJECT (cstream)); 386 387 /* We are done, so unreference the reference above */388 389 camel_object_unref (CAMEL_OBJECT (medium)); 389 390 … … 427 428 428 429 camel_object_unref (CAMEL_OBJECT (cstream)); 429 430 430 camel_object_unref (CAMEL_OBJECT (medium)); 431 431 … … 751 751 TnyCamelMimePartPriv *priv = TNY_CAMEL_MIME_PART_GET_PRIVATE (self); 752 752 753 g_assert (CAMEL_IS_MEDIUM (priv->part)); 754 753 755 g_mutex_lock (priv->part_lock); 754 756 755 757 camel_mime_part_set_content_type (priv->part, content_type); 758 756 759 if (G_UNLIKELY (priv->cached_content_type)) 757 760 g_free (priv->cached_content_type); trunk/libtinymail-camel/tny-camel-msg.c
r1349 r1354 48 48 (G_TYPE_INSTANCE_GET_PRIVATE ((o), TNY_TYPE_CAMEL_MSG, TnyCamelMsgPriv)) 49 49 50 /* 51 new = ppriv->part 52 camel_medium_add_header (CAMEL_MEDIUM (new), "Disposition-Notification-To", mdn_address); 53 camel_medium_add_header (CAMEL_MEDIUM (new), "X-Priority", "1"); 54 */ 50 55 51 56 CamelMimeMessage* … … 223 228 224 229 230 225 231 static void 226 232 tny_camel_msg_finalize (GObject *object) trunk/tests/functional/msg-sender.c
r1353 r1354 68 68 69 69 #define TEST_STRING "This is a test E-mail" 70 #define HTML_PRE "<html><body><b>" 71 #define HTML_POST "</b></body></html>" 70 72 71 73 static TnyMsg* … … 73 75 { 74 76 TnyMsg *retval = tny_platform_factory_new_msg (platfact); 75 TnyStream *stream = tny_camel_mem_stream_new ();76 77 TnyHeader *header = tny_platform_factory_new_header (platfact); 78 79 TnyStream *plain_stream = tny_camel_mem_stream_new (); 80 TnyStream *html_stream = tny_camel_mem_stream_new (); 81 TnyMimePart *plain_body = tny_platform_factory_new_mime_part (platfact); 82 TnyMimePart *html_body = tny_platform_factory_new_mime_part (platfact); 77 83 78 84 tny_header_set_subject (header, TEST_STRING); … … 81 87 82 88 tny_msg_set_header (retval, header); 89 g_object_unref (G_OBJECT (header)); 83 90 84 tny_stream_write ( stream, TEST_STRING, strlen (TEST_STRING));85 tny_stream_reset ( stream);91 tny_stream_write (plain_stream, TEST_STRING, strlen (TEST_STRING)); 92 tny_stream_reset (plain_stream); 86 93 87 tny_mime_part_construct_from_stream (TNY_MIME_PART (retval), stream, "text/plain"); 94 tny_stream_write (html_stream, HTML_PRE TEST_STRING HTML_POST, 95 strlen (HTML_PRE TEST_STRING HTML_POST)); 96 tny_stream_reset (html_stream); 88 97 89 g_object_unref (G_OBJECT (stream)); 98 tny_mime_part_construct_from_stream (plain_body, plain_stream, "text/plain; charset=utf-8"); 99 tny_mime_part_construct_from_stream (html_body, html_stream, "text/html; charset=utf-8"); 100 101 tny_mime_part_add_part (TNY_MIME_PART (retval), html_body); 102 tny_mime_part_add_part (TNY_MIME_PART (retval), plain_body); 103 104 g_object_unref (G_OBJECT (plain_stream)); 105 g_object_unref (G_OBJECT (html_stream)); 106 107 g_object_unref (G_OBJECT (plain_body)); 108 g_object_unref (G_OBJECT (html_body)); 90 109 91 110 return retval;
