diff options
Diffstat (limited to 'mail/dbmail/files/patch-0031-boundaries-fixups-ordering-of-parts-do-not-add-newline-on-')
-rw-r--r-- | mail/dbmail/files/patch-0031-boundaries-fixups-ordering-of-parts-do-not-add-newline-on- | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/mail/dbmail/files/patch-0031-boundaries-fixups-ordering-of-parts-do-not-add-newline-on- b/mail/dbmail/files/patch-0031-boundaries-fixups-ordering-of-parts-do-not-add-newline-on- deleted file mode 100644 index d2f2f6bf163b..000000000000 --- a/mail/dbmail/files/patch-0031-boundaries-fixups-ordering-of-parts-do-not-add-newline-on- +++ /dev/null @@ -1,180 +0,0 @@ -From 3fd6782988f01c2f56af19012e470ea16e800f51 Mon Sep 17 00:00:00 2001 -From: Michele Comitini <michele.comitini@gmail.com> -Date: Tue, 1 Nov 2016 21:20:16 +0100 -Subject: [PATCH 31/33] boundaries fixups: ordering of parts, do not add - newline on boundary if there's no part after previous header (#34) - -* Fix IMAP mailbox maintanence - -Update message's mailbox id in a separate explicit transaction to prevent -SQLException: ORA-01453 error on the next db_begin_transaction() call -(see db_mailbox_seq_update() next to 'UPDATE dbmail_messages SET mailbox_idnr' -query). - -* add newline only if is_message - -* better fix for rfc822 multipart messages with boundary after header - -* fixed some race condition when closing boundaries, since key does not change. Needed ordering parts on depth DESC when key does not vary. - -* fixes ordering in insertion ---- - src/dm_message.c | 12 ++++--- - test/check_dbmail.h | 78 ++++++++++++++++++++++++++++++++++++++++++++- - test/check_dbmail_message.c | 8 +++++ - 3 files changed, 93 insertions(+), 5 deletions(-) - -diff --git src/dm_message.c src/dm_message.c -index 9d30d52..784c091 100644 ---- src/dm_message.c -+++ src/dm_message.c -@@ -387,7 +387,7 @@ static DbmailMessage * _mime_retrieve(DbmailMessage *self) - "FROM %smimeparts p " - "JOIN %spartlists l ON p.id = l.part_id " - "JOIN %sphysmessage ph ON ph.id = l.physmessage_id " -- "WHERE l.physmessage_id = ? ORDER BY l.part_key,l.part_order ASC", -+ "WHERE l.physmessage_id = ? ORDER BY l.part_key, l.part_order ASC, l.part_depth DESC", - frag, p_string_str(n), DBPFX, DBPFX, DBPFX); - db_stmt_set_u64(stmt, 1, self->id); - r = db_stmt_query(stmt); -@@ -454,10 +454,14 @@ static DbmailMessage * _mime_retrieve(DbmailMessage *self) - if ((depth > 0) && (blist[depth-1][0])) - strncpy(boundary, blist[depth-1], MAX_MIME_BLEN-1); - -- if (is_header && (!prev_header || prev_boundary || (prev_header && depth>0 && !prev_is_message))) { -+ if (is_header) -+ if (prev_header && depth>0 && !prev_is_message) { -+ dprint("--%s\n", boundary); -+ p_string_append_printf(m, "--%s\n", boundary); -+ } else if (!prev_header || prev_boundary) { - dprint("\n--%s\n", boundary); - p_string_append_printf(m, "\n--%s\n", boundary); -- } -+ } - - p_string_append_printf(m, "%s", str); - dprint("<part is_header=\"%d\" depth=\"%d\" key=\"%d\" order=\"%d\">\n%s\n</part>\n", -@@ -558,7 +562,7 @@ static gboolean store_mime_multipart(GMimeObject *object, DbmailMessage *m, cons - if (boundary) { - n++; - m->part_depth--; -- m->part_order=n; -+ m->part_order++; - } - - if (g_mime_content_type_is_type(GMIME_CONTENT_TYPE(content_type), "multipart", "*") && -diff --git test/check_dbmail.h test/check_dbmail.h -index 09c9958..439c8a1 100644 ---- test/check_dbmail.h -+++ test/check_dbmail.h -@@ -1561,7 +1561,7 @@ char *multipart_message8 = "From: nobody@example.org\n" - "bmdzLnhtbFBLAQItABQABgAIAAAAIQDv0+Pp+gEAAPsDAAAQAAAAAAAAAAAAAAAAALREAABkb2NQ\n" - "cm9wcy9hcHAueG1sUEsFBgAAAAAPAA8A3AMAAORHAAAAAA==\n" - "\n" -- "--_004_AAD42BB12C540843AB5C952ADD4D978901830A1Bswi52mbx1orfloc_--\";\n"; -+ "--_004_AAD42BB12C540843AB5C952ADD4D978901830A1Bswi52mbx1orfloc_--\n"; - - char *multipart_message9 = "From: a\n" - "To: b\n" -@@ -28440,3 +28440,79 @@ char *multipart_message_big = "From: \"Gennadiy Poryev\" <vecanoi@gmail.com>\n" - "/g8HAAAAAwANNP0/pQ4DAA80/T+lDvA8\n" - "\n" - "------=_NextPart_000_0000_01CDFBC6.932A1F00--\n"; -+ -+char *multipart_message_submessage = "Content-Type: multipart/mixed; boundary=\"===============9147350442359610775==\"\n" -+"MIME-Version: 1.0\n" -+"To: test@test.it\n" -+"From: test@test.it\n" -+"\n" -+"--===============9147350442359610775==\n" -+"Content-Type: message/rfc822\n" -+"MIME-Version: 1.0\n" -+"\n" -+"Content-Type: multipart/alternative;\n" -+" boundary=\"===============1150329730008994878==\"\n" -+"MIME-Version: 1.0\n" -+"Subject: Link\n" -+"From: my@email.com\n" -+"To: your@email.com\n" -+"\n" -+"--===============1150329730008994878==\n" -+"Content-Type: text/plain; charset=\"us-ascii\"\n" -+"MIME-Version: 1.0\n" -+"Content-Transfer-Encoding: 7bit\n" -+"\n" -+"Hi!\n" -+"How are you?\n" -+"Here is the link you wanted:\n" -+"https://www.python.org\n" -+"--===============1150329730008994878==\n" -+"Content-Type: text/html; charset=\"us-ascii\"\n" -+"MIME-Version: 1.0\n" -+"Content-Transfer-Encoding: 7bit\n" -+"\n" -+"<html>\n" -+" <head></head>\n" -+" <body>\n" -+" <p>Hi!<br>\n" -+" How are you?<br>\n" -+" Here is the <a href=\"https://www.python.org\">link</a> you wanted.\n" -+" </p>\n" -+" </body>\n" -+"</html>\n" -+"\n" -+"--===============1150329730008994878==\n" -+"Content-Type: multipart/mixed; boundary=\"===============0782181963306111896==\"\n" -+"MIME-Version: 1.0\n" -+"\n" -+"--===============0782181963306111896==\n" -+"Content-Type: text/plain; charset=\"us-ascii\"\n" -+"MIME-Version: 1.0\n" -+"Content-Transfer-Encoding: 7bit\n" -+"\n" -+"Text part3_1.\n" -+"--===============0782181963306111896==\n" -+"Content-Type: text/plain; charset=\"us-ascii\"\n" -+"MIME-Version: 1.0\n" -+"Content-Transfer-Encoding: 7bit\n" -+"\n" -+"Text part3_2.\n" -+"--===============0782181963306111896==--\n" -+"\n" -+"\n" -+"\n" -+"\n" -+"--===============1150329730008994878==--\n" -+"\n" -+"--===============9147350442359610775==\n" -+"Content-Type: text/plain; charset=\"us-ascii\"\n" -+"MIME-Version: 1.0\n" -+"Content-Transfer-Encoding: 7bit\n" -+"\n" -+"This is a simple text attachment.\n" -+"with some newlines at the end.\n" -+"\n" -+"\n" -+"\n" -+"--===============9147350442359610775==--\n" -+"\n"; -diff --git test/check_dbmail_message.c test/check_dbmail_message.c -index e36a2ea..f070257 100644 ---- test/check_dbmail_message.c -+++ test/check_dbmail_message.c -@@ -431,6 +431,14 @@ START_TEST(test_dbmail_message_store) - COMPARE(e,t); - g_free(e); - g_free(t); -+ //----------------------------------------- -+ m = message_init(multipart_message_submessage); -+ e = dbmail_message_to_string(m); -+ t = store_and_retrieve(m); -+ COMPARE(e,t); -+ COMPARE(multipart_message_submessage, t); -+ g_free(e); -+ g_free(t); - } - END_TEST - --- -2.10.1 (Apple Git-78) - |