Monotone-Parent: 551d7c926dcd36700dd7ae6ae2cb2b2c0a8294c5

Monotone-Revision: 05e0abb27e38e7c461039f5c7f11b15934994776

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-09-27T19:26:12
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2011-09-27 19:26:12 +00:00
parent bd45d9b0f2
commit 2995fb6be8
2 changed files with 27 additions and 0 deletions

View File

@ -1,5 +1,9 @@
2011-09-27 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreFSMessage.m (-getPrChangeKey:inMemCtx:):
first return the value stored in the plist, if present. Otherwise
fallback to the method making use of objectVersion.
* OpenChange/MAPIStoreSOGo.m (sogo_folder_move_copy_messages):
added the "target_change_keys" parameter.

View File

@ -25,10 +25,12 @@
#import <Foundation/NSDictionary.h>
#import <Foundation/NSString.h>
#import <Foundation/NSValue.h>
#import <NGExtensions/NSObject+Logs.h>
#import "MAPIStoreContext.h"
#import "MAPIStorePropertySelectors.h"
#import "MAPIStoreTypes.h"
#import "NSData+MAPIStore.h"
#import "NSObject+MAPIStore.h"
#import "NSString+MAPIStore.h"
#import "SOGoMAPIFSMessage.h"
@ -127,6 +129,24 @@ Class NSNumberK;
return MAPISTORE_SUCCESS;
}
- (int) getPrChangeKey: (void **) data inMemCtx: (TALLOC_CTX *) memCtx
{
NSData *changeKey;
int rc;
changeKey = [[sogoObject properties]
objectForKey: MAPIPropertyKey (PR_CHANGE_KEY)];
if (changeKey)
{
*data = [changeKey asBinaryInMemCtx: memCtx];
rc = MAPISTORE_SUCCESS;
}
else
rc = [super getPrChangeKey: data inMemCtx: memCtx];
return rc;
}
- (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
inMemCtx: (TALLOC_CTX *) memCtx
{
@ -206,6 +226,9 @@ Class NSNumberK;
newVersion = exchange_globcnt ([[self context] getNewChangeNumber] >> 16);
[newProperties setObject: [NSNumber numberWithUnsignedLongLong: newVersion]
forKey: @"version"];
[self logWithFormat: @"%d props in dict", [newProperties count]];
[sogoObject appendProperties: newProperties];
[sogoObject save];
[self resetNewProperties];