mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-13 17:28:52 +00:00
Monotone-Parent: bde45b38158c1c9e5e5c05c00ef16e0ceb81c789
Monotone-Revision: 6cff836762bb35cb6c26ae5eb215e6ff131d480d Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-12-03T22:31:56 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -44,8 +44,9 @@
|
||||
\details Initialize sogo mapistore backend
|
||||
|
||||
\return MAPISTORE_SUCCESS on success
|
||||
*/
|
||||
static int sogo_init (void)
|
||||
*/
|
||||
static int
|
||||
sogo_init (void)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
SOGoProductLoader *loader;
|
||||
@@ -90,7 +91,8 @@ static int sogo_init (void)
|
||||
\param private_data pointer to the private backend context
|
||||
*/
|
||||
|
||||
static int sogo_create_context(TALLOC_CTX *mem_ctx, const char *uri, void **private_data)
|
||||
static int
|
||||
sogo_create_context(TALLOC_CTX *mem_ctx, const char *uri, void **private_data)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -106,7 +108,7 @@ static int sogo_create_context(TALLOC_CTX *mem_ctx, const char *uri, void **priv
|
||||
if (MAPIStoreContextK)
|
||||
{
|
||||
context = [MAPIStoreContextK contextFromURI: uri
|
||||
inMemCtx: mem_ctx];
|
||||
inMemCtx: mem_ctx];
|
||||
[context retain];
|
||||
|
||||
cContext = talloc_zero(mem_ctx, sogo_context);
|
||||
@@ -132,7 +134,8 @@ static int sogo_create_context(TALLOC_CTX *mem_ctx, const char *uri, void **priv
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static int sogo_delete_context(void *private_data)
|
||||
static int
|
||||
sogo_delete_context(void *private_data)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -158,7 +161,8 @@ static int sogo_delete_context(void *private_data)
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static int sogo_release_record(void *private_data, uint64_t fmid, uint8_t type)
|
||||
static int
|
||||
sogo_release_record(void *private_data, uint64_t fmid, uint8_t type)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
|
||||
@@ -190,8 +194,9 @@ static int sogo_release_record(void *private_data, uint64_t fmid, uint8_t type)
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE error
|
||||
*/
|
||||
static int sogo_get_path(void *private_data, uint64_t fmid,
|
||||
uint8_t type, char **path)
|
||||
static int
|
||||
sogo_get_path(void *private_data, uint64_t fmid,
|
||||
uint8_t type, char **path)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -215,7 +220,8 @@ static int sogo_get_path(void *private_data, uint64_t fmid,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_get_fid_by_name(void *private_data, uint64_t parent_fid, const char* foldername, uint64_t *fid)
|
||||
static int
|
||||
sogo_op_get_fid_by_name(void *private_data, uint64_t parent_fid, const char* foldername, uint64_t *fid)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -246,8 +252,9 @@ static int sogo_op_get_fid_by_name(void *private_data, uint64_t parent_fid, cons
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static int sogo_op_mkdir(void *private_data, uint64_t parent_fid, uint64_t fid,
|
||||
struct SRow *aRow)
|
||||
static int
|
||||
sogo_op_mkdir(void *private_data, uint64_t parent_fid, uint64_t fid,
|
||||
struct SRow *aRow)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -280,7 +287,8 @@ static int sogo_op_mkdir(void *private_data, uint64_t parent_fid, uint64_t fid,
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static int sogo_op_rmdir(void *private_data, uint64_t parent_fid, uint64_t fid)
|
||||
static int
|
||||
sogo_op_rmdir(void *private_data, uint64_t parent_fid, uint64_t fid)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -313,7 +321,8 @@ static int sogo_op_rmdir(void *private_data, uint64_t parent_fid, uint64_t fid)
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static int sogo_op_opendir(void *private_data, uint64_t parent_fid, uint64_t fid)
|
||||
static int
|
||||
sogo_op_opendir(void *private_data, uint64_t parent_fid, uint64_t fid)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -344,7 +353,8 @@ static int sogo_op_opendir(void *private_data, uint64_t parent_fid, uint64_t fid
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static int sogo_op_closedir(void *private_data)
|
||||
static int
|
||||
sogo_op_closedir(void *private_data)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -375,10 +385,11 @@ static int sogo_op_closedir(void *private_data)
|
||||
|
||||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static int sogo_op_readdir_count(void *private_data,
|
||||
uint64_t fid,
|
||||
uint8_t table_type,
|
||||
uint32_t *RowCount)
|
||||
static int
|
||||
sogo_op_readdir_count(void *private_data,
|
||||
uint64_t fid,
|
||||
uint8_t table_type,
|
||||
uint32_t *RowCount)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -402,12 +413,13 @@ static int sogo_op_readdir_count(void *private_data,
|
||||
}
|
||||
|
||||
|
||||
static int sogo_op_get_table_property(void *private_data,
|
||||
uint64_t fid,
|
||||
uint8_t table_type,
|
||||
uint32_t pos,
|
||||
uint32_t proptag,
|
||||
void **data)
|
||||
static int
|
||||
sogo_op_get_table_property(void *private_data,
|
||||
uint64_t fid,
|
||||
uint8_t table_type,
|
||||
uint32_t pos,
|
||||
uint32_t proptag,
|
||||
void **data)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -423,7 +435,7 @@ static int sogo_op_get_table_property(void *private_data,
|
||||
[context setupRequest];
|
||||
|
||||
rc = [context getTableProperty: data withTag: proptag atPosition: pos
|
||||
withTableType: table_type inFID: fid];
|
||||
withTableType: table_type inFID: fid];
|
||||
|
||||
[context tearDownRequest];
|
||||
[pool release];
|
||||
@@ -431,10 +443,11 @@ static int sogo_op_get_table_property(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_openmessage(void *private_data,
|
||||
uint64_t fid,
|
||||
uint64_t mid,
|
||||
struct mapistore_message *msg)
|
||||
static int
|
||||
sogo_op_openmessage(void *private_data,
|
||||
uint64_t fid,
|
||||
uint64_t mid,
|
||||
struct mapistore_message *msg)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -458,9 +471,10 @@ static int sogo_op_openmessage(void *private_data,
|
||||
}
|
||||
|
||||
|
||||
static int sogo_op_createmessage(void *private_data,
|
||||
uint64_t fid,
|
||||
uint64_t mid)
|
||||
static int
|
||||
sogo_op_createmessage(void *private_data,
|
||||
uint64_t fid,
|
||||
uint64_t mid)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -483,9 +497,10 @@ static int sogo_op_createmessage(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_savechangesmessage(void *private_data,
|
||||
uint64_t mid,
|
||||
uint8_t flags)
|
||||
static int
|
||||
sogo_op_savechangesmessage(void *private_data,
|
||||
uint64_t mid,
|
||||
uint8_t flags)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -508,9 +523,10 @@ static int sogo_op_savechangesmessage(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_submitmessage(void *private_data,
|
||||
uint64_t mid,
|
||||
uint8_t flags)
|
||||
static int
|
||||
sogo_op_submitmessage(void *private_data,
|
||||
uint64_t mid,
|
||||
uint8_t flags)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -533,11 +549,12 @@ static int sogo_op_submitmessage(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_getprops(void *private_data,
|
||||
uint64_t fmid,
|
||||
uint8_t type,
|
||||
struct SPropTagArray *SPropTagArray,
|
||||
struct SRow *aRow)
|
||||
static int
|
||||
sogo_op_getprops(void *private_data,
|
||||
uint64_t fmid,
|
||||
uint8_t type,
|
||||
struct SPropTagArray *SPropTagArray,
|
||||
struct SRow *aRow)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -563,10 +580,11 @@ static int sogo_op_getprops(void *private_data,
|
||||
}
|
||||
|
||||
|
||||
static int sogo_op_setprops(void *private_data,
|
||||
uint64_t fmid,
|
||||
uint8_t type,
|
||||
struct SRow *aRow)
|
||||
static int
|
||||
sogo_op_setprops(void *private_data,
|
||||
uint64_t fmid,
|
||||
uint8_t type,
|
||||
struct SRow *aRow)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -589,9 +607,10 @@ static int sogo_op_setprops(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_set_property_from_fd(void *private_data,
|
||||
uint64_t fmid, uint8_t type,
|
||||
uint32_t property, int fd)
|
||||
static int
|
||||
sogo_op_set_property_from_fd(void *private_data,
|
||||
uint64_t fmid, uint8_t type,
|
||||
uint32_t property, int fd)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -619,9 +638,10 @@ static int sogo_op_set_property_from_fd(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_get_property_into_fd(void *private_data,
|
||||
uint64_t fmid, uint8_t type,
|
||||
uint32_t property, int fd)
|
||||
static int
|
||||
sogo_op_get_property_into_fd(void *private_data,
|
||||
uint64_t fmid, uint8_t type,
|
||||
uint32_t property, int fd)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -649,10 +669,11 @@ static int sogo_op_get_property_into_fd(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_modifyrecipients(void *private_data,
|
||||
uint64_t mid,
|
||||
struct ModifyRecipientRow *rows,
|
||||
uint16_t count)
|
||||
static int
|
||||
sogo_op_modifyrecipients(void *private_data,
|
||||
uint64_t mid,
|
||||
struct ModifyRecipientRow *rows,
|
||||
uint16_t count)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -677,9 +698,10 @@ static int sogo_op_modifyrecipients(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_deletemessage(void *private_data,
|
||||
uint64_t mid,
|
||||
uint8_t flags)
|
||||
static int
|
||||
sogo_op_deletemessage(void *private_data,
|
||||
uint64_t mid,
|
||||
uint8_t flags)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -702,9 +724,10 @@ static int sogo_op_deletemessage(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int sogo_op_get_folders_list(void *private_data,
|
||||
uint64_t fmid,
|
||||
struct indexing_folders_list **folders_list)
|
||||
static int
|
||||
sogo_op_get_folders_list(void *private_data,
|
||||
uint64_t fmid,
|
||||
struct indexing_folders_list **folders_list)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
@@ -727,6 +750,41 @@ static int sogo_op_get_folders_list(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
sogo_op_set_restrictions (void *private_data, uint64_t fmid, uint8_t type,
|
||||
struct mapi_SRestriction *res, uint8_t *tableStatus)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
MAPIStoreContext *context;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
cContext = private_data;
|
||||
context = cContext->objcContext;
|
||||
if (context)
|
||||
{
|
||||
[context setupRequest];
|
||||
|
||||
rc = [context setRestrictions: res
|
||||
withFMID: fmid andTableType: type
|
||||
getTableStatus: tableStatus];
|
||||
|
||||
[context tearDownRequest];
|
||||
[pool release];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog (@" UNEXPECTED WEIRDNESS: RECEIVED NO CONTEXT");
|
||||
rc = MAPI_E_NOT_FOUND;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
\details Entry point for mapistore SOGO backend
|
||||
|
||||
@@ -751,12 +809,13 @@ int mapistore_init_backend(void)
|
||||
backend.description = "mapistore SOGo backend";
|
||||
backend.namespace = "sogo://";
|
||||
|
||||
/* Fill in all the operations */
|
||||
backend.init = sogo_init;
|
||||
backend.create_context = sogo_create_context;
|
||||
backend.delete_context = sogo_delete_context;
|
||||
backend.release_record = sogo_release_record;
|
||||
|
||||
backend.get_path = sogo_get_path;
|
||||
backend.op_get_fid_by_name = sogo_op_get_fid_by_name;
|
||||
|
||||
backend.op_mkdir = sogo_op_mkdir;
|
||||
backend.op_rmdir = sogo_op_rmdir;
|
||||
@@ -764,18 +823,19 @@ int mapistore_init_backend(void)
|
||||
backend.op_closedir = sogo_op_closedir;
|
||||
backend.op_readdir_count = sogo_op_readdir_count;
|
||||
backend.op_get_table_property = sogo_op_get_table_property;
|
||||
backend.op_get_folders_list = sogo_op_get_folders_list;
|
||||
backend.op_set_restrictions = sogo_op_set_restrictions;
|
||||
backend.op_openmessage = sogo_op_openmessage;
|
||||
backend.op_createmessage = sogo_op_createmessage;
|
||||
backend.op_modifyrecipients = sogo_op_modifyrecipients;
|
||||
backend.op_savechangesmessage = sogo_op_savechangesmessage;
|
||||
backend.op_submitmessage = sogo_op_submitmessage;
|
||||
backend.op_getprops = sogo_op_getprops;
|
||||
backend.op_get_fid_by_name = sogo_op_get_fid_by_name;
|
||||
backend.op_deletemessage = sogo_op_deletemessage;
|
||||
|
||||
backend.op_setprops = sogo_op_setprops;
|
||||
backend.op_getprops = sogo_op_getprops;
|
||||
backend.op_set_property_from_fd = sogo_op_set_property_from_fd;
|
||||
backend.op_get_property_into_fd = sogo_op_get_property_into_fd;
|
||||
backend.op_modifyrecipients = sogo_op_modifyrecipients;
|
||||
backend.op_deletemessage = sogo_op_deletemessage;
|
||||
backend.op_get_folders_list = sogo_op_get_folders_list;
|
||||
|
||||
/* Register ourselves with the MAPISTORE subsystem */
|
||||
ret = mapistore_backend_register(&backend);
|
||||
|
||||
Reference in New Issue
Block a user