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

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

Referenced by EcDoRpc_process_transaction().

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

Referenced by EcDoRpc_process_transaction().

_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

References libmapiserver_RopGetReceiveFolder_size(), and RopGetReceiveFolder().

Referenced by EcDoRpc_process_transaction().

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

Referenced by EcDoRpc_process_transaction().

_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_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, emsmdbp_object_mailbox::owner_username, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_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_mailbox_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopLogon_size(), mapi_handles_add(), mapi_handles_set_private_data(), emsmdbp_object::object, RopLogon_Mailbox(), and RopLogon_PublicFolder().

Referenced by EcDoRpc_process_transaction().

_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_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, emsmdbp_object_mailbox::owner_username, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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

Referenced by EcDoRpc_process_transaction().

_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_context::handles_ctx, mapi_handles_delete(), and emsmdbp_context::mstore_ctx.

Referenced by EcDoRpc_process_transaction().

_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

References libmapiserver_RopSetReceiveFolder_size(), and RopSetReceiveFolder().

Referenced by EcDoRpc_process_transaction().

static bool MessageClassIsValid ( const char *  MessageClass)
static
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_MAILBOX, emsmdbp_context::handles_ctx, emsmdbp_objects::mailbox, mapi_handles_get_private_data(), mapi_handles_search(), MessageClassIsValid(), emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_ReceiveFolder(), emsmdbp_object_mailbox::owner_username, and emsmdbp_object::type.

Referenced by EcDoRpc_RopGetReceiveFolder().

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

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

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_PF_EFORMSREGISTRY, EMSMDBP_PF_FREEBUSY, EMSMDBP_PF_IPMSUBTREE, EMSMDBP_PF_LOCALFREEBUSY, EMSMDBP_PF_LOCALOAB, EMSMDBP_PF_NONIPMSUBTREE, EMSMDBP_PF_OAB, EMSMDBP_PF_ROOT, emsmdbp_context::oc_ctx, openchangedb_get_PublicFolderID(), and openchangedb_get_PublicFolderReplica().

Referenced by EcDoRpc_RopLogon().

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

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

Referenced by EcDoRpc_RopSetReceiveFolder().


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/