diff --git a/OpenChange/MAPIStoreContactsMessage.m b/OpenChange/MAPIStoreContactsMessage.m index cccb495e1..0236f1817 100644 --- a/OpenChange/MAPIStoreContactsMessage.m +++ b/OpenChange/MAPIStoreContactsMessage.m @@ -1024,10 +1024,12 @@ fromProperties: (NSDictionary *) attachmentProps || (!isNew && [roles containsObject: SOGoRole_ObjectEditor])); } -// -// -// -- (void) save:(TALLOC_CTX *) memCtx +- (void) saveDistList:(TALLOC_CTX *) memCtx +{ + [self warnWithFormat: @"IPM.DistList messages are ignored"]; +} + +- (void) saveContact:(TALLOC_CTX *) memCtx { NSArray *elements, *units; CardElement *element; @@ -1373,4 +1375,14 @@ fromProperties: (NSDictionary *) attachmentProps [self updateVersions]; } +- (void) save:(TALLOC_CTX *) memCtx +{ + NSString *messageClass = [properties objectForKey: MAPIPropertyKey(PR_MESSAGE_CLASS_UNICODE)]; + if ([messageClass isEqualToString: @"IPM.DistList"]) + [self saveDistList: memCtx]; + else + [self saveContact: memCtx]; +} + + @end diff --git a/OpenChange/MAPIStoreGCSMessage.m b/OpenChange/MAPIStoreGCSMessage.m index 2f7afeada..58b4a9ca2 100644 --- a/OpenChange/MAPIStoreGCSMessage.m +++ b/OpenChange/MAPIStoreGCSMessage.m @@ -140,9 +140,16 @@ [parentFolder synchroniseCache]; changeKey = [parentFolder changeKeyForMessageWithKey: nameInContainer]; } - if (!changeKey) - abort (); - *data = [changeKey asBinaryInMemCtx: memCtx]; + if (changeKey) + *data = [changeKey asBinaryInMemCtx: memCtx]; + else + { + [self warnWithFormat: @"No change key for %@ in folder %@", + nameInContainer, + [parentFolder url] + ]; + rc = MAPISTORE_ERR_NOT_FOUND; + } } return rc;