Folder object routines and Rops. More...
#include "mapiproxy/dcesrv_mapiproxy.h"
#include "mapiproxy/libmapiproxy/libmapiproxy.h"
#include "mapiproxy/libmapiserver/libmapiserver.h"
#include "dcesrv_exchange_emsmdb.h"
Functions | |
static enum MAPISTATUS | DoDeleteSystemFolder (struct emsmdbp_context *emsmdbp_ctx, uint64_t parent_fid, uint64_t fid, uint8_t flags) |
_PUBLIC_ enum MAPISTATUS | EcDoRpc_RopCreateFolder (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 enum MAPISTATUS | EcDoRpc_RopCreateGenericFolder (struct emsmdbp_context *emsmdbp_ctx, struct mapi_handles *parent, struct SRow *aRow, enum FOLDER_FLAGS folderFlags, struct CreateFolder_repl *response) |
static enum MAPISTATUS | EcDoRpc_RopCreateSystemSpecialFolder (struct emsmdbp_context *emsmdbp_ctx, struct SRow *aRow, enum FOLDER_FLAGS folderFlags, uint64_t parentFolder, struct CreateFolder_repl *response) |
_PUBLIC_ enum MAPISTATUS | EcDoRpc_RopDeleteFolder (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_RopDeleteMessages (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_RopEmptyFolder (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_RopGetContentsTable (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_RopGetHierarchyTable (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_RopGetSearchCriteria (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_RopOpenFolder (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_RopSetSearchCriteria (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 enum MAPISTATUS | RopEmptyFolder_GenericFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EmptyFolder_req request, struct EmptyFolder_repl *response, struct mapi_handles *folder) |
static enum MAPISTATUS | RopOpenFolder_GenericFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct OpenFolder_req request, struct OpenFolder_repl *response, struct mapi_handles *parent) |
static enum MAPISTATUS | RopOpenFolder_SystemSpecialFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct OpenFolder_req request, struct OpenFolder_repl *response) |
Folder object routines and Rops.
static enum MAPISTATUS DoDeleteSystemFolder | ( | struct emsmdbp_context * | emsmdbp_ctx, |
uint64_t | parent_fid, | ||
uint64_t | fid, | ||
uint8_t | flags | ||
) | [static] |
References openchangedb_get_distinguishedName(), and emsmdbp_context::oc_ctx.
Referenced by EcDoRpc_RopDeleteFolder().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopCreateFolder | ( | 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 CreateFolder (0x1c) Rop. This operation creates a folder on the remote server.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the CreateFolder EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the CreateFolder EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References mapi_handles::handle, mapi_handles_search(), emsmdbp_context::handles_ctx, mapi_handles_get_private_data(), emsmdbp_object::type, EMSMDBP_OBJECT_FOLDER, emsmdbp_object::object, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, libmapiserver_ROP_request_to_properties(), emsmdbp_is_mapistore(), EcDoRpc_RopCreateSystemSpecialFolder(), EcDoRpc_RopCreateGenericFolder(), mapi_handles_add(), emsmdbp_object_folder_init(), mapi_handles_set_private_data(), and libmapiserver_RopCreateFolder_size().
Referenced by EcDoRpc_process_transaction().
static enum MAPISTATUS EcDoRpc_RopCreateGenericFolder | ( | struct emsmdbp_context * | emsmdbp_ctx, |
struct mapi_handles * | parent, | ||
struct SRow * | aRow, | ||
enum FOLDER_FLAGS | folderFlags, | ||
struct CreateFolder_repl * | response | ||
) | [static] |
References mapi_handles_get_private_data(), emsmdbp_object::object, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_object_folder::contextID, emsmdbp_context::mstore_ctx, openchangedb_get_new_folderID(), emsmdbp_context::oc_ctx, emsmdbp_object::type, EMSMDBP_OBJECT_FOLDER, emsmdbp_object_folder::mapistore_root, and openchangedb_get_distinguishedName().
Referenced by EcDoRpc_RopCreateFolder().
static enum MAPISTATUS EcDoRpc_RopCreateSystemSpecialFolder | ( | struct emsmdbp_context * | emsmdbp_ctx, |
struct SRow * | aRow, | ||
enum FOLDER_FLAGS | folderFlags, | ||
uint64_t | parentFolder, | ||
struct CreateFolder_repl * | response | ||
) | [static] |
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopDeleteFolder | ( | 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 DeleteFolder (0x1d) Rop. This operation deletes a folder on the remote server.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the DeleteFolder EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the DeleteFolder EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References mapi_handles::handle, mapi_handles_search(), emsmdbp_context::handles_ctx, mapi_handles_get_private_data(), emsmdbp_object::type, EMSMDBP_OBJECT_FOLDER, emsmdbp_object::object, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_object_folder::contextID, emsmdbp_is_mapistore(), DoDeleteSystemFolder(), emsmdbp_context::mstore_ctx, and libmapiserver_RopDeleteFolder_size().
Referenced by EcDoRpc_process_transaction().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopDeleteMessages | ( | 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 DeleteMessage (0x1e) Rop. This operation (soft) deletes a message on the server.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the DeleteMessage EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the DeleteMessage EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References mapi_handles_search(), emsmdbp_context::handles_ctx, mapi_handles_get_private_data(), emsmdbp_object::type, EMSMDBP_OBJECT_FOLDER, emsmdbp_is_mapistore(), emsmdbp_object::object, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_object_folder::contextID, emsmdbp_context::mstore_ctx, and libmapiserver_RopDeleteMessage_size().
Referenced by EcDoRpc_process_transaction().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopEmptyFolder | ( | 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 EmptyFolder (0x58) Rop. This operation removes the sub-folders and messages from a given parent folder.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the EmptyFolder EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the EmptyFolder EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References mapi_handles_search(), emsmdbp_context::handles_ctx, emsmdbp_is_mapistore(), RopEmptyFolder_GenericFolder(), and libmapiserver_RopEmptyFolder_size().
Referenced by EcDoRpc_process_transaction().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetContentsTable | ( | 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 GetContentsTable (0x05) Rop. This operation get the content table of a container.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetContentsTable EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the GetContentsTable EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References mapi_handles_search(), emsmdbp_context::handles_ctx, libmapiserver_RopGetContentsTable_size(), mapi_handles_get_private_data(), emsmdbp_object::type, EMSMDBP_OBJECT_FOLDER, emsmdbp_is_mapistore(), emsmdbp_context::mstore_ctx, mapi_handles_add(), mapi_handles::handle, emsmdbp_object_table_init(), mapi_handles_set_private_data(), and EMSMDBP_TABLE_MESSAGE_TYPE.
Referenced by EcDoRpc_process_transaction().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetHierarchyTable | ( | 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 GetHierarchyTable (0x04) Rop. This operation gets the subfolder hierarchy table for a folder.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetHierarchyTable EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the GetHierarchyTable EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References mapi_handles_search(), emsmdbp_context::handles_ctx, mapi_handles_get_private_data(), libmapiserver_RopGetHierarchyTable_size(), emsmdbp_object::type, EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_FOLDER, emsmdbp_is_mapistore(), openchangedb_get_folder_count(), emsmdbp_context::oc_ctx, emsmdbp_context::mstore_ctx, mapi_handles_add(), mapi_handles::handle, emsmdbp_object_table_init(), mapi_handles_set_private_data(), and EMSMDBP_TABLE_FOLDER_TYPE.
Referenced by EcDoRpc_process_transaction().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetSearchCriteria | ( | 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 GetSearchCriteria (0x31) Rop. This operation gets the search criteria for a search folder.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the GetSearchCriteria EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the GetSearchCriteria EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References libmapiserver_RopGetSearchCriteria_size().
Referenced by EcDoRpc_process_transaction().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopOpenFolder | ( | 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 OpenFolder (0x02) Rop. This operation opens an existing folder.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the OpenFolder EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the OpenFolder EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References emsmdbp_object::object, mapi_handles_search(), emsmdbp_context::handles_ctx, emsmdbp_is_mapistore(), RopOpenFolder_SystemSpecialFolder(), RopOpenFolder_GenericFolder(), libmapiserver_RopOpenFolder_size(), mapi_handles_add(), emsmdbp_object_folder_init(), mapi_handles_set_private_data(), and mapi_handles::handle.
Referenced by EcDoRpc_process_transaction().
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSetSearchCriteria | ( | 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 SetSearchCriteria (0x30) Rop. This operation sets the search criteria for a search folder.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
mapi_req | pointer to the SetSearchCriteria EcDoRpc_MAPI_REQ structure |
mapi_repl | pointer to the SetSearchCriteria EcDoRpc_MAPI_REPL structure |
handles | pointer to the MAPI handles array |
size | pointer to the mapi_response size to update |
References libmapiserver_RopSetSearchCriteria_size().
Referenced by EcDoRpc_process_transaction().
static enum MAPISTATUS RopEmptyFolder_GenericFolder | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct EmptyFolder_req | request, | ||
struct EmptyFolder_repl * | response, | ||
struct mapi_handles * | folder | ||
) | [static] |
static enum MAPISTATUS RopOpenFolder_GenericFolder | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct OpenFolder_req | request, | ||
struct OpenFolder_repl * | response, | ||
struct mapi_handles * | parent | ||
) | [static] |
static enum MAPISTATUS RopOpenFolder_SystemSpecialFolder | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct OpenFolder_req | request, | ||
struct OpenFolder_repl * | response | ||
) | [static] |
Open a System or Special folder object.
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
request | OpenFolder request |
response | pointer to the OpenFolder response |
Referenced by EcDoRpc_RopOpenFolder().
![]() ![]() ![]() |
This content is licensed under the Creative Commons Attribution ShareAlike License v. 3.0: http://creativecommons.org/licenses/by-sa/3.0/ |