[evolution-ews/gnome-3-10] Bug #719376 - Filter by mailing list doesn't work
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews/gnome-3-10] Bug #719376 - Filter by mailing list doesn't work
- Date: Tue, 26 Nov 2013 20:14:41 +0000 (UTC)
commit f56d4c52f15f0906fc3604943ae7ef2f9b3b4cc7
Author: Milan Crha <mcrha redhat com>
Date: Tue Nov 26 21:12:10 2013 +0100
Bug #719376 - Filter by mailing list doesn't work
src/camel/camel-ews-folder.c | 3 ++-
src/camel/camel-ews-utils.c | 32 +++++++++++++++++++++++++++++---
2 files changed, 31 insertions(+), 4 deletions(-)
---
diff --git a/src/camel/camel-ews-folder.c b/src/camel/camel-ews-folder.c
index e00fc59..add11d8 100644
--- a/src/camel/camel-ews-folder.c
+++ b/src/camel/camel-ews-folder.c
@@ -65,7 +65,8 @@ which needs to be better organized via functions */
#define SUMMARY_FOLLOWUP_FLAGS " mapi:int:0x1090" /* PidTagFlagStatus */ \
" mapi:time:0x1091" /* PidTagFlagCompleteTime */ \
" mapi:dist:string:Common:0x8530" /* PidLidFlagRequest */ \
- " mapi:dist:time:Task:0x8105" /* PidLidTaskDueDate */
+ " mapi:dist:time:Task:0x8105" /* PidLidTaskDueDate */ \
+ " mapi:string:0x007D" /* PidTagTransportMessageHeaders */
#define SUMMARY_ITEM_FLAGS "item:ResponseObjects item:Sensitivity item:Importance item:Categories"
SUMMARY_FOLLOWUP_FLAGS
#define ITEM_PROPS "item:Subject item:DateTimeReceived item:DateTimeSent item:DateTimeCreated item:Size " \
diff --git a/src/camel/camel-ews-utils.c b/src/camel/camel-ews-utils.c
index ee68dc3..f656da6 100644
--- a/src/camel/camel-ews-utils.c
+++ b/src/camel/camel-ews-utils.c
@@ -793,7 +793,8 @@ camel_ews_utils_sync_created_items (CamelEwsFolder *ews_folder,
const EwsMailbox *from;
EEwsItemType item_type;
const GSList *to, *cc;
- gboolean has_attachments;
+ const gchar *msg_headers;
+ gboolean has_attachments, found_property;
guint32 server_flags;
if (!item)
@@ -813,8 +814,33 @@ camel_ews_utils_sync_created_items (CamelEwsFolder *ews_folder,
continue;
}
- mi = (CamelEwsMessageInfo *)
- camel_message_info_new (folder->summary);
+
+ /* PidTagTransportMessageHeaders */
+ found_property = FALSE;
+ msg_headers = e_ews_item_get_extended_property_as_string (item, NULL, 0x007D,
&found_property);
+ if (!found_property)
+ msg_headers = NULL;
+
+ if (msg_headers && *msg_headers) {
+ CamelMimePart *part = camel_mime_part_new ();
+ CamelStream *stream;
+ CamelMimeParser *parser;
+
+ stream = camel_stream_mem_new_with_buffer (msg_headers, strlen (msg_headers));
+ parser = camel_mime_parser_new ();
+ camel_mime_parser_init_with_stream (parser, stream, NULL);
+ camel_mime_parser_scan_from (parser, FALSE);
+ g_object_unref (stream);
+
+ if (camel_mime_part_construct_from_parser_sync (part, parser, NULL, NULL))
+ mi = (CamelEwsMessageInfo *) camel_folder_summary_info_new_from_header
(folder->summary, part->headers);
+
+ g_object_unref (parser);
+ g_object_unref (part);
+ }
+
+ if (!mi)
+ mi = (CamelEwsMessageInfo *) camel_message_info_new (folder->summary);
if (mi->info.content == NULL) {
mi->info.content =
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]