oxcfxics.c File Reference

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

#include "mapiproxy/libmapiserver/libmapiserver.h"
#include "dcesrv_exchange_emsmdb.h"

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_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 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)
 

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
_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(), libmapiserver_RopFastTransferSourceCopyTo_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), and mapi_handles_set_private_data().

_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 libmapiserver_RopFastTransferSourceGetBuffer_size(), mapi_handles_get_private_data(), and mapi_handles_search().

_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 libmapiserver_RopGetLocalReplicaIds_size(), mapi_handles_get_private_data(), mapi_handles_search(), and openchangedb_reserve_fmid_range().

_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().

_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_object_synccontext_init(), libmapiserver_RopSyncConfigure_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), and mapi_handles_set_private_data().

_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_get_owner(), emsmdbp_object_ftcontext_init(), libmapiserver_RopSyncGetTransferState_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), and mapi_handles_set_private_data().

_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_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), libmapiserver_RopSyncImportDeletes_size(), mapi_handles_get_private_data(), mapi_handles_search(), and openchangedb_get_MailboxReplica().

_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_get_owner(), emsmdbp_object_open_folder_by_fid(), libmapiserver_RopSyncImportHierarchyChange_size(), mapi_handles_get_private_data(), mapi_handles_search(), openchangedb_get_MailboxReplica(), and openchangedb_get_new_changeNumber().

_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 
)

EcDoRpc EcDoRpc_RopSyncImportMessageChange (0x72) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportMessageChange EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncImportMessageChange 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_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), emsmdbp_object_message_init(), libmapiserver_RopSyncImportMessageChange_size(), mapi_handles_add(), mapi_handles_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), and openchangedb_get_MailboxReplica().

_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_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), get_MessageReadState(), libmapiserver_RopSyncImportReadStateChanges_size(), mapi_handles_get_private_data(), and mapi_handles_search().

_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_object_synccontext_init(), libmapiserver_RopSyncOpenCollector_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), and mapi_handles_set_private_data().

_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 libmapiserver_RopSyncUploadStateStreamBegin_size(), mapi_handles_get_private_data(), and mapi_handles_search().

_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 libmapiserver_RopSyncUploadStateStreamContinue_size(), mapi_handles_get_private_data(), and mapi_handles_search().

_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 libmapiserver_RopSyncUploadStateStreamEnd_size(), mapi_handles_get_private_data(), and mapi_handles_search().

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 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

fixed header props

remaining props

References emsmdbp_get_contextID(), and emsmdbp_is_mapistore().

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

fixed header props

remaining props

References emsmdbp_get_contextID(), and emsmdbp_is_mapistore().


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/