Server-side store objects routines and Rops. More...
#include "mapiproxy/dcesrv_mapiproxy.h"
#include "mapiproxy/libmapiproxy/libmapiproxy.h"
#include "mapiproxy/libmapiserver/libmapiserver.h"
#include "dcesrv_exchange_emsmdb.h"
#include <string.h>
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) |
Server-side store objects routines and Rops.
_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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetReceiveFolder EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the GetReceiveFolder EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetStoreState EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the GetStoreState EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the SetMessageReadFlag EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the SetMessageReadFlag EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the Logon EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the Logon EcDoRpc_MAPI_REPL structure the function returns |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the LongTermIdFromId EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the LongTermIdFromId EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the ReadPerUserInformation EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the ReadPerUserInformation EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
request | pointer to the Release EcDoRpc_MAPI_REQ |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
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
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the SetReceiveFolder EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the SetReceiveFolder EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References libmapiserver_RopSetReceiveFolder_size(), and RopSetReceiveFolder().
Referenced by EcDoRpc_process_transaction().
|
static |
Referenced by RopGetReceiveFolder(), and RopSetReceiveFolder().
|
static |
EcDoRpc GetReceiveFolder (0x27) Rop Internals. This routine performs the GetReceiveFolder internals.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetReceiveFolder EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the GetReceiveFolder EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
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 |
Logs on a private mailbox
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the RopLogon EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the RopLogon EcDoRpc_MAPI_REPL structure the function returns |
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 |
Logs on a public folder store
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the RopLogon EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the RopLogon EcDoRpc_MAPI_REPL structure that the function returns |
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 |
EcDoRpc SetReceiveFolder (0x26) Rop Internals. This routine performs the SetReceiveFolder internals.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the SetReceiveFolder EcDoRpc_MAPI_REQ |
mapi_repl | pointer to the SetReceiveFolder EcDoRpc_MAPI_REPL |
handles | pointer to the MAPI handles array |
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().
![]() ![]() ![]() |
This content is licensed under the Creative Commons Attribution ShareAlike License v. 3.0: http://creativecommons.org/licenses/by-sa/3.0/ |