merge of '83587b1afc04162d7191ff57c7f8a78b502a9be3'

and 'e68f0a3422367e930eb3d030ebd4a65ee79e3581'

Monotone-Parent: 83587b1afc04162d7191ff57c7f8a78b502a9be3
Monotone-Parent: e68f0a3422367e930eb3d030ebd4a65ee79e3581
Monotone-Revision: 50e0397c329c41e41cf087484d14a3068de51597

Monotone-Author: flachapelle@inverse.ca
Monotone-Date: 2011-09-27T15:45:10
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Francis Lachapelle
2011-09-27 15:45:10 +00:00
3 changed files with 25 additions and 6 deletions

View File

@@ -13,6 +13,16 @@
(-fetchFreeBusyInfosFrom:to:): add off-hours if defaults
SOGoBusyOffHours is true.
2011-09-27 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreFolder.m
(-moveCopyMessagesWithMID:fromFolder:withMID:wantCopy:): ensure
the message URL exists in the MAPIStoreMapping, otherwise fail
with MAPISTORE_ERR_NOT_FOUND, to avoid a crash.
* OpenChange/MAPIStoreFSMessage.m (-objectVersion): return
0xff...fff when "version" does not exist in the object properties.
2011-09-26 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreFolder.m

View File

@@ -89,7 +89,9 @@ Class NSNumberK;
version = [[sogoObject properties] objectForKey: @"version"];
return exchange_globcnt ([version unsignedLongLongValue]);
return (version
? exchange_globcnt ([version unsignedLongLongValue])
: 0xffffffffffffffff);
}
- (int) getProperty: (void **) data

View File

@@ -641,6 +641,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
int rc = MAPISTORE_SUCCESS;
NSUInteger count;
NSMutableArray *oldMessageURLs;
NSString *oldMessageURL;
MAPIStoreMapping *mapping;
if ([sourceFolder isKindOfClass: isa]
@@ -651,11 +652,17 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
mapping = [[self context] mapping];
for (count = 0; rc == MAPISTORE_SUCCESS && count < midCount; count++)
{
[oldMessageURLs addObject: [mapping urlFromID: srcMids[count]]];
rc = [self moveCopyMessageWithMID: srcMids[count]
fromFolder: sourceFolder
withMID: targetMids[count]
wantCopy: wantCopy];
oldMessageURL = [mapping urlFromID: srcMids[count]];
if (oldMessageURL)
{
[oldMessageURLs addObject: oldMessageURL];
rc = [self moveCopyMessageWithMID: srcMids[count]
fromFolder: sourceFolder
withMID: targetMids[count]
wantCopy: wantCopy];
}
else
rc = MAPISTORE_ERR_NOT_FOUND;
}
/* Notifications */