mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.h File Reference
#include "libmapi/libmapi.h"
#include "libmapi/libmapi_private.h"
#include "mapiproxy/libmapiproxy/libmapiproxy.h"
#include "mapiproxy/libmapistore/mapistore_errors.h"
#include "mapiproxy/libmapistore/mapistore.h"
#include <util/debug.h>

Data Structures

struct  emsmdbp_context
struct  emsmdbp_object
struct  emsmdbp_object_folder
struct  emsmdbp_object_mailbox
struct  emsmdbp_object_message
struct  emsmdbp_object_stream
struct  emsmdbp_object_table
union  emsmdbp_objects
struct  exchange_emsmdb_session

Defines

#define __BEGIN_DECLS
#define __END_DECLS
#define EMSMDB_PCMSPOLLMAX   60000
#define EMSMDB_PCRETRY   6
#define EMSMDB_PCRETRYDELAY   10000
#define EMSMDBP_COMMON_VIEWS   0xA
#define EMSMDBP_DEFERRED_ACTIONS   0x2
#define EMSMDBP_DELETED_ITEMS   0x9
#define EMSMDBP_INBOX   0x6
#define EMSMDBP_MAILBOX_ROOT   0x1
#define EMSMDBP_OUTBOX   0x7
#define EMSMDBP_PF_EFORMSREGISTRY   0x3
#define EMSMDBP_PF_FREEBUSY   0x4
#define EMSMDBP_PF_IPMSUBTREE   0x1
#define EMSMDBP_PF_LOCALEFORMS   0x6
#define EMSMDBP_PF_LOCALFREEBUSY   0x7
#define EMSMDBP_PF_LOCALOAB   0x8
#define EMSMDBP_PF_NONIPMSUBTREE   0x2
#define EMSMDBP_PF_OAB   0x5
#define EMSMDBP_PF_ROOT   0x0
#define EMSMDBP_SCHEDULE   0xB
#define EMSMDBP_SEARCH   0xC
#define EMSMDBP_SENT_ITEMS   0x8
#define EMSMDBP_SHORTCUTS   0xE
#define EMSMDBP_SPOOLER_QUEUE   0x3
#define EMSMDBP_TABLE_FOLDER_TYPE   0x1
#define EMSMDBP_TABLE_MESSAGE_TYPE   0x2
#define EMSMDBP_TODO_SEARCH   0x4
#define EMSMDBP_TOP_INFORMATION_STORE   0x5
#define EMSMDBP_VIEWS   0xD

Enumerations

enum  emsmdbp_object_type {
  EMSMDBP_OBJECT_UNDEF = 0x0, EMSMDBP_OBJECT_MAILBOX = 0x1, EMSMDBP_OBJECT_FOLDER = 0x2, EMSMDBP_OBJECT_MESSAGE = 0x3,
  EMSMDBP_OBJECT_TABLE = 0x4, EMSMDBP_OBJECT_STREAM = 0x5
}

Functions

enum MAPISTATUS EcDoRpc_RopCreateFolder (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopCreateMessage (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopDeleteFolder (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopDeleteMessages (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopDeleteProperties (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopEmptyFolder (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopFindRow (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetAddressTypes (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetAttachmentTable (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetContentsTable (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetHierarchyTable (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetPermissionsTable (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetPerUserGuid (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetPerUserLongTermIds (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetPropertiesSpecific (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetPropertyIdsFromNames (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetReceiveFolder (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetRulesTable (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetSearchCriteria (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetTransportFolder (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopLogon (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopModifyRecipients (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopModifyRules (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopOpenFolder (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopOpenMessage (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopOpenStream (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopOptionsData (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopQueryPosition (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopQueryRows (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopReadPerUserInformation (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopReadStream (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopRegisterNotification (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopRelease (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopReloadCachedInformation (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopRestrict (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSaveChangesMessage (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSeekRow (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSetColumns (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSetMessageReadFlag (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSetProperties (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSetReceiveFolder (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSetSearchCriteria (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSetSpooler (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSortTable (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSubmitMessage (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopWriteStream (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
bool emsmdbp_destructor (void *)
uint32_t emsmdbp_get_contextID (struct mapi_handles *)
const char * emsmdbp_getstr_type (struct emsmdbp_object *)
struct emsmdbp_contextemsmdbp_init (struct loadparm_context *, const char *, void *)
bool emsmdbp_is_mailboxstore (struct mapi_handles *)
bool emsmdbp_is_mapistore (struct mapi_handles *)
struct emsmdbp_objectemsmdbp_object_folder_init (TALLOC_CTX *, struct emsmdbp_context *, uint64_t, struct mapi_handles *)
struct mapi_handlesemsmdbp_object_get_folder_handle_by_fid (struct mapi_handles_context *, uint64_t)
struct emsmdbp_objectemsmdbp_object_init (TALLOC_CTX *, struct emsmdbp_context *)
struct emsmdbp_objectemsmdbp_object_mailbox_init (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, bool)
struct emsmdbp_objectemsmdbp_object_message_init (TALLOC_CTX *, struct emsmdbp_context *, uint64_t, struct mapi_handles *)
struct emsmdbp_objectemsmdbp_object_stream_init (TALLOC_CTX *, struct emsmdbp_context *, uint32_t, struct mapi_handles *)
struct emsmdbp_objectemsmdbp_object_table_init (TALLOC_CTX *, struct emsmdbp_context *, struct mapi_handles *)
void * emsmdbp_openchange_ldb_init (struct loadparm_context *)
enum MAPISTATUS emsmdbp_resolve_recipient (TALLOC_CTX *, struct emsmdbp_context *, char *, struct mapi_SPropTagArray *, struct RecipientRow *)
bool emsmdbp_verify_user (struct dcesrv_call_state *, struct emsmdbp_context *)
bool emsmdbp_verify_userdn (struct dcesrv_call_state *, struct emsmdbp_context *, const char *, struct ldb_message **)
__BEGIN_DECLS NTSTATUS samba_init_module (void)
struct ldb_context * samdb_connect (TALLOC_CTX *, struct tevent_context *, struct loadparm_context *, struct auth_session_info *, int)

Define Documentation

#define __BEGIN_DECLS
#define __END_DECLS
#define EMSMDB_PCMSPOLLMAX   60000
#define EMSMDB_PCRETRY   6
#define EMSMDB_PCRETRYDELAY   10000
#define EMSMDBP_COMMON_VIEWS   0xA

Referenced by RopLogon_Mailbox().

#define EMSMDBP_DEFERRED_ACTIONS   0x2

Referenced by RopLogon_Mailbox().

#define EMSMDBP_DELETED_ITEMS   0x9

Referenced by RopLogon_Mailbox().

#define EMSMDBP_INBOX   0x6

Referenced by RopLogon_Mailbox().

#define EMSMDBP_MAILBOX_ROOT   0x1

Referenced by RopLogon_Mailbox().

#define EMSMDBP_OUTBOX   0x7

Referenced by RopLogon_Mailbox().

#define EMSMDBP_PF_EFORMSREGISTRY   0x3

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_PF_FREEBUSY   0x4

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_PF_IPMSUBTREE   0x1

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_PF_LOCALEFORMS   0x6
#define EMSMDBP_PF_LOCALFREEBUSY   0x7

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_PF_LOCALOAB   0x8

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_PF_NONIPMSUBTREE   0x2

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_PF_OAB   0x5

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_PF_ROOT   0x0

Referenced by RopLogon_PublicFolder().

#define EMSMDBP_SCHEDULE   0xB

Referenced by RopLogon_Mailbox().

#define EMSMDBP_SEARCH   0xC

Referenced by RopLogon_Mailbox().

#define EMSMDBP_SENT_ITEMS   0x8

Referenced by RopLogon_Mailbox().

#define EMSMDBP_SHORTCUTS   0xE

Referenced by RopLogon_Mailbox().

#define EMSMDBP_SPOOLER_QUEUE   0x3

Referenced by RopLogon_Mailbox().

#define EMSMDBP_TODO_SEARCH   0x4

Referenced by RopLogon_Mailbox().

#define EMSMDBP_VIEWS   0xD

Referenced by RopLogon_Mailbox().


Enumeration Type Documentation

Enumerator:
EMSMDBP_OBJECT_UNDEF 
EMSMDBP_OBJECT_MAILBOX 
EMSMDBP_OBJECT_FOLDER 
EMSMDBP_OBJECT_MESSAGE 
EMSMDBP_OBJECT_TABLE 
EMSMDBP_OBJECT_STREAM 

Function Documentation

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the CreateFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the CreateFolder 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
Note:
We do not provide support for GhostInfo

References EcDoRpc_RopCreateGenericFolder(), EcDoRpc_RopCreateSystemSpecialFolder(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_folder_init(), emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_ROP_request_to_properties(), libmapiserver_RopCreateFolder_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopCreateMessage ( 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 CreateMessage (0x06) Rop. This operation creates a message object in the mailbox.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the CreateMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the CreateMessage 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_is_mapistore(), emsmdbp_object_get_folder_handle_by_fid(), emsmdbp_object_message_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopCreateMessage_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_context::oc_ctx, openchangedb_get_new_folderID(), and mapi_handles::parent_handle.

Referenced by EcDoRpc_process_transaction().

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteFolder 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_folder::contextID, DoDeleteSystemFolder(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopDeleteFolder_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteMessage 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_folder::contextID, emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_context::handles_ctx, libmapiserver_RopDeleteMessage_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopDeleteProperties ( 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 DeleteProperties (0x0b) Rop. This operation deletes property values for an object.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteProperties 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_RopDeleteProperties_size().

Referenced by EcDoRpc_process_transaction().

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the EmptyFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the EmptyFolder 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_is_mapistore(), emsmdbp_context::handles_ctx, libmapiserver_RopEmptyFolder_size(), mapi_handles_search(), and RopEmptyFolder_GenericFolder().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopFindRow ( 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 FindRow (0x4f) Rop. This operation moves the cursor to a row in a table that matches specific search criteria.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the FindRow EcDoRpc_MAPI_REQ structure
mapi_replpointer to the FindRow 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_TABLE, emsmdbp_object_table::folderID, emsmdbp_context::handles_ctx, libmapiserver_RopFindRow_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object_table::mapistore, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetAddressTypes ( 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 GetAddressTypes (0x49) Rop. This operation gets the valid address types (e.g. "SMTP", "X400", "EX")

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the AddressTypes EcDoRpc_MAPI_REQ
mapi_replpointer to the AddressTypes 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_RopGetAddressTypes_size(), mapiserver_get_org_dn(), emsmdbp_context::samdb_ctx, and emsmdbp_context::userLanguage.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetAttachmentTable ( 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 GetAttachmentTable (0x21) Rop. This operation gets the attachment table of a message.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetAttachmentTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetAttachmentTable 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 mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetAttachmentTable_size(), and mapi_handles_add().

Referenced by EcDoRpc_process_transaction().

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetContentsTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetContentsTable 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_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_table_init(), EMSMDBP_TABLE_MESSAGE_TYPE, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetContentsTable_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetHierarchyTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetHierarchyTable 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_is_mapistore(), EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_table_init(), EMSMDBP_TABLE_FOLDER_TYPE, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetHierarchyTable_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_context::oc_ctx, openchangedb_get_folder_count(), and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetPermissionsTable ( 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 GetPermissionsTable (0x3e) Rop. This operation get the permissions table of a folder.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPermissionsTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetPermissionsTable 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 mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetPermissionsTable_size(), and mapi_handles_add().

Referenced by EcDoRpc_process_transaction().

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

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

enum MAPISTATUS EcDoRpc_RopGetPropertiesSpecific ( 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 GetPropertiesSpecific (0x07) Rop. This operation retrieves from properties data from specified object.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPropertiesSpecific EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetPropertiesSpecific 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_is_mapistore(), EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, emsmdbp_objects::folder, emsmdbp_context::handles_ctx, libmapiserver_RopGetPropertiesSpecific_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object_folder::mapistore_root, emsmdbp_object::object, mapi_handles::private_data, RopGetPropertiesSpecific_Mailbox(), RopGetPropertiesSpecific_mapistore(), RopGetPropertiesSpecific_SystemSpecialFolder(), and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetPropertyIdsFromNames ( 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 GetPropertyIdsFromNames (0x56) Rop. This operation gets property IDs for specified property names.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPropertyIdsFromNames EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetPropertyIdsFromNames 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_RopGetPropertyIdsFromNames_size(), and emsmdbp_context::mstore_ctx.

Referenced by EcDoRpc_process_transaction().

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

enum MAPISTATUS EcDoRpc_RopGetRulesTable ( 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 GetRulesTable (0x3f) Rop. This operation gets the rules table of a folder.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetRulesTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetRulesTable 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_FOLDER, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetRulesTable_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetSearchCriteria EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetSearchCriteria 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_RopGetSearchCriteria_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetTransportFolder ( 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 GetTransportFolder (0x6d) ROP.

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

Referenced by EcDoRpc_process_transaction().

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

enum MAPISTATUS EcDoRpc_RopModifyRecipients ( 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 ModifyRecipients (0x0e) Rop. This operation modifies an existing message to add recipients (TO, CC, BCC).

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ModifyRecipients EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ModifyRecipients 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_RopModifyRecipients_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopModifyRules ( 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 ModifyRules (0x41) Rop. This operation modifies the rules associated with a folder

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ModifyRules EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ModifyRules 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_FOLDER, emsmdbp_context::handles_ctx, libmapiserver_RopModifyRules_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenFolder 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_is_mapistore(), emsmdbp_object_folder_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopOpenFolder_size(), mapi_handles_add(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, RopOpenFolder_GenericFolder(), and RopOpenFolder_SystemSpecialFolder().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopOpenMessage ( 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 OpenMessage (0x03) Rop. This operation opens an existing message in a mailbox.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenMessage 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_folder::contextID, emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_folder_init(), emsmdbp_object_get_folder_handle_by_fid(), EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_message_init(), emsmdbp_resolve_recipient(), emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetHierarchyTable_size(), libmapiserver_RopOpenMessage_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, mapi_handles::parent_handle, emsmdbp_object::type, and emsmdbp_context::username.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopOpenStream ( 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 OpenStream (0x2b) Rop. This operation opens a property for streaming access.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenStream 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_stream_init(), emsmdbp_context::handles_ctx, libmapiserver_RopOpenStream_size(), mapi_handles_add(), mapi_handles_search(), and mapi_handles_set_private_data().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopOptionsData ( 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 OptionsData (0x6f) Rop. This doesn't really do anything, but could be used to provide HelpData if we wanted to do something like that later.

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

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopQueryPosition ( 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 QueryPosition (0x17) Rop. This operation returns the location of cursor in the table.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the QueryPosition EcDoRpc_MAPI_REQ structure
mapi_replpointer to the QueryPosition 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_table::denominator, EMSMDBP_OBJECT_TABLE, emsmdbp_object_table::folderID, emsmdbp_context::handles_ctx, libmapiserver_RopQueryPosition_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object_table::numerator, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopQueryRows ( 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 QueryRows (0x15) Rop. This operation retrieves rows from a table.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the QueryRows EcDoRpc_MAPI_REQ structure
mapi_replpointer to the QueryRows EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update

References emsmdbp_object_table::contextID, emsmdbp_object_table::denominator, EMSMDBP_OBJECT_TABLE, emsmdbp_object_table::folderID, emsmdbp_context::handles_ctx, libmapiserver_push_property(), libmapiserver_RopQueryRows_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object_table::mapistore, emsmdbp_context::mstore_ctx, emsmdbp_object_table::numerator, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_table_property(), emsmdbp_object_table::prop_count, emsmdbp_object_table::properties, emsmdbp_context::szDisplayName, emsmdbp_object::type, and emsmdbp_object_table::ulType.

Referenced by EcDoRpc_process_transaction().

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

enum MAPISTATUS EcDoRpc_RopReadStream ( 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 ReadStream (0x2c) Rop. This operation reads bytes from a stream.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ReadStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ReadStream 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_STREAM, emsmdbp_context::handles_ctx, libmapiserver_RopReadStream_size(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopRegisterNotification ( 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 RegisterNotification (0x29) Rop. This operation subscribes for specified notifications on the server and returns a handle of the subscription to the client.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the RegisterNotification EcDoRpc_MAPI_REQ structure
mapi_replpointer to the RegisterNotification 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 mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopRegisterNotification_size(), and mapi_handles_add().

Referenced by EcDoRpc_process_transaction().

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, and mapi_handles_delete().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopReloadCachedInformation ( 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 ReloadCachedInformation (0x10) Rop. This operation gets message and recipient information from a message.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ReloadCachedInformation EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ReloadCachedInformation 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_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_resolve_recipient(), emsmdbp_context::handles_ctx, libmapiserver_RopReloadCachedInformation_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopRestrict ( 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 SortTable (0x14) Rop. This operation establishes a filter for a table.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the Restrict EcDoRpc_MAPI_REQ structure
mapi_replpointer to the Restrict 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_RopRestrict_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSaveChangesMessage ( 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 SaveChangesMessage (0x0c) Rop. This operation operation commits the changes made to a message.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SaveChangesMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SaveChangesMessage 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_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopSaveChangesMessage_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSeekRow ( 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 SeekRow (0x18) Rop. This operation moves the cursor to a specific position in a table.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SeekRow EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SeekRow 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_RopSeekRow_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSetColumns ( 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 SetColumns (0x12) Rop. This operation sets the properties to be included in the table.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetColumns EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetColumns 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_context::handles_ctx, libmapiserver_RopSetColumns_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_table::prop_count, and emsmdbp_object_table::properties.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSetMessageReadFlag ( 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 SetMessageReadFlag (0x11) 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 libmapiserver_RopSetMessageReadFlag_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSetProperties ( 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 SetProperties (0x0a) Rop. This operation sets property values for an object.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetProperties 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_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopSetProperties_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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

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.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetSearchCriteria EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetSearchCriteria 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_RopSetSearchCriteria_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSetSpooler ( 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 SetSpooler (0x47) Rop. This operation informs the server that the client intends to act as a mail spooler

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdbp provider context
mapi_reqpointer to the SeSpooler EcDoRpc_MAPI_REQ
mapi_replpointer to the SetSpooler 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_RopSetSpooler_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSortTable ( 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 SortTable (0x13) Rop. This operation defines the order of rows of a table based on sort criteria.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SortTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SortTable 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_RopSortTable_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSubmitMessage ( 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 SubmitMessage (0x32) Rop. This operation marks a message as being ready to send (subject to some flags).

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SubmitMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SubmitMessage 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_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopSubmitMessage_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopWriteStream ( 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 WriteStream (0x2d) Rop. This operation writes bytes to a stream.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the WriteStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the WriteStream 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_STREAM, emsmdbp_context::handles_ctx, libmapiserver_RopWriteStream_size(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

bool emsmdbp_destructor ( void *  )
uint32_t emsmdbp_get_contextID ( struct mapi_handles handles)

Return the contextID associated to a handle

Parameters:
handlespointer to the MAPI handle to lookup
Returns:
contextID value on success, otherwise -1

References EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_MESSAGE, EMSMDBP_OBJECT_STREAM, mapi_handles_get_private_data(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCreateMessage(), emsmdbp_object_folder_init(), and emsmdbp_object_stream_init().

struct emsmdbp_context* emsmdbp_init ( struct loadparm_context *  lp_ctx,
const char *  username,
void *  ldb_ctx 
) [read]

Initialize the EMSMDBP context and open connections to Samba databases.

Parameters:
lp_ctxpointer to the loadparm_context
usernameaccount name for current session
ldb_ctxpointer to the openchange dispatcher ldb database
Returns:
Allocated emsmdbp_context pointer on success, otherwise NULL

References emsmdbp_mapi_handles_destructor(), emsmdbp_mapi_store_destructor(), emsmdbp_context::handles_ctx, emsmdbp_context::lp_ctx, mapi_handles_init(), emsmdbp_context::mem_ctx, emsmdbp_context::mstore_ctx, emsmdbp_context::oc_ctx, samdb_connect(), and emsmdbp_context::samdb_ctx.

Referenced by dcesrv_EcDoConnect(), and dcesrv_EcDoConnectEx().

bool emsmdbp_is_mailboxstore ( struct mapi_handles handles)

Convenient function to determine whether specified mapi_handles refers to object within mailbox or public folders store.

Parameters:
handlespointer to the MAPI handle to lookup
Returns:
true if parent is within mailbox store, otherwise false

References EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, mapi_handles_get_private_data(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by emsmdbp_object_folder_init().

struct emsmdbp_object* emsmdbp_object_folder_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
uint64_t  folderID,
struct mapi_handles parent 
) [read]

Initialize a folder object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
folderIDthe folder identifier
parenthandle to the parent folder for this folder
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_folder::contextID, emsmdbp_get_contextID(), emsmdbp_is_mailboxstore(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_init(), emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_context::login_user, emsmdbp_object_folder::mailboxstore, emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_mapistoreURI(), and emsmdbp_context::username.

Referenced by EcDoRpc_RopCreateFolder(), EcDoRpc_RopOpenFolder(), and EcDoRpc_RopOpenMessage().

struct mapi_handles* emsmdbp_object_get_folder_handle_by_fid ( struct mapi_handles_context handles_ctx,
uint64_t  fid 
) [read]

Retrieve the folder handle matching given fid

Parameters:
handles_ctxpointer to the handles context
fidfolder identifier to lookup
Returns:
pointer to valid mapi_handles structure on success, otherwise NULL

References EMSMDBP_OBJECT_FOLDER, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles::handle, mapi_handles_context::handles, mapi_handles_get_private_data(), mapi_handles::next, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCreateMessage(), and EcDoRpc_RopOpenMessage().

struct emsmdbp_object* emsmdbp_object_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx 
) [read]

Initialize an emsmdbp_object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_destructor(), EMSMDBP_OBJECT_UNDEF, emsmdbp_context::mstore_ctx, and emsmdbp_object::object.

Referenced by emsmdbp_object_folder_init(), emsmdbp_object_mailbox_init(), emsmdbp_object_message_init(), emsmdbp_object_stream_init(), and emsmdbp_object_table_init().

struct emsmdbp_object* emsmdbp_object_mailbox_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  request,
bool  mailboxstore 
) [read]

Initialize a mailbox object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
requestpointer to the Logon MAPI request
mailboxstoreboolean which specifies whether the mailbox object is a PF store or a private mailbox store
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_init(), EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_mailbox::folderID, emsmdbp_objects::mailbox, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_PublicFolderID(), openchangedb_get_SystemFolderID(), emsmdbp_object_mailbox::owner_EssDN, emsmdbp_object_mailbox::owner_Name, emsmdbp_context::samdb_ctx, and emsmdbp_context::szUserDN.

Referenced by EcDoRpc_RopLogon().

struct emsmdbp_object* emsmdbp_object_message_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
uint64_t  messageID,
struct mapi_handles parent 
) [read]

Initialize a message object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
messageIDthe message identifier
parentpointer to the parent MAPI handle
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_folder::contextID, emsmdbp_is_mapistore(), emsmdbp_object_init(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles_get_private_data(), emsmdbp_objects::message, emsmdbp_context::mstore_ctx, and emsmdbp_object::object.

Referenced by EcDoRpc_RopCreateMessage(), and EcDoRpc_RopOpenMessage().

struct emsmdbp_object* emsmdbp_object_stream_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
uint32_t  property,
struct mapi_handles parent 
) [read]

Initialize a stream object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider cotnext
propertythe stream property identifier
parentpointer to the parent MAPI handle

References emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_init(), EMSMDBP_OBJECT_STREAM, mapi_handles_get_private_data(), emsmdbp_object::object, and emsmdbp_objects::stream.

Referenced by EcDoRpc_RopOpenStream().

struct emsmdbp_object* emsmdbp_object_table_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct mapi_handles parent 
) [read]

Initialize a table object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
parentpointer to the parent MAPI handle
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_folder::contextID, emsmdbp_is_mapistore(), emsmdbp_object_init(), EMSMDBP_OBJECT_TABLE, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles_get_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_objects::table.

Referenced by EcDoRpc_RopGetContentsTable(), and EcDoRpc_RopGetHierarchyTable().

void* emsmdbp_openchange_ldb_init ( struct loadparm_context *  lp_ctx)

Open openchange.ldb database

Parameters:
lp_ctxpointer on the loadparm_context
Note:
This function is just a wrapper over mapiproxy_server_openchange_ldb_init
Returns:
Allocated LDB context on success, otherwise NULL

References mapiproxy_server_openchange_ldb_init().

Referenced by dcesrv_exchange_emsmdb_init().

enum MAPISTATUS emsmdbp_resolve_recipient ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
char *  recipient,
struct mapi_SPropTagArray *  properties,
struct RecipientRow *  row 
)

Resolve a recipient and build the associated RecipientRow structure

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the EMSMDBP context
recipientpointer to the recipient string
propertiesarray of properties to lookup for a recipient
rowthe RecipientRow to fill in
Note:
This is a very preliminary implementation with a lot of pseudo-hardcoded things. Lot of work is required to make this function generic and to cover all different cases
Returns:
Allocated RecipientRow on success, otherwise NULL

References libmapiserver_push_property(), and emsmdbp_context::samdb_ctx.

Referenced by EcDoRpc_RopOpenMessage(), and EcDoRpc_RopReloadCachedInformation().

bool emsmdbp_verify_user ( struct dcesrv_call_state *  dce_call,
struct emsmdbp_context emsmdbp_ctx 
)

Check if the authenticated user belongs to the Exchange organization and is enabled

Parameters:
dce_callpointer to the session context
emsmdbp_ctxpointer to the EMSMDBP context
Returns:
true on success, otherwise false

References emsmdbp_context::samdb_ctx, and emsmdbp_context::username.

Referenced by dcesrv_EcDoConnect(), and dcesrv_EcDoConnectEx().

bool emsmdbp_verify_userdn ( struct dcesrv_call_state *  dce_call,
struct emsmdbp_context emsmdbp_ctx,
const char *  legacyExchangeDN,
struct ldb_message **  msg 
)

Check if the user record which legacyExchangeDN points to belongs to the Exchange organization and is enabled

Parameters:
dce_callpointer to the session context
emsmdbp_ctxpointer to the EMSMDBP context
legacyExchangeDNpointer to the userDN to lookup
msgpointer on pointer to the LDB message matching the record
Note:
Users can set msg to NULL if they do not intend to retrieve the message
Returns:
true on success, otherwise false

References emsmdbp_context::samdb_ctx.

Referenced by dcesrv_EcDoConnect(), and dcesrv_EcDoConnectEx().

__BEGIN_DECLS NTSTATUS samba_init_module ( void  )

Register mapiproxy dynamic shared object modules

This function registers mapiproxy modules located

Entry point of mapiproxy dynamic shared object.

This function first registers exchange endpoints and ndr tables, then attempts to register the mapiproxy interface.

Returns:
NT_STATUS_OK on success, otherwise NT_STATUS_UNSUCCESSFUL;

Entry point for the pack mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the cache mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the downgrade mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Register mapiproxy dynamic shared object modules

This function registers mapiproxy modules located

Entry point of mapiproxy dynamic shared object.

This function first registers exchange endpoints and ndr tables, then attempts to register the mapiproxy interface.

Returns:
NT_STATUS_OK on success, otherwise NT_STATUS_UNSUCCESSFUL;

Entry point for the pack mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the cache mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the downgrade mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the pack mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the default OpenChange EMSMDB server

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the default OpenChange NSPI server

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the default OpenChange RFR server

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error
struct ldb_context* samdb_connect ( TALLOC_CTX *  ,
struct tevent_context *  ,
struct loadparm_context *  ,
struct auth_session_info *  ,
int   
) [read]

Referenced by emsabp_init(), and emsmdbp_init().


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/