[geary] Require GMime 2.6.17 so we can remove the workaround for Bug 713161.



commit 1456b0516f18aa03796da74bd3e78973f540af5a
Author: Michael James Gratton <mike vee net>
Date:   Fri Apr 29 23:14:17 2016 +1000

    Require GMime 2.6.17 so we can remove the workaround for Bug 713161.

 src/CMakeLists.txt                    |    2 +-
 src/engine/rfc822/rfc822-message.vala |   18 +++++-------------
 2 files changed, 6 insertions(+), 14 deletions(-)
---
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 124cd18..5f3c880 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -549,7 +549,7 @@ pkg_check_modules(DEPS REQUIRED
     libnotify>=0.7.5
     libcanberra>=0.28
     sqlite3>=3.7.4
-    gmime-2.6>=2.6.14
+    gmime-2.6>=2.6.17
     libsecret-1>=0.11
     libxml-2.0>=2.7.8
     gcr-3>=3.10.1
diff --git a/src/engine/rfc822/rfc822-message.vala b/src/engine/rfc822/rfc822-message.vala
index 58491c0..26a7525 100644
--- a/src/engine/rfc822/rfc822-message.vala
+++ b/src/engine/rfc822/rfc822-message.vala
@@ -69,19 +69,11 @@ public class Geary.RFC822.Message : BaseObject {
     }
     
     public Message.from_parts(Header header, Text body) throws RFC822Error {
-        // Had some problems with GMime not parsing a message when using a StreamCat, so
-        // manually copy them into a single buffer and decode that way; see
-        // http://redmine.yorba.org/issues/7034
-        // and
-        // https://bugzilla.gnome.org/show_bug.cgi?id=701572
-        //
-        // TODO: When fixed in GMime, return to original behavior of streaming each buffer in
-        uint8[] buffer = new uint8[header.buffer.size + body.buffer.size];
-        uint8* ptr = buffer;
-        GLib.Memory.copy(ptr, header.buffer.get_bytes().get_data(), header.buffer.size);
-        GLib.Memory.copy(ptr + header.buffer.size, body.buffer.get_bytes().get_data(), body.buffer.size);
-        
-        GMime.Parser parser = new GMime.Parser.with_stream(new GMime.StreamMem.with_buffer(buffer));
+        GMime.StreamCat stream_cat = new GMime.StreamCat();
+        stream_cat.add_source(new GMime.StreamMem.with_buffer(header.buffer.get_bytes().get_data()));
+        stream_cat.add_source(new GMime.StreamMem.with_buffer(body.buffer.get_bytes().get_data()));
+
+        GMime.Parser parser = new GMime.Parser.with_stream(stream_cat);
         message = parser.construct_message();
         if (message == null)
             throw new RFC822Error.INVALID("Unable to parse RFC 822 message");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]