From 1b696fec7f49bac74192ca0baf4efa584bd0b7f3 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 26 Oct 2011 15:00:53 +0000 Subject: [PATCH] Monotone-Parent: 7fda497b476e41fe9d5324a0c31127a0e9777847 Monotone-Revision: 8bcefff481572fc23caa92d92861c18902d781bd Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-10-26T15:00:53 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 5 +++++ OpenChange/MAPIStoreFolder.h | 3 --- OpenChange/MAPIStoreFolder.m | 4 ---- OpenChange/MAPIStoreSOGo.m | 36 +++++++++++++++++++++++++++++++++--- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index e8954ac1a..a57b27d27 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-10-26 Wolfgang Sourdeau + + * OpenChange/MAPIStoreSOGo.m (sogo_message_create_attachment): + implemented new backend method. + 2011-10-25 Wolfgang Sourdeau * OpenChange/EOQualifier+MAPIFS.[hm]: now evaluates diff --git a/OpenChange/MAPIStoreFolder.h b/OpenChange/MAPIStoreFolder.h index 899c75086..57a63b499 100644 --- a/OpenChange/MAPIStoreFolder.h +++ b/OpenChange/MAPIStoreFolder.h @@ -54,8 +54,6 @@ NSArray *faiMessageKeys; NSArray *folderKeys; - NSDictionary *properties; - SOGoMAPIFSFolder *faiFolder; SOGoMAPIFSFolder *propsFolder; SOGoMAPIFSMessage *propsMessage; @@ -114,7 +112,6 @@ - (int) openMessage: (MAPIStoreMessage **) messagePtr - andMessageData: (struct mapistore_message **) dataPtr withMID: (uint64_t) mid inMemCtx: (TALLOC_CTX *) memCtx; - (int) deleteMessageWithMID: (uint64_t) mid diff --git a/OpenChange/MAPIStoreFolder.m b/OpenChange/MAPIStoreFolder.m index a463e649d..3bfc66a88 100644 --- a/OpenChange/MAPIStoreFolder.m +++ b/OpenChange/MAPIStoreFolder.m @@ -399,7 +399,6 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe } - (int) openMessage: (MAPIStoreMessage **) messagePtr - andMessageData: (struct mapistore_message **) dataPtr withMID: (uint64_t) mid inMemCtx: (TALLOC_CTX *) memCtx; { @@ -415,7 +414,6 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe message = [self lookupMessageByURL: messageURL]; if (message) { - [message getMessageData: dataPtr inMemCtx: memCtx]; *messagePtr = message; rc = MAPISTORE_SUCCESS; } @@ -567,7 +565,6 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe { int rc; MAPIStoreMessage *sourceMsg, *destMsg; - struct mapistore_message *sourceMSMsg; TALLOC_CTX *memCtx; struct SPropTagArray *availableProps; bool *exclusions; @@ -579,7 +576,6 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe memCtx = talloc_zero (NULL, TALLOC_CTX); rc = [sourceFolder openMessage: &sourceMsg - andMessageData: &sourceMSMsg withMID: srcMid inMemCtx: memCtx]; if (rc != MAPISTORE_SUCCESS) diff --git a/OpenChange/MAPIStoreSOGo.m b/OpenChange/MAPIStoreSOGo.m index f8ae76660..223e5f519 100644 --- a/OpenChange/MAPIStoreSOGo.m +++ b/OpenChange/MAPIStoreSOGo.m @@ -359,8 +359,7 @@ static int sogo_folder_open_message(void *folder_object, TALLOC_CTX *mem_ctx, uint64_t mid, - void **message_object, - struct mapistore_message **msgp) + void **message_object) { struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; @@ -375,7 +374,7 @@ sogo_folder_open_message(void *folder_object, wrapper = folder_object; folder = wrapper->MAPIStoreSOGoObject; pool = [NSAutoreleasePool new]; - rc = [folder openMessage: &message andMessageData: msgp withMID: mid inMemCtx: mem_ctx]; + rc = [folder openMessage: &message withMID: mid inMemCtx: mem_ctx]; if (rc == MAPISTORE_SUCCESS) *message_object = [message tallocWrapper: mem_ctx]; [pool release]; @@ -555,6 +554,36 @@ sogo_folder_open_table(void *folder_object, TALLOC_CTX *mem_ctx, return rc; } +static int +sogo_message_get_message_data(void *message_object, + TALLOC_CTX *mem_ctx, + struct mapistore_message **msg_dataP) +{ + struct MAPIStoreTallocWrapper *wrapper; + NSAutoreleasePool *pool; + MAPIStoreMessage *message; + int rc; + + DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__)); + + if (message_object) + { + wrapper = message_object; + message = wrapper->MAPIStoreSOGoObject; + pool = [NSAutoreleasePool new]; + [message getMessageData: msg_dataP + inMemCtx: mem_ctx]; + [pool release]; + rc = MAPISTORE_SUCCESS; + } + else + { + rc = sogo_backend_unexpected_error(); + } + + return rc; +} + static int sogo_message_create_attachment (void *message_object, TALLOC_CTX *mem_ctx, void **attachment_object, uint32_t *aidp) { @@ -1137,6 +1166,7 @@ int mapistore_init_backend(void) backend.message.get_attachment_table = sogo_message_get_attachment_table; backend.message.open_attachment = sogo_message_open_attachment; backend.message.open_embedded_message = sogo_message_attachment_open_embedded_message; + backend.message.get_message_data = sogo_message_get_message_data; backend.message.modify_recipients = sogo_message_modify_recipients; backend.message.save = sogo_message_save; backend.message.submit = sogo_message_submit;