[geary] Require GMime 2.6.17 so we can remove the workaround for Bug 713161.
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary] Require GMime 2.6.17 so we can remove the workaround for Bug 713161.
- Date: Sat, 21 May 2016 02:49:54 +0000 (UTC)
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]