View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001584 | SOGo Native Outlook Compatibility (obsolete) | sogo-tool | public | 2012-01-19 12:54 | 2012-03-26 12:52 |
Reporter | tshr_chavan | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | closed | Resolution | no change required | ||
Summary | 0001584: During Openchange Installation Error | ||||
Description | kepl@keplubnt1:~/SOGo/OpenChange$ make | ||||
Tags | No tags attached. | ||||
2012-01-19 14:45
|
r3576.diff (32,390 bytes)
Index: mapiproxy/servers/default/emsmdb/oxcfold.c =================================================================== --- mapiproxy/servers/default/emsmdb/oxcfold.c (révision 3575) +++ mapiproxy/servers/default/emsmdb/oxcfold.c (révision 3576) @@ -201,7 +201,7 @@ retval = mapi_handles_add(emsmdbp_ctx->handles_ctx, handle, &rec); handles[mapi_repl->handle_idx] = rec->handle; - object = emsmdbp_folder_open_table(rec, parent_object, EMSMDBP_TABLE_FOLDER_TYPE, rec->handle); + object = emsmdbp_folder_open_table(rec, parent_object, MAPISTORE_FOLDER_TABLE, rec->handle); if (!object) { mapi_repl->error_code = MAPI_E_INVALID_OBJECT; goto end; @@ -315,11 +315,11 @@ folderID = parent_object->object.folder->folderID; if ((mapi_req->u.mapi_GetContentsTable.TableFlags & TableFlags_Associated)) { DEBUG(5, (" table is FAI table\n")); - table_type = EMSMDBP_TABLE_FAI_TYPE; + table_type = MAPISTORE_FAI_TABLE; } else { DEBUG(5, (" table is contents table\n")); - table_type = EMSMDBP_TABLE_MESSAGE_TYPE; + table_type = MAPISTORE_MESSAGE_TABLE; } /* Initialize Table object */ Index: mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.h =================================================================== --- mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.h (révision 3575) +++ mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.h (révision 3576) @@ -137,7 +137,7 @@ }; struct emsmdbp_object_table { - uint8_t ulType; + enum mapistore_table_type ulType; uint32_t handle; bool restricted; uint16_t prop_count; @@ -250,15 +250,6 @@ #define EMSMDBP_PF_LOCALFREEBUSY 0x7 #define EMSMDBP_PF_LOCALOAB 0x8 - -/* Note: would be nice to keep this compatible with the equivalent list in mapistore.h, maybe remove one of them... */ -#define EMSMDBP_TABLE_FOLDER_TYPE 0x1 -#define EMSMDBP_TABLE_MESSAGE_TYPE 0x2 -#define EMSMDBP_TABLE_FAI_TYPE 0x3 -#define EMSMDBP_TABLE_RULE_TYPE 0x4 -#define EMSMDBP_TABLE_ATTACHMENT_TYPE 0x5 -#define EMSMDBP_TABLE_PERMISSIONS_TYPE 0x6 - __BEGIN_DECLS NTSTATUS samba_init_module(void); @@ -300,7 +291,7 @@ struct emsmdbp_object *emsmdbp_folder_open_table(TALLOC_CTX *, struct emsmdbp_object *, uint32_t, uint32_t); struct emsmdbp_object *emsmdbp_object_table_init(TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *); int emsmdbp_object_table_get_available_properties(TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, struct SPropTagArray **); -void **emsmdbp_object_table_get_row_props(TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, uint32_t, enum table_query_type, uint32_t **); +void **emsmdbp_object_table_get_row_props(TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, uint32_t, enum mapistore_query_type, uint32_t **); struct emsmdbp_object *emsmdbp_object_message_init(TALLOC_CTX *, struct emsmdbp_context *, uint64_t, struct emsmdbp_object *); enum mapistore_error emsmdbp_object_message_open(TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, uint64_t, uint64_t, bool, struct emsmdbp_object **, struct mapistore_message **); struct emsmdbp_object *emsmdbp_object_message_open_attachment_table(TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *); Index: mapiproxy/servers/default/emsmdb/oxcfxics.c =================================================================== --- mapiproxy/servers/default/emsmdb/oxcfxics.c (révision 3575) +++ mapiproxy/servers/default/emsmdb/oxcfxics.c (révision 3576) @@ -617,7 +617,7 @@ abort(); } - if (sync_data->table_type == EMSMDBP_TABLE_FAI_TYPE) { + if (sync_data->table_type == MAPISTORE_FAI_TABLE) { original_cnset_seen = synccontext->cnset_seen_fai; properties = &synccontext->fai_properties; } @@ -858,7 +858,7 @@ /* 2a. we build the message stream (normal messages) */ if (synccontext->request.normal) { sync_data->cnset_seen = RAWIDSET_make(NULL, false, true); - sync_data->table_type = EMSMDBP_TABLE_MESSAGE_TYPE; + sync_data->table_type = MAPISTORE_MESSAGE_TABLE; oxcfxics_push_messageChange(mem_ctx, emsmdbp_ctx, synccontext, owner, sync_data, synccontext_object->parent_object); new_idset = RAWIDSET_convert_to_idset(NULL, sync_data->cnset_seen); old_idset = synccontext->cnset_seen; @@ -873,7 +873,7 @@ /* 2b. we build the message stream (FAI messages) */ if (synccontext->request.fai) { sync_data->cnset_seen = RAWIDSET_make(NULL, false, true); - sync_data->table_type = EMSMDBP_TABLE_FAI_TYPE; + sync_data->table_type = MAPISTORE_FAI_TABLE; oxcfxics_push_messageChange(mem_ctx, emsmdbp_ctx, synccontext, owner, sync_data, synccontext_object->parent_object); new_idset = RAWIDSET_convert_to_idset(NULL, sync_data->cnset_seen); old_idset = synccontext->cnset_seen_fai; @@ -971,7 +971,7 @@ local_mem_ctx = talloc_zero(NULL, void); /* 2b. we build the stream */ - table_object = emsmdbp_folder_open_table(local_mem_ctx, folder_object, EMSMDBP_TABLE_FOLDER_TYPE, 0); + table_object = emsmdbp_folder_open_table(local_mem_ctx, folder_object, MAPISTORE_FOLDER_TABLE, 0); if (!table_object) { DEBUG(5, ("folder does not handle hierarchy tables\n")); return; @@ -1532,7 +1532,7 @@ if (!include_props) { if (synccontext->request.contents_mode) { if (synccontext->request.normal) { - table_object = emsmdbp_folder_open_table(NULL, folder_object, EMSMDBP_TABLE_MESSAGE_TYPE, 0); + table_object = emsmdbp_folder_open_table(NULL, folder_object, MAPISTORE_MESSAGE_TABLE, 0); if (!table_object) { DEBUG(5, ("could not open message table\n")); abort(); @@ -1555,7 +1555,7 @@ synccontext->fai_properties.cValues = synccontext->properties.cValues; synccontext->fai_properties.aulPropTag = talloc_memdup(synccontext, synccontext->properties.aulPropTag, synccontext->properties.cValues * sizeof (enum MAPITAGS)); - table_object = emsmdbp_folder_open_table(NULL, folder_object, EMSMDBP_TABLE_FAI_TYPE, 0); + table_object = emsmdbp_folder_open_table(NULL, folder_object, MAPISTORE_FAI_TABLE, 0); if (!table_object) { DEBUG(5, ("could not open FAI table\n")); abort(); @@ -1575,7 +1575,7 @@ } } else { - table_object = emsmdbp_folder_open_table(NULL, folder_object, EMSMDBP_TABLE_FOLDER_TYPE, 0); + table_object = emsmdbp_folder_open_table(NULL, folder_object, MAPISTORE_FOLDER_TABLE, 0); if (!table_object) { DEBUG(5, ("could not open folder table\n")); abort(); @@ -2729,13 +2729,13 @@ count_query_props->cValues = 1; count_query_props->aulPropTag = talloc_zero(count_query_props, enum MAPITAGS); switch (sync_data->table_type) { - case EMSMDBP_TABLE_FOLDER_TYPE: + case MAPISTORE_FOLDER_TABLE: count_query_props->aulPropTag[0] = PR_FOLDER_CHILD_COUNT; break; - case EMSMDBP_TABLE_MESSAGE_TYPE: + case MAPISTORE_MESSAGE_TABLE: count_query_props->aulPropTag[0] = PR_CONTENT_COUNT; break; - case EMSMDBP_TABLE_FAI_TYPE: + case MAPISTORE_FAI_TABLE: count_query_props->aulPropTag[0] = PR_ASSOC_CONTENT_COUNT; break; default: @@ -2798,7 +2798,7 @@ talloc_free(retvals); talloc_free(data_pointers); - if (sync_data->table_type == EMSMDBP_TABLE_FOLDER_TYPE) { + if (sync_data->table_type == MAPISTORE_FOLDER_TABLE) { /* TODO: check return code */ emsmdbp_object_open_folder(local_mem_ctx, emsmdbp_ctx, folder_object, eid, &subfolder_object); oxcfxics_fill_transfer_state_arrays(mem_ctx, emsmdbp_ctx, synccontext, owner, sync_data, subfolder_object); @@ -2842,18 +2842,18 @@ synccontext->properties.aulPropTag[0] = PR_MID; if (synccontext->request.normal) { - sync_data->table_type = EMSMDBP_TABLE_MESSAGE_TYPE; + sync_data->table_type = MAPISTORE_MESSAGE_TABLE; oxcfxics_fill_transfer_state_arrays(mem_ctx, emsmdbp_ctx, synccontext, owner, sync_data, synccontext_object->parent_object); } if (synccontext->request.fai) { - sync_data->table_type = EMSMDBP_TABLE_FAI_TYPE; + sync_data->table_type = MAPISTORE_FAI_TABLE; oxcfxics_fill_transfer_state_arrays(mem_ctx, emsmdbp_ctx, synccontext, owner, sync_data, synccontext_object->parent_object); } } else { synccontext->properties.aulPropTag[0] = PR_FID; - sync_data->table_type = EMSMDBP_TABLE_FOLDER_TYPE; + sync_data->table_type = MAPISTORE_FOLDER_TABLE; oxcfxics_fill_transfer_state_arrays(mem_ctx, emsmdbp_ctx, synccontext, owner, sync_data, synccontext_object->parent_object); } Index: mapiproxy/servers/default/emsmdb/oxctabl.c =================================================================== --- mapiproxy/servers/default/emsmdb/oxctabl.c (révision 3575) +++ mapiproxy/servers/default/emsmdb/oxctabl.c (révision 3576) @@ -98,7 +98,7 @@ table = object->object.table; OPENCHANGE_RETVAL_IF(!table, MAPI_E_INVALID_PARAMETER, NULL); - if (table->ulType == EMSMDBP_TABLE_RULE_TYPE) { + if (table->ulType == MAPISTORE_RULE_TABLE) { DEBUG(5, (" query on rules table are all faked right now\n")); goto end; } @@ -201,8 +201,8 @@ table = object->object.table; OPENCHANGE_RETVAL_IF(!table, MAPI_E_INVALID_PARAMETER, NULL); - if (table->ulType != EMSMDBP_TABLE_MESSAGE_TYPE - && table->ulType != EMSMDBP_TABLE_FAI_TYPE) { + if (table->ulType != MAPISTORE_MESSAGE_TABLE + && table->ulType != MAPISTORE_FAI_TABLE) { mapi_repl->error_code = MAPI_E_NO_SUPPORT; DEBUG(5, (" query performed on non contents table\n")); goto end; @@ -315,7 +315,7 @@ OPENCHANGE_RETVAL_IF(!table, MAPI_E_INVALID_PARAMETER, NULL); table->restricted = true; - if (table->ulType == EMSMDBP_TABLE_RULE_TYPE) { + if (table->ulType == MAPISTORE_RULE_TABLE) { DEBUG(5, (" query on rules table are all faked right now\n")); goto end; } @@ -425,7 +425,7 @@ table = object->object.table; count = 0; - if (table->ulType == EMSMDBP_TABLE_RULE_TYPE) { + if (table->ulType == MAPISTORE_RULE_TABLE) { DEBUG(5, (" query on rules table are all faked right now\n")); goto finish; } @@ -756,7 +756,7 @@ * entire table, nor do we handle bookmarks */ table = object->object.table; - if (table->ulType == EMSMDBP_TABLE_RULE_TYPE) { + if (table->ulType == MAPISTORE_RULE_TABLE) { DEBUG(5, (" query on rules table are all faked right now\n")); goto end; } @@ -982,7 +982,7 @@ mapi_repl->error_code = MAPI_E_SUCCESS; table = object->object.table; - if (table->ulType == EMSMDBP_TABLE_RULE_TYPE) { + if (table->ulType == MAPISTORE_RULE_TABLE) { DEBUG(5, (" query on rules table are all faked right now\n")); } else { Index: mapiproxy/servers/default/emsmdb/emsmdbp_object.c =================================================================== --- mapiproxy/servers/default/emsmdb/emsmdbp_object.c (révision 3575) +++ mapiproxy/servers/default/emsmdb/emsmdbp_object.c (révision 3576) @@ -345,7 +345,7 @@ return MAPISTORE_ERR_NOT_FOUND; } if (oc_parent_fid != parent_fid) { - DEBUG(0, ("parent folder mistmatch: expected %.16"PRIx64" but got %.16"PRIx64"\n", parent_fid, oc_parent_fid)); + DEBUG(0, ("parent folder mismatch: expected %.16"PRIx64" but got %.16"PRIx64"\n", parent_fid, oc_parent_fid)); talloc_free(local_ctx); talloc_free(folder_object); return MAPISTORE_ERR_NOT_FOUND; @@ -1080,16 +1080,16 @@ table_object->object.table->ulType = table_type; if (emsmdbp_is_mapistore(parent_object)) { switch (table_type) { - case EMSMDBP_TABLE_MESSAGE_TYPE: + case MAPISTORE_MESSAGE_TABLE: mstore_type = MAPISTORE_MESSAGE_TABLE; break; - case EMSMDBP_TABLE_FAI_TYPE: + case MAPISTORE_FAI_TABLE: mstore_type = MAPISTORE_FAI_TABLE; break; - case EMSMDBP_TABLE_FOLDER_TYPE: + case MAPISTORE_FOLDER_TABLE: mstore_type = MAPISTORE_FOLDER_TABLE; break; - case EMSMDBP_TABLE_PERMISSIONS_TYPE: + case MAPISTORE_PERMISSIONS_TABLE: mstore_type = MAPISTORE_PERMISSIONS_TABLE; break; default: @@ -1104,7 +1104,7 @@ } } else { - if (table_type == EMSMDBP_TABLE_FOLDER_TYPE) { + if (table_type == MAPISTORE_FOLDER_TABLE) { /* this gets data both for openchangedb and mapistore: needs improvement */ emsmdbp_folder_get_folder_count(parent_object->emsmdbp_ctx, parent_object, &table_object->object.table->denominator); } @@ -1125,13 +1125,13 @@ /* Non-mapistore message tables */ switch (table_type) { - case EMSMDBP_TABLE_MESSAGE_TYPE: + case MAPISTORE_MESSAGE_TABLE: openchangedb_get_message_count(parent_object->emsmdbp_ctx->oc_ctx, folderID, &table_object->object.table->denominator, false); break; - case EMSMDBP_TABLE_FAI_TYPE: + case MAPISTORE_FAI_TABLE: openchangedb_get_message_count(parent_object->emsmdbp_ctx->oc_ctx, folderID, &table_object->object.table->denominator, @@ -1271,10 +1271,11 @@ return retval; } -_PUBLIC_ void **emsmdbp_object_table_get_row_props(TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *table_object, uint32_t row_id, enum table_query_type query_type, uint32_t **retvalsp) +_PUBLIC_ void **emsmdbp_object_table_get_row_props(TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *table_object, uint32_t row_id, enum mapistore_query_type query_type, uint32_t **retvalsp) { void **data_pointers; enum MAPISTATUS retval; + enum mapistore_error ret; uint32_t *retvals; struct emsmdbp_object *subfolder; struct emsmdbp_object_table *table; @@ -1344,10 +1345,10 @@ /* Setup table_filter for openchangedb */ /* switch (table_object->object.table->ulType) { */ - /* case EMSMDBP_TABLE_MESSAGE_TYPE: */ + /* case MAPISTORE_MESSAGE_TABLE: */ /* table_filter = talloc_asprintf(odb_ctx, "(&(PidTagParentFolderId=%"PRIu64")(PidTagMessageId=*))", folderID); */ /* break; */ - /* case EMSMDBP_TABLE_FOLDER_TYPE: */ + /* case MAPISTORE_FOLDER_TABLE: */ /* table_filter = talloc_asprintf(odb_ctx, "(&(PidTagParentFolderId=%"PRIu64")(PidTagFolderId=*))", folderID); */ /* break; */ /* default: */ @@ -1366,10 +1367,17 @@ if (retval != MAPI_E_SUCCESS) { talloc_free(retvals); talloc_free(data_pointers); + talloc_free(odb_ctx); return NULL; } - emsmdbp_object_open_folder(NULL, table_object->parent_object->emsmdbp_ctx, table_object->parent_object, *(uint64_t *)rowFolderID, &subfolder); + ret = emsmdbp_object_open_folder(NULL, table_object->parent_object->emsmdbp_ctx, table_object->parent_object, *(uint64_t *)rowFolderID, &subfolder); + if (ret != MAPISTORE_SUCCESS) { + talloc_free(retvals); + talloc_free(data_pointers); + talloc_free(odb_ctx); + return NULL; + } /* Lookup for flagged property row */ retval = MAPI_E_SUCCESS; @@ -1612,7 +1620,7 @@ table_object = emsmdbp_object_table_init(mem_ctx, emsmdbp_ctx, message_object); if (table_object) { - table_object->object.table->ulType = EMSMDBP_TABLE_ATTACHMENT_TYPE; + table_object->object.table->ulType = MAPISTORE_ATTACHMENT_TABLE; mapistore_message_get_attachment_table(emsmdbp_ctx->mstore_ctx, contextID, message_object->backend_object, table_object, &table_object->backend_object, Index: mapiproxy/servers/default/emsmdb/oxcperm.c =================================================================== --- mapiproxy/servers/default/emsmdb/oxcperm.c (révision 3575) +++ mapiproxy/servers/default/emsmdb/oxcperm.c (révision 3576) @@ -100,7 +100,7 @@ handles[mapi_repl->handle_idx] = rec->handle; if (emsmdbp_is_mapistore(parent_object)) { - object = emsmdbp_folder_open_table(rec, parent_object, EMSMDBP_TABLE_PERMISSIONS_TYPE, mapi_repl->handle_idx); + object = emsmdbp_folder_open_table(rec, parent_object, MAPISTORE_PERMISSIONS_TABLE, mapi_repl->handle_idx); } else { object = emsmdbp_object_table_init((TALLOC_CTX *)rec, emsmdbp_ctx, parent_object); Index: mapiproxy/servers/default/emsmdb/oxorule.c =================================================================== --- mapiproxy/servers/default/emsmdb/oxorule.c (révision 3575) +++ mapiproxy/servers/default/emsmdb/oxorule.c (révision 3576) @@ -106,7 +106,7 @@ retval = mapi_handles_set_private_data(rec, object); /* rules tables are stub objects for now */ object->object.table->denominator = 0; - object->object.table->ulType = EMSMDBP_TABLE_RULE_TYPE; + object->object.table->ulType = MAPISTORE_RULE_TABLE; } end: *size += libmapiserver_RopGetRulesTable_size(); Index: mapiproxy/libmapistore/mapistore_private.h =================================================================== --- mapiproxy/libmapistore/mapistore_private.h (révision 3575) +++ mapiproxy/libmapistore/mapistore_private.h (révision 3576) @@ -180,10 +180,10 @@ enum mapistore_error mapistore_backend_folder_create_message(struct backend_context *, void *, TALLOC_CTX *, uint64_t, uint8_t, void **); enum mapistore_error mapistore_backend_folder_delete_message(struct backend_context *, void *, uint64_t, uint8_t); enum mapistore_error mapistore_backend_folder_move_copy_messages(struct backend_context *, void *, void *, uint32_t, uint64_t *, uint64_t *, struct Binary_r **, uint8_t); -enum mapistore_error mapistore_backend_folder_get_deleted_fmids(struct backend_context *, void *, TALLOC_CTX *, uint8_t, uint64_t, struct I8Array_r **, uint64_t *); -enum mapistore_error mapistore_backend_folder_get_child_count(struct backend_context *, void *, uint8_t, uint32_t *); +enum mapistore_error mapistore_backend_folder_get_deleted_fmids(struct backend_context *, void *, TALLOC_CTX *, enum mapistore_table_type, uint64_t, struct I8Array_r **, uint64_t *); +enum mapistore_error mapistore_backend_folder_get_child_count(struct backend_context *, void *, enum mapistore_table_type, uint32_t *); enum mapistore_error mapistore_backend_folder_get_child_fid_by_name(struct backend_context *, void *, const char *, uint64_t *); -enum mapistore_error mapistore_backend_folder_open_table(struct backend_context *, void *, TALLOC_CTX *, uint8_t, uint32_t, void **, uint32_t *); +enum mapistore_error mapistore_backend_folder_open_table(struct backend_context *, void *, TALLOC_CTX *, enum mapistore_table_type, uint32_t, void **, uint32_t *); enum mapistore_error mapistore_backend_folder_modify_permissions(struct backend_context *, void *, uint8_t, uint16_t, struct PermissionData *); enum mapistore_error mapistore_backend_message_get_message_data(struct backend_context *, void *, TALLOC_CTX *, struct mapistore_message **); @@ -200,8 +200,8 @@ enum mapistore_error mapistore_backend_table_set_columns(struct backend_context *, void *, uint16_t, enum MAPITAGS *); enum mapistore_error mapistore_backend_table_set_restrictions(struct backend_context *, void *, struct mapi_SRestriction *, uint8_t *); enum mapistore_error mapistore_backend_table_set_sort_order(struct backend_context *, void *, struct SSortOrderSet *, uint8_t *); -enum mapistore_error mapistore_backend_table_get_row(struct backend_context *, void *, TALLOC_CTX *, enum table_query_type, uint32_t, struct mapistore_property_data **); -enum mapistore_error mapistore_backend_table_get_row_count(struct backend_context *, void *, enum table_query_type, uint32_t *); +enum mapistore_error mapistore_backend_table_get_row(struct backend_context *, void *, TALLOC_CTX *, enum mapistore_query_type, uint32_t, struct mapistore_property_data **); +enum mapistore_error mapistore_backend_table_get_row_count(struct backend_context *, void *, enum mapistore_query_type, uint32_t *); enum mapistore_error mapistore_backend_table_handle_destructor(struct backend_context *, void *, uint32_t); enum mapistore_error mapistore_backend_properties_get_available_properties(struct backend_context *, void *, TALLOC_CTX *, struct SPropTagArray **); Index: mapiproxy/libmapistore/mapistore_interface.c =================================================================== --- mapiproxy/libmapistore/mapistore_interface.c (révision 3575) +++ mapiproxy/libmapistore/mapistore_interface.c (révision 3576) @@ -664,7 +664,7 @@ \return MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors */ -_PUBLIC_ enum mapistore_error mapistore_folder_get_deleted_fmids(struct mapistore_context *mstore_ctx, uint32_t context_id, void *folder, TALLOC_CTX *mem_ctx, uint8_t table_type, uint64_t change_num, struct I8Array_r **fmidsp, uint64_t *cnp) +_PUBLIC_ enum mapistore_error mapistore_folder_get_deleted_fmids(struct mapistore_context *mstore_ctx, uint32_t context_id, void *folder, TALLOC_CTX *mem_ctx, enum mapistore_table_type table_type, uint64_t change_num, struct I8Array_r **fmidsp, uint64_t *cnp) { struct backend_context *backend_ctx; @@ -721,7 +721,7 @@ \return MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors */ _PUBLIC_ enum mapistore_error mapistore_folder_get_message_count(struct mapistore_context *mstore_ctx, uint32_t context_id, - void *folder, uint8_t table_type, uint32_t *RowCount) + void *folder, enum mapistore_table_type table_type, uint32_t *RowCount) { struct backend_context *backend_ctx; enum mapistore_error ret; @@ -767,7 +767,7 @@ local_mem_ctx = talloc_zero(NULL, TALLOC_CTX); return mapistore_folder_open_table(mstore_ctx, context_id, - folder, local_mem_ctx, MAPISTORE_FOLDER_TABLE, -1, &backend_table, &row_count); + folder, local_mem_ctx, MAPISTORE_FOLDER_TABLE, -1, &backend_table, &row_count); MAPISTORE_RETVAL_IF(ret != MAPISTORE_SUCCESS, ret, local_mem_ctx); fid_column = PR_FID; @@ -805,7 +805,7 @@ } _PUBLIC_ enum mapistore_error mapistore_folder_open_table(struct mapistore_context *mstore_ctx, uint32_t context_id, - void *folder, TALLOC_CTX *mem_ctx, uint8_t table_type, uint32_t handle_id, void **table, uint32_t *row_count) + void *folder, TALLOC_CTX *mem_ctx, enum mapistore_table_type table_type, uint32_t handle_id, void **table, uint32_t *row_count) { struct backend_context *backend_ctx; @@ -1093,7 +1093,7 @@ } _PUBLIC_ enum mapistore_error mapistore_table_get_row(struct mapistore_context *mstore_ctx, uint32_t context_id, void *table, TALLOC_CTX *mem_ctx, - enum table_query_type query_type, uint32_t rowid, struct mapistore_property_data **data) + enum mapistore_query_type query_type, uint32_t rowid, struct mapistore_property_data **data) { struct backend_context *backend_ctx; @@ -1108,7 +1108,7 @@ return mapistore_backend_table_get_row(backend_ctx, table, mem_ctx, query_type, rowid, data); } -_PUBLIC_ enum mapistore_error mapistore_table_get_row_count(struct mapistore_context *mstore_ctx, uint32_t context_id, void *table, enum table_query_type query_type, uint32_t *row_countp) +_PUBLIC_ enum mapistore_error mapistore_table_get_row_count(struct mapistore_context *mstore_ctx, uint32_t context_id, void *table, enum mapistore_query_type query_type, uint32_t *row_countp) { struct backend_context *backend_ctx; Index: mapiproxy/libmapistore/mapistore.h =================================================================== --- mapiproxy/libmapistore/mapistore.h (révision 3575) +++ mapiproxy/libmapistore/mapistore.h (révision 3576) @@ -53,13 +53,6 @@ #define MAPISTORE_INIT_MODULE "mapistore_init_backend" -#define MAPISTORE_FOLDER_TABLE 1 -#define MAPISTORE_MESSAGE_TABLE 2 -#define MAPISTORE_FAI_TABLE 3 -#define MAPISTORE_RULE_TABLE 4 -#define MAPISTORE_ATTACHMENT_TABLE 5 -#define MAPISTORE_PERMISSIONS_TABLE 6 - #define MAPISTORE_FOLDER 1 #define MAPISTORE_MESSAGE 2 #define MAPISTORE_ATTACHMENT 3 @@ -90,7 +83,16 @@ uint32_t count; }; -enum table_query_type { +enum mapistore_table_type { + MAPISTORE_FOLDER_TABLE = 1, + MAPISTORE_MESSAGE_TABLE = 2, + MAPISTORE_FAI_TABLE = 3, + MAPISTORE_RULE_TABLE = 4, + MAPISTORE_ATTACHMENT_TABLE = 5, + MAPISTORE_PERMISSIONS_TABLE = 6 +}; + +enum mapistore_query_type { MAPISTORE_PREFILTERED_QUERY, MAPISTORE_LIVEFILTERED_QUERY, }; @@ -140,11 +142,11 @@ enum mapistore_error (*delete_folder)(void *, uint64_t); enum mapistore_error (*open_message)(void *, TALLOC_CTX *, uint64_t, bool, void **); enum mapistore_error (*create_message)(void *, TALLOC_CTX *, uint64_t, uint8_t, void **); - enum mapistore_error (*delete_message)(void *, uint64_t, uint8_t flags); + enum mapistore_error (*delete_message)(void *, uint64_t, uint8_t); enum mapistore_error (*move_copy_messages)(void *, void *, uint32_t, uint64_t *, uint64_t *, struct Binary_r **, uint8_t); - enum mapistore_error (*get_deleted_fmids)(void *, TALLOC_CTX *, uint8_t, uint64_t, struct I8Array_r **, uint64_t *); - enum mapistore_error (*get_child_count)(void *, uint8_t, uint32_t *); - enum mapistore_error (*open_table)(void *, TALLOC_CTX *, uint8_t, uint32_t, void **, uint32_t *); + enum mapistore_error (*get_deleted_fmids)(void *, TALLOC_CTX *, enum mapistore_table_type, uint64_t, struct I8Array_r **, uint64_t *); + enum mapistore_error (*get_child_count)(void *, enum mapistore_table_type, uint32_t *); + enum mapistore_error (*open_table)(void *, TALLOC_CTX *, enum mapistore_table_type, uint32_t, void **, uint32_t *); enum mapistore_error (*modify_permissions)(void *, uint8_t, uint16_t, struct PermissionData *); } folder; @@ -169,8 +171,8 @@ enum mapistore_error (*set_columns)(void *, uint16_t, enum MAPITAGS *); enum mapistore_error (*set_restrictions)(void *, struct mapi_SRestriction *, uint8_t *); enum mapistore_error (*set_sort_order)(void *, struct SSortOrderSet *, uint8_t *); - enum mapistore_error (*get_row)(void *, TALLOC_CTX *, enum table_query_type, uint32_t, struct mapistore_property_data **); - enum mapistore_error (*get_row_count)(void *, enum table_query_type, uint32_t *); + enum mapistore_error (*get_row)(void *, TALLOC_CTX *, enum mapistore_query_type, uint32_t, struct mapistore_property_data **); + enum mapistore_error (*get_row_count)(void *, enum mapistore_query_type, uint32_t *); enum mapistore_error (*handle_destructor)(void *, uint32_t); } table; @@ -253,12 +255,12 @@ enum mapistore_error mapistore_folder_create_message(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint64_t, uint8_t, void **); enum mapistore_error mapistore_folder_delete_message(struct mapistore_context *, uint32_t, void *, uint64_t, uint8_t); enum mapistore_error mapistore_folder_move_copy_messages(struct mapistore_context *, uint32_t, void *, void *, uint32_t, uint64_t *, uint64_t *, struct Binary_r **, uint8_t); -enum mapistore_error mapistore_folder_get_deleted_fmids(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint8_t, uint64_t, struct I8Array_r **, uint64_t *); +enum mapistore_error mapistore_folder_get_deleted_fmids(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, enum mapistore_table_type, uint64_t, struct I8Array_r **, uint64_t *); enum mapistore_error mapistore_folder_get_folder_count(struct mapistore_context *, uint32_t, void *, uint32_t *); -enum mapistore_error mapistore_folder_get_message_count(struct mapistore_context *, uint32_t, void *, uint8_t, uint32_t *); +enum mapistore_error mapistore_folder_get_message_count(struct mapistore_context *, uint32_t, void *, enum mapistore_table_type, uint32_t *); enum mapistore_error mapistore_folder_get_child_fids(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint64_t **, uint32_t *); enum mapistore_error mapistore_folder_get_child_fid_by_name(struct mapistore_context *, uint32_t, void *, const char *, uint64_t *); -enum mapistore_error mapistore_folder_open_table(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint8_t, uint32_t, void **, uint32_t *); +enum mapistore_error mapistore_folder_open_table(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, enum mapistore_table_type, uint32_t, void **, uint32_t *); enum mapistore_error mapistore_folder_modify_permissions(struct mapistore_context *, uint32_t, void *, uint8_t, uint16_t, struct PermissionData *); enum mapistore_error mapistore_message_get_message_data(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, struct mapistore_message **); @@ -275,8 +277,8 @@ enum mapistore_error mapistore_table_set_columns(struct mapistore_context *, uint32_t, void *, uint16_t, enum MAPITAGS *); enum mapistore_error mapistore_table_set_restrictions(struct mapistore_context *, uint32_t, void *, struct mapi_SRestriction *, uint8_t *); enum mapistore_error mapistore_table_set_sort_order(struct mapistore_context *, uint32_t, void *, struct SSortOrderSet *, uint8_t *); -enum mapistore_error mapistore_table_get_row(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, enum table_query_type, uint32_t, struct mapistore_property_data **); -enum mapistore_error mapistore_table_get_row_count(struct mapistore_context *, uint32_t, void *, enum table_query_type, uint32_t *); +enum mapistore_error mapistore_table_get_row(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, enum mapistore_query_type, uint32_t, struct mapistore_property_data **); +enum mapistore_error mapistore_table_get_row_count(struct mapistore_context *, uint32_t, void *, enum mapistore_query_type, uint32_t *); enum mapistore_error mapistore_table_handle_destructor(struct mapistore_context *, uint32_t, void *, uint32_t); enum mapistore_error mapistore_properties_get_available_properties(struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, struct SPropTagArray **); Index: mapiproxy/libmapistore/mapistore_backend.c =================================================================== --- mapiproxy/libmapistore/mapistore_backend.c (révision 3575) +++ mapiproxy/libmapistore/mapistore_backend.c (révision 3576) @@ -515,12 +515,12 @@ return bctx->backend->folder.move_copy_messages(target_folder, source_folder, mid_count, source_mids, target_mids, target_change_keys, want_copy); } -enum mapistore_error mapistore_backend_folder_get_deleted_fmids(struct backend_context *bctx, void *folder, TALLOC_CTX *mem_ctx, uint8_t table_type, uint64_t change_num, struct I8Array_r **fmidsp, uint64_t *cnp) +enum mapistore_error mapistore_backend_folder_get_deleted_fmids(struct backend_context *bctx, void *folder, TALLOC_CTX *mem_ctx, enum mapistore_table_type table_type, uint64_t change_num, struct I8Array_r **fmidsp, uint64_t *cnp) { return bctx->backend->folder.get_deleted_fmids(folder, mem_ctx, table_type, change_num, fmidsp, cnp); } -enum mapistore_error mapistore_backend_folder_get_child_count(struct backend_context *bctx, void *folder, uint8_t table_type, uint32_t *RowCount) +enum mapistore_error mapistore_backend_folder_get_child_count(struct backend_context *bctx, void *folder, enum mapistore_table_type table_type, uint32_t *RowCount) { return bctx->backend->folder.get_child_count(folder, table_type, RowCount); } @@ -568,7 +568,7 @@ } enum mapistore_error mapistore_backend_folder_open_table(struct backend_context *bctx, void *folder, - TALLOC_CTX *mem_ctx, uint8_t table_type, uint32_t handle_id, void **table, uint32_t *row_count) + TALLOC_CTX *mem_ctx, enum mapistore_table_type table_type, uint32_t handle_id, void **table, uint32_t *row_count) { return bctx->backend->folder.open_table(folder, mem_ctx, table_type, handle_id, table, row_count); } @@ -645,13 +645,13 @@ } enum mapistore_error mapistore_backend_table_get_row(struct backend_context *bctx, void *table, TALLOC_CTX *mem_ctx, - enum table_query_type query_type, uint32_t rowid, - struct mapistore_property_data **data) + enum mapistore_query_type query_type, uint32_t rowid, + struct mapistore_property_data **data) { return bctx->backend->table.get_row(table, mem_ctx, query_type, rowid, data); } -enum mapistore_error mapistore_backend_table_get_row_count(struct backend_context *bctx, void *table, enum table_query_type query_type, uint32_t *row_countp) +enum mapistore_error mapistore_backend_table_get_row_count(struct backend_context *bctx, void *table, enum mapistore_query_type query_type, uint32_t *row_countp) { return bctx->backend->table.get_row_count(table, query_type, row_countp); } |
Please update the openchange code to the latest revision available on their public server(currently 3575) and then patch it with the diff attached to this ticket. There is currently a problem with the openchange public svn repo and it doesn't contain the 3576 revision. |
|
Hello, If I can I update the number lines and repost the patch file. Thanks Walt |
|
I have the same problem on a pristine install.Do you have any idea when the libraries will be in sync or a workaround that 'works' will be available? I'm Looking forward to emulating an Exchange server to show management that this is worthwhile. Thanks, |
|
More info: I'm running debian squeeze, here's the error I receive when I try to run 'make'in OpenChange withthe latest downloads. This is gnustep-make 2.4.0. Type 'make print-gnustep-make-help' for help. |
|
Here's what I get when I run the patch. root@development:~/SOGo/OpenChange# patch --verbose < r3576.diff
|
|
Not sure if anyone is seeing these updates, I joined the list and added these notes using the web frontend instead of creating a new issue and getting the benefit of the email updates. Anyone seeing this? |
|
Hi You have to patch Openchange "server side" and not Openchange Connector |
|
This works well when using the proper SVN repositories. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2012-01-19 12:54 | tshr_chavan | New Issue | |
2012-01-19 14:45 |
|
File Added: r3576.diff | |
2012-01-19 14:49 |
|
Note Added: 0003295 | |
2012-01-19 14:49 |
|
Assigned To | => jraby |
2012-01-19 14:49 |
|
Status | new => assigned |
2012-02-01 15:52 | walt | Note Added: 0003352 | |
2012-03-04 08:28 | hatchetj4ck | Note Added: 0003519 | |
2012-03-06 17:32 | hatchetj4ck | Note Added: 0003530 | |
2012-03-06 22:24 | hatchetj4ck | Note Added: 0003542 | |
2012-03-09 16:26 | hatchetj4ck | Note Added: 0003555 | |
2012-03-10 14:12 | FleOxm | Note Added: 0003556 | |
2012-03-16 18:30 | ludovic | Project | SOGo => SOGo Native Outlook Compatibility (obsolete) |
2012-03-26 12:52 |
|
Note Added: 0003644 | |
2012-03-26 12:52 |
|
Status | assigned => closed |
2012-03-26 12:52 |
|
Resolution | open => no change required |