oxcstor.c File Reference

Server-side store objects routines and Rops. More...

Functions

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetPerUserGuid (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_RopGetPerUserLongTermIds (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_RopGetReceiveFolder (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_RopGetReceiveFolderTable (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_RopGetStoreState (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_RopIdFromLongTermId (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_RopLogon (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_RopLongTermIdFromId (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_RopReadPerUserInformation (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_RopRelease (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *request, uint32_t *handles, uint16_t *size)
 
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSetReceiveFolder (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 bool MessageClassIsValid (const char *MessageClass)
 
static enum MAPISTATUS RopGetReceiveFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles)
 
static enum MAPISTATUS RopGetReceiveFolderTable (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles)
 
static enum MAPISTATUS RopLogon_Mailbox (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl)
 
static enum MAPISTATUS RopLogon_PublicFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl)
 
static enum MAPISTATUS RopSetReceiveFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles)
 

Detailed Description

Server-side store objects routines and Rops.

Function Documentation

◆ EcDoRpc_RopGetPerUserGuid()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetPerUserGuid ( 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 GetPerUserGuid (0x61) Rop. This operation gets the GUID of a public folder's per-user information.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REQ
mapi_replpointer to the GetPerUserLongTermIds 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::emsmdbp_ctx, and libmapiserver_RopGetPerUserGuid_size().

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopGetPerUserLongTermIds()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetPerUserLongTermIds ( 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 GetPerUserLongTermIds (0x60) Rop. This operations gets the long-term ID of a public folder that is identified by the per-user GUID of the logged on user.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REQ
mapi_replpointer to the GetPerUserLongTermIds 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::emsmdbp_ctx, and libmapiserver_RopGetPerUserLongTermIds_size().

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopGetReceiveFolder()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetReceiveFolder ( 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 GetReceiveFolder (0x27) Rop. This operation gets the receive folder for incoming messages of a particular message class

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetReceiveFolder EcDoRpc_MAPI_REQ
mapi_replpointer to the GetReceiveFolder 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_process_transaction().

◆ EcDoRpc_RopGetReceiveFolderTable()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetReceiveFolderTable ( 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 GetReceiveFolderTable (0x68) Rop. This operation obtain a comprehensive list of all configured message classes and their associated Receive folders

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the esmsmdb provider context
mapi_reqpointer to the GetReceiveFolderTable EcDoRpc_MAPI_REQ
mapi_replpointer to the GetReceiveFolderTable 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::emsmdbp_ctx, libmapiserver_RopGetReceiveFolderTable_size(), and RopGetReceiveFolderTable().

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopGetStoreState()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetStoreState ( 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 GetStoreState (0x63) Rop. This operation gets per-user information for a public folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetStoreState EcDoRpc_MAPI_REQ
mapi_replpointer to the GetStoreState 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::emsmdbp_ctx, and libmapiserver_RopGetStoreState_size().

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopIdFromLongTermId()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopIdFromLongTermId ( 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 (0x44) Rop. This operation sets or clears the message read flag.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetMessageReadFlag EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetMessageReadFlag 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::emsmdbp_ctx, emsmdbp_guid_to_replid(), EMSMDBP_OBJECT_MAILBOX, emsmdbp_context::handles_ctx, libmapiserver_RopIdFromLongTermId_size(), emsmdbp_objects::mailbox, mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and emsmdbp_object_mailbox::owner_username.

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopLogon()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopLogon ( 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 Logon (0xFE) Rop. This operation logs on to a private mailbox or public folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the Logon EcDoRpc_MAPI_REQ structure
mapi_replpointer to the Logon EcDoRpc_MAPI_REPL structure the function returns
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Note
Users are only allowed to open their own mailbox at the moment. This limitation will be removed when significant progress have been made.
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::emsmdbp_ctx, emsmdbp_object_mailbox_init(), emsmdbp_context::handles_ctx, libmapiserver_RopLogon_size(), mapi_handles_add(), mapi_handles_set_private_data(), emsmdbp_object::object, RopLogon_Mailbox(), RopLogon_PublicFolder(), and emsmdbp_context::szUserDN.

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopLongTermIdFromId()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopLongTermIdFromId ( 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_RopLongTermIdFromId (0x43) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the LongTermIdFromId EcDoRpc_MAPI_REQ structure
mapi_replpointer to the LongTermIdFromId 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::emsmdbp_ctx, EMSMDBP_OBJECT_MAILBOX, emsmdbp_replid_to_guid(), emsmdbp_context::handles_ctx, libmapiserver_RopLongTermIdFromId_size(), emsmdbp_objects::mailbox, mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and emsmdbp_object_mailbox::owner_username.

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopReadPerUserInformation()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopReadPerUserInformation ( 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 ReadPerUserInformation (0x63) Rop. This operation gets per-user information for a public folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ReadPerUserInformation EcDoRpc_MAPI_REQ
mapi_replpointer to the ReadPerUserInformation 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::emsmdbp_ctx, and libmapiserver_RopReadPerUserInformation_size().

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopRelease()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopRelease ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  request,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc Release (0x01) Rop. This operation releases an existing MAPI handle.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
requestpointer to the Release EcDoRpc_MAPI_REQ
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::emsmdbp_ctx, emsmdbp_context::handles_ctx, mapi_handles_delete(), and emsmdbp_context::mstore_ctx.

Referenced by EcDoRpc_process_transaction().

◆ EcDoRpc_RopSetReceiveFolder()

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSetReceiveFolder ( 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 SetReceiveFolder (0x26) Rop. This operation sets the receive folder for incoming messages of a particular message class

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetReceiveFolder EcDoRpc_MAPI_REQ
mapi_replpointer to the SetReceiveFolder 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_process_transaction().

◆ MessageClassIsValid()

static bool MessageClassIsValid ( const char *  MessageClass)
static

◆ RopGetReceiveFolder()

static enum MAPISTATUS RopGetReceiveFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles 
)
static

EcDoRpc GetReceiveFolder (0x27) Rop Internals. This routine performs the GetReceiveFolder internals.

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

References emsmdbp_object::emsmdbp_ctx, libmapiserver_RopSetReceiveFolder_size(), and RopSetReceiveFolder().

Referenced by RopGetReceiveFolderTable().

◆ RopGetReceiveFolderTable()

static enum MAPISTATUS RopGetReceiveFolderTable ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles 
)
static

EcDoRpc GetReceiveFoldertable (0x68) Rop Internals. This routine performs the GetReceiveFolderTable internals.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetReceiveFolderTable EcDoRpc_MAPI_REQ
mapi_reqplpointer to the GetReceiveFolderTable EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::emsmdbp_ctx, libmapiserver_RopGetReceiveFolder_size(), and RopGetReceiveFolder().

Referenced by EcDoRpc_RopGetReceiveFolderTable().

◆ RopLogon_Mailbox()

static enum MAPISTATUS RopLogon_Mailbox ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl 
)
static

Logs on a private mailbox

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the RopLogon EcDoRpc_MAPI_REQ structure
mapi_replpointer to the RopLogon EcDoRpc_MAPI_REPL structure the function returns
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

Referenced by EcDoRpc_RopLogon().

◆ RopLogon_PublicFolder()

static enum MAPISTATUS RopLogon_PublicFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl 
)
static

Logs on a public folder store

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the RopLogon EcDoRpc_MAPI_REQ structure
mapi_replpointer to the RopLogon EcDoRpc_MAPI_REPL structure that the function returns
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_COMMON_VIEWS, EMSMDBP_DEFERRED_ACTION, EMSMDBP_DELETED_ITEMS, EMSMDBP_INBOX, emsmdbp_mailbox_provision(), emsmdbp_mailbox_provision_public_freebusy(), EMSMDBP_MAILBOX_ROOT, EMSMDBP_OUTBOX, EMSMDBP_SCHEDULE, EMSMDBP_SEARCH, EMSMDBP_SENT_ITEMS, EMSMDBP_SHORTCUTS, EMSMDBP_SPOOLER_QUEUE, EMSMDBP_TOP_INFORMATION_STORE, EMSMDBP_VIEWS, emsmdbp_context::oc_ctx, openchangedb_get_MailboxGuid(), openchangedb_get_MailboxReplica(), openchangedb_get_SystemFolderID(), emsmdbp_context::samdb_ctx, and emsmdbp_context::username.

Referenced by EcDoRpc_RopLogon().

◆ RopSetReceiveFolder()

static enum MAPISTATUS RopSetReceiveFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles 
)
static

EcDoRpc SetReceiveFolder (0x26) Rop Internals. This routine performs the SetReceiveFolder internals.

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

Referenced by RopGetReceiveFolder().


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/