From a783d81528b67a1dcbdc2f19ed065684308b7a6d Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 29 Jun 2012 19:09:02 +0000 Subject: [PATCH] Monotone-Parent: 905276f295d6f28a6946297f6a7af9ad60f71842 Monotone-Revision: 4ecb95aab8f686702ff3eb186a97b1bf1f3b5531 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-06-29T19:09:02 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 4 ++++ OpenChange/MAPIStoreAttachment.h | 1 + OpenChange/MAPIStoreAttachment.m | 23 ++++++++++++++--------- OpenChange/MAPIStoreSOGo.m | 6 +++--- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index a2d6e0ffe..440ab3de1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2012-06-29 Wolfgang Sourdeau + * OpenChange/MAPIStoreSOGo.m + (sogo_message_attachment_open_embedded_message): added the "mode" + parameter. + * OpenChange/SOGoMAPIDBObject.m: new class module that replaced SOGoMAPIFSMessage. diff --git a/OpenChange/MAPIStoreAttachment.h b/OpenChange/MAPIStoreAttachment.h index f9716f7e7..1d4576572 100644 --- a/OpenChange/MAPIStoreAttachment.h +++ b/OpenChange/MAPIStoreAttachment.h @@ -37,6 +37,7 @@ - (uint32_t) AID; - (int) openEmbeddedMessage: (MAPIStoreEmbeddedMessage **) messagePtr + inMode: (enum OpenEmbeddedMessage_OpenModeFlags) mode withMID: (uint64_t *) mid withMAPIStoreMsg: (struct mapistore_message **) mapistoreMsgPtr inMemCtx: (TALLOC_CTX *) memCtx; diff --git a/OpenChange/MAPIStoreAttachment.m b/OpenChange/MAPIStoreAttachment.m index 59c8832df..86944436b 100644 --- a/OpenChange/MAPIStoreAttachment.m +++ b/OpenChange/MAPIStoreAttachment.m @@ -91,6 +91,7 @@ } - (int) openEmbeddedMessage: (MAPIStoreEmbeddedMessage **) messagePtr + inMode: (enum OpenEmbeddedMessage_OpenModeFlags) mode withMID: (uint64_t *) mid withMAPIStoreMsg: (struct mapistore_message **) mapistoreMsgPtr inMemCtx: (TALLOC_CTX *) memCtx @@ -103,19 +104,23 @@ mapping = [self mapping]; - attMessage = [self openEmbeddedMessage]; - if (attMessage) + if (mode == MAPI_CREATE) + attMessage = [self createEmbeddedMessage]; + else { - *mid = [mapping idFromURL: [attMessage url]]; - *messagePtr = attMessage; - *mapistoreMsgPtr = mapistoreMsg; + // if (attMessage) + // [mapping registerURL: [attMessage url] + // withID: *mid]; + attMessage = [self openEmbeddedMessage]; + if (attMessage) + { + *mid = [mapping idFromURL: [attMessage url]]; + *messagePtr = attMessage; + *mapistoreMsgPtr = mapistoreMsg; + } } // else if (flags == MAPI_CREATE) // { - // attMessage = [self createEmbeddedMessage]; - // if (attMessage) - // [mapping registerURL: [attMessage url] - // withID: *mid]; // } return (attMessage ? MAPISTORE_SUCCESS : MAPISTORE_ERROR); diff --git a/OpenChange/MAPIStoreSOGo.m b/OpenChange/MAPIStoreSOGo.m index 1a5fc64d0..0a474aba7 100644 --- a/OpenChange/MAPIStoreSOGo.m +++ b/OpenChange/MAPIStoreSOGo.m @@ -963,9 +963,8 @@ sogo_message_submit (void *message_object, enum SubmitFlags flags) static enum mapistore_error sogo_message_attachment_open_embedded_message -(void *attachment_object, - TALLOC_CTX *mem_ctx, void **message_object, - uint64_t *midP, +(void *attachment_object, enum OpenEmbeddedMessage_OpenModeFlags mode, + TALLOC_CTX *mem_ctx, void **message_object, uint64_t *midP, struct mapistore_message **msg) { struct MAPIStoreTallocWrapper *wrapper; @@ -983,6 +982,7 @@ sogo_message_attachment_open_embedded_message GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; rc = [attachment openEmbeddedMessage: &message + inMode: mode withMID: midP withMAPIStoreMsg: msg inMemCtx: mem_ctx];