oxcfxics.c File Reference

FastTransfer and ICS object routines and Rops. More...

Functions

static bool convertIdToFMID (const struct GUID *replica_guid, uint8_t *data, uint32_t size, uint64_t *fmidP)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopFastTransferSourceCopyTo (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopFastTransferSourceGetBuffer (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetLocalReplicaIds (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSetLocalReplicaMidsetDeleted (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncConfigure (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncGetTransferState (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportDeletes (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportHierarchyChange (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportMessageChange (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportMessageMove (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportReadStateChanges (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncOpenCollector (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamBegin (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamContinue (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamEnd (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
 
static struct MessageReadState * get_MessageReadState (TALLOC_CTX *mem_ctx, struct Binary_r *bin)
 
static uint32_t oxcfxics_advance_cutmarks (struct emsmdbp_object_synccontext *synccontext, uint32_t request_buffer_size)
 
static void oxcfxics_check_cnset (struct ldb_context *oc_ctx, struct idset *parsed_idset, const char *label)
 
static void oxcfxics_check_cutmark_buffer (void *cutmark_buffer, DATA_BLOB *data_buffer)
 
static uint32_t oxcfxics_compute_cutmark_min_value_buffer (uint16_t prop_type)
 
static void oxcfxics_fill_ftcontext_fasttransfer_response (struct FastTransferSourceGetBuffer_repl *response, uint32_t request_buffer_size, TALLOC_CTX *mem_ctx, struct emsmdbp_object_ftcontext *ftcontext, struct emsmdbp_context *emsmdbp_ctx)
 
static void oxcfxics_fill_synccontext_fasttransfer_response (struct FastTransferSourceGetBuffer_repl *response, uint32_t request_buffer_size, TALLOC_CTX *mem_ctx, struct emsmdbp_object_synccontext *synccontext, struct emsmdbp_object *parent_object)
 
static void oxcfxics_fill_synccontext_with_messageChange (struct emsmdbp_object_synccontext *synccontext, TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, const char *owner, struct emsmdbp_object *parent_object)
 
static void oxcfxics_fill_transfer_state_arrays (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object_synccontext *synccontext, const char *owner, struct oxcfxics_sync_data *sync_data, struct emsmdbp_object *folder_object)
 
static int oxcfxics_fmid_from_source_key (struct emsmdbp_context *emsmdbp_ctx, const char *owner, struct SBinary_short *source_key, uint64_t *fmidp)
 
static struct Binary_r * oxcfxics_make_gid (TALLOC_CTX *mem_ctx, struct GUID *replica_guid, uint64_t id)
 
static struct Binary_r * oxcfxics_make_xid (TALLOC_CTX *mem_ctx, struct GUID *replica_guid, uint64_t *id, uint8_t idlength)
 
static void oxcfxics_ndr_check (struct ndr_push *ndr, const char *label)
 
static void oxcfxics_ndr_push_properties (struct ndr_push *ndr, struct ndr_push *cutmarks_ndr, void *nprops_ctx, struct SPropTagArray *properties, void **data_pointers, enum MAPISTATUS *retvals)
 
static void oxcfxics_ndr_push_simple_data (struct ndr_push *ndr, uint16_t prop_type, const void *value)
 
static void oxcfxics_ndr_push_transfer_state (struct ndr_push *ndr, const char *owner, struct emsmdbp_object *synccontext_object)
 
static void oxcfxics_prepare_synccontext_with_folderChange (struct emsmdbp_object_synccontext *synccontext, TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, const char *owner, struct emsmdbp_object *parent_object)
 
static void oxcfxics_push_folderChange (struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object_synccontext *synccontext, const char *owner, struct emsmdbp_object *topmost_folder_object, struct oxcfxics_sync_data *sync_data, struct emsmdbp_object *folder_object)
 
static bool oxcfxics_push_messageChange (struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object_synccontext *synccontext, const char *owner, struct oxcfxics_sync_data *sync_data, struct emsmdbp_object *folder_object)
 
static void oxcfxics_push_messageChange_attachment_embedded_message (struct emsmdbp_context *emsmdbp_ctx, uint32_t contextID, struct emsmdbp_object_synccontext *synccontext, struct oxcfxics_sync_data *sync_data, void *attachment)
 
static void oxcfxics_push_messageChange_attachments (struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object_synccontext *synccontext, struct oxcfxics_sync_data *sync_data, struct emsmdbp_object *message_object)
 
static void oxcfxics_push_messageChange_recipients (struct emsmdbp_context *emsmdbp_ctx, struct oxcfxics_sync_data *sync_data, struct emsmdbp_object *message_object, struct mapistore_message *msg)
 
static void oxcfxics_table_set_cn_restriction (struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *table_object, const char *owner, struct idset *cnset_seen)
 

Variables

static const int folder_properties_shift = 7
 
static const size_t max_message_sync_size = 262144
 
static const uint32_t message_preload_interval = 150
 
static const int message_properties_shift = 7
 

Detailed Description

FastTransfer and ICS object routines and Rops.

Function Documentation

static bool convertIdToFMID ( const struct GUID *  replica_guid,
uint8_t *  data,
uint32_t  size,
uint64_t *  fmidP 
)
static

EcDoRpc SyncImportMessageMove (0x78) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportMessageMove EcDoRpc_MAPI_REQ
mapi_replpointer to the SyncImportMessageMove EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

Referenced by EcDoRpc_RopSyncImportMessageMove().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopFastTransferSourceCopyTo ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopFastTransferSourceCopyTo (0x4d) Rop. This operation initializes a FastTransfer operation to download content from a given messaging object and its descendant subobjects.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the EcDoRpc_RopFastTransferSourceCopyTo EcDoRpc_MAPI_REQ structure
mapi_replpointer to the EcDoRpc_RopFastTransferSourceCopyTo EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_ftcontext_init(), emsmdbp_object_get_available_properties(), emsmdbp_object_get_properties(), emsmdbp_context::handles_ctx, libmapiserver_RopFastTransferSourceCopyTo_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, oxcfxics_ndr_push_properties(), and emsmdbp_object::parent_object.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopFastTransferSourceGetBuffer ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopFastTransferSourceGetBuffer (0x4e) Rop. This operation downloads the next portion of a FastTransfer stream that is produced by a previously configured download operation.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the FastTransferSourceGetBuffer EcDoRpc_MAPI_REQ structure
mapi_replpointer to the FastTransferSourceGetBuffer EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FTCONTEXT, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::ftcontext, emsmdbp_context::handles_ctx, libmapiserver_RopFastTransferSourceGetBuffer_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, oxcfxics_fill_ftcontext_fasttransfer_response(), oxcfxics_fill_synccontext_fasttransfer_response(), emsmdbp_object::parent_object, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetLocalReplicaIds ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopGetLocalReplicaIds (0x7f) Rop. This operation reserves a range of IDs to be used by a local replica.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetLocalReplicaIds EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetLocalReplicaIds EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_MAILBOX, emsmdbp_replid_to_guid(), emsmdbp_context::handles_ctx, libmapiserver_RopGetLocalReplicaIds_size(), emsmdbp_objects::mailbox, mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_reserve_fmid_range(), emsmdbp_object_mailbox::owner_username, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSetLocalReplicaMidsetDeleted ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc SetLocalReplicaMidsetDeleted (0x93) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetLocalReplicaMidsetDeleted EcDoRpc_MAPI_REQ
mapi_replpointer to the SetLocalReplicaMidsetDeleted EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopSetLocalReplicaMidsetDeleted_size().

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncConfigure ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopSyncConfigure (0x70) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncConfigure EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncConfigure EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_syncconfigure_request::best_body, emsmdbp_syncconfigure_request::contents_mode, emsmdbp_folder_open_table(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_synccontext_init(), emsmdbp_object_table_get_available_properties(), emsmdbp_syncconfigure_request::fai, emsmdbp_object_synccontext::fai_properties, emsmdbp_syncconfigure_request::force_unicode, mapi_handles::handle, emsmdbp_context::handles_ctx, emsmdbp_syncconfigure_request::ignore_no_longer_in_scope, emsmdbp_syncconfigure_request::ignored_specified_on_fai, emsmdbp_syncconfigure_request::is_collector, libmapiserver_RopSyncConfigure_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_syncconfigure_request::no_deletions, emsmdbp_syncconfigure_request::no_foreign_identifiers, emsmdbp_syncconfigure_request::no_soft_deletions, emsmdbp_syncconfigure_request::normal, emsmdbp_object::object, emsmdbp_syncconfigure_request::order_by_delivery_time, emsmdbp_syncconfigure_request::partial_item, emsmdbp_syncconfigure_request::progress, emsmdbp_object_synccontext::properties, emsmdbp_syncconfigure_request::read_state, emsmdbp_syncconfigure_request::recover_mode, emsmdbp_object_synccontext::request, emsmdbp_syncconfigure_request::request_cn, emsmdbp_syncconfigure_request::request_eid, emsmdbp_syncconfigure_request::request_message_size, emsmdbp_object_synccontext::request_start, emsmdbp_objects::synccontext, emsmdbp_object::type, emsmdbp_syncconfigure_request::unicode, and emsmdbp_syncconfigure_request::use_cpid.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncGetTransferState ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopSyncGetTransferState (0x82) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncGetTransferState EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncGetTransferState EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, emsmdbp_object_ftcontext::cutmarks, emsmdbp_get_owner(), emsmdbp_object_ftcontext_init(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::ftcontext, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopSyncGetTransferState_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, oxcfxics_ndr_push_transfer_state(), emsmdbp_object_ftcontext::stream, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportDeletes ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc SyncImportDeletes (0x74) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportDeletes EcDoRpc_MAPI_REQ
mapi_replpointer to the SyncImportDeletes EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_folder_delete(), emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_context::handles_ctx, libmapiserver_RopSyncImportDeletes_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_context::oc_ctx, openchangedb_get_MailboxReplica(), oxcfxics_fmid_from_source_key(), emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportHierarchyChange ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopSyncImportHierarchyChange (0x73) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportHierarchyChange EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncImportHierarchyChange EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_folder_move_folder(), emsmdbp_get_owner(), emsmdbp_object_create_folder(), emsmdbp_object_open_folder_by_fid(), emsmdbp_object_set_properties(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_context::handles_ctx, libmapiserver_RopSyncImportHierarchyChange_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_MailboxReplica(), openchangedb_get_new_changeNumber(), oxcfxics_fmid_from_source_key(), emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportMessageChange ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncImportReadStateChanges ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc SyncImportReadStateChanges (0x80) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportReadStateChanges EcDoRpc_MAPI_REQ
mapi_replpointer to the SyncImportReadStateChanges EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_guid_to_replid(), emsmdbp_is_mapistore(), emsmdbp_object_message_open(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, get_MessageReadState(), emsmdbp_context::handles_ctx, libmapiserver_RopSyncImportReadStateChanges_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncOpenCollector ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopSyncOpenCollector (0x7e) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncOpenCollector EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncOpenCollector EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_syncconfigure_request::contents_mode, EMSMDBP_OBJECT_FOLDER, emsmdbp_object_synccontext_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, emsmdbp_syncconfigure_request::is_collector, libmapiserver_RopSyncOpenCollector_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, emsmdbp_object_synccontext::request, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamBegin ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopSyncUploadStateStreamBegin (0x75) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncUploadStateStreamBegin EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncUploadStateStreamBegin EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_context::handles_ctx, libmapiserver_RopSyncUploadStateStreamBegin_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_synccontext::state_property, emsmdbp_object_synccontext::state_stream, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamContinue ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopSyncUploadStateStreamContinue (0x76) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncUploadStateStreamContinue EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncUploadStateStreamContinue EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_stream_write_buffer(), emsmdbp_context::handles_ctx, libmapiserver_RopSyncUploadStateStreamContinue_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_synccontext::state_property, emsmdbp_object_synccontext::state_stream, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamEnd ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopSyncUploadStateStreamEnd (0x77) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncUploadStateStreamEnd EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncUploadStateStreamEnd EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, emsmdbp_object_synccontext::cnset_read, emsmdbp_object_synccontext::cnset_seen, emsmdbp_object_synccontext::cnset_seen_fai, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_context::handles_ctx, emsmdbp_object_synccontext::idset_given, emsmdbp_syncconfigure_request::is_collector, libmapiserver_RopSyncUploadStateStreamEnd_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_context::oc_ctx, oxcfxics_check_cnset(), emsmdbp_object_synccontext::request, emsmdbp_object_synccontext::state_property, emsmdbp_object_synccontext::state_stream, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

static struct MessageReadState* get_MessageReadState ( TALLOC_CTX *  mem_ctx,
struct Binary_r *  bin 
)
static

Retrieve a MessageReadState structure from a binary blob

Parameters
mem_ctxpointer to the memory context
binpointer to the Binary_r structure with raw MessageReadState data
Returns
Allocated MessageReadState structure on success, otherwise NULL
Note
Developers must free the allocated MessageReadState when finished.

Referenced by EcDoRpc_RopSyncImportReadStateChanges().

static uint32_t oxcfxics_advance_cutmarks ( struct emsmdbp_object_synccontext synccontext,
uint32_t  request_buffer_size 
)
static
static void oxcfxics_check_cnset ( struct ldb_context *  oc_ctx,
struct idset *  parsed_idset,
const char *  label 
)
static
static void oxcfxics_check_cutmark_buffer ( void *  cutmark_buffer,
DATA_BLOB *  data_buffer 
)
static
static uint32_t oxcfxics_compute_cutmark_min_value_buffer ( uint16_t  prop_type)
static
static void oxcfxics_fill_ftcontext_fasttransfer_response ( struct FastTransferSourceGetBuffer_repl *  response,
uint32_t  request_buffer_size,
TALLOC_CTX *  mem_ctx,
struct emsmdbp_object_ftcontext ftcontext,
struct emsmdbp_context emsmdbp_ctx 
)
inlinestatic
static int oxcfxics_fmid_from_source_key ( struct emsmdbp_context emsmdbp_ctx,
const char *  owner,
struct SBinary_short *  source_key,
uint64_t *  fmidp 
)
static
static struct Binary_r* oxcfxics_make_gid ( TALLOC_CTX *  mem_ctx,
struct GUID *  replica_guid,
uint64_t  id 
)
static
static struct Binary_r* oxcfxics_make_xid ( TALLOC_CTX *  mem_ctx,
struct GUID *  replica_guid,
uint64_t *  id,
uint8_t  idlength 
)
static

Referenced by oxcfxics_make_gid().

static void oxcfxics_ndr_check ( struct ndr_push *  ndr,
const char *  label 
)
static
static void oxcfxics_ndr_push_properties ( struct ndr_push *  ndr,
struct ndr_push *  cutmarks_ndr,
void *  nprops_ctx,
struct SPropTagArray *  properties,
void **  data_pointers,
enum MAPISTATUS *  retvals 
)
static
static void oxcfxics_ndr_push_simple_data ( struct ndr_push *  ndr,
uint16_t  prop_type,
const void *  value 
)
static
static bool oxcfxics_push_messageChange ( struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object_synccontext synccontext,
const char *  owner,
struct oxcfxics_sync_data *  sync_data,
struct emsmdbp_object folder_object 
)
static
static void oxcfxics_push_messageChange_attachment_embedded_message ( struct emsmdbp_context emsmdbp_ctx,
uint32_t  contextID,
struct emsmdbp_object_synccontext synccontext,
struct oxcfxics_sync_data *  sync_data,
void *  attachment 
)
static
static void oxcfxics_push_messageChange_recipients ( struct emsmdbp_context emsmdbp_ctx,
struct oxcfxics_sync_data *  sync_data,
struct emsmdbp_object message_object,
struct mapistore_message *  msg 
)
static
static void oxcfxics_table_set_cn_restriction ( struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object table_object,
const char *  owner,
struct idset *  cnset_seen 
)
static

Variable Documentation

const int folder_properties_shift = 7
static
const size_t max_message_sync_size = 262144
static
const uint32_t message_preload_interval = 150
static
const int message_properties_shift = 7
static

Creative Commons License
Creative Commons Attribution icon Creative Commons Share Alike icon
This content is licensed under the Creative Commons
Attribution ShareAlike License v. 3.0:
http://creativecommons.org/licenses/by-sa/3.0/