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.h"
#include "mapiproxy/libmapistore/mapistore_errors.h"
#include <tevent.h>
#include <util/debug.h>
#include <inttypes.h>

Data Structures

struct  emsmdbp_context
struct  emsmdbp_object
struct  emsmdbp_object_attachment
struct  emsmdbp_object_folder
struct  emsmdbp_object_ftcontext
struct  emsmdbp_object_mailbox
struct  emsmdbp_object_message
struct  emsmdbp_object_message_freebusy_properties
struct  emsmdbp_object_stream
struct  emsmdbp_object_subscription
struct  emsmdbp_object_synccontext
struct  emsmdbp_object_table
union  emsmdbp_objects
struct  emsmdbp_special_folder
struct  emsmdbp_stream
struct  emsmdbp_stream_data
struct  emsmdbp_syncconfigure_request
struct  exchange_emsmdb_session

Defines

#define EMSMDB_PCMSPOLLMAX   60000
#define EMSMDB_PCRETRY   6
#define EMSMDB_PCRETRYDELAY   10000

Enumerations

enum  emsmdbp_mailbox_systemidx {
  EMSMDBP_MAILBOX_ROOT = 1, EMSMDBP_DEFERRED_ACTION, EMSMDBP_SPOOLER_QUEUE, EMSMDBP_COMMON_VIEWS,
  EMSMDBP_SCHEDULE, EMSMDBP_SEARCH, EMSMDBP_VIEWS, EMSMDBP_SHORTCUTS,
  EMSMDBP_TOP_INFORMATION_STORE, EMSMDBP_INBOX, EMSMDBP_OUTBOX, EMSMDBP_SENT_ITEMS,
  EMSMDBP_DELETED_ITEMS, EMSMDBP_MAX_MAILBOX_SYSTEMIDX
}
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, EMSMDBP_OBJECT_ATTACHMENT = 0x6, EMSMDBP_OBJECT_SUBSCRIPTION = 0x7,
  EMSMDBP_OBJECT_FTCONTEXT = 0x8, EMSMDBP_OBJECT_SYNCCONTEXT = 0x9
}
enum  emsmdbp_pf_systemidx {
  EMSMDBP_PF_ROOT = 1, EMSMDBP_PF_IPMSUBTREE, EMSMDBP_PF_NONIPMSUBTREE, EMSMDBP_PF_EFORMSREGISTRY,
  EMSMDBP_PF_FREEBUSY, EMSMDBP_PF_OAB, EMSMDBP_PF_LOCALEFORMS, EMSMDBP_PF_LOCALFREEBUSY,
  EMSMDBP_PF_LOCALOAB, EMSMDBP_MAX_PF_SYSTEMIDX
}

Functions

enum MAPISTATUS EcDoRpc_RopCommitStream (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopCopyTo (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopCreateAttach (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
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_RopDeletePropertiesNoReplicate (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_RopFastTransferSourceCopyTo (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopFastTransferSourceGetBuffer (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_RopGetLocalReplicaIds (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetNamesFromIDs (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_RopGetPropertiesAll (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetPropertiesList (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_RopGetStoreState (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopGetStreamSize (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_RopIdFromLongTermId (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_RopLongTermIdFromId (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopModifyPermissions (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_RopMoveCopyMessages (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopOpenAttach (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopOpenEmbeddedMessage (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_RopRemoveAllRecipients (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopResetTable (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_RopSaveChangesAttachment (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_RopSeekStream (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_RopSetLocalReplicaMidsetDeleted (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_RopSetStreamSize (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_RopSyncConfigure (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncGetTransferState (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncImportDeletes (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncImportHierarchyChange (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncImportMessageChange (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncImportMessageMove (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncImportReadStateChanges (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncOpenCollector (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamBegin (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamContinue (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamEnd (TALLOC_CTX *, struct emsmdbp_context *, struct EcDoRpc_MAPI_REQ *, struct EcDoRpc_MAPI_REPL *, uint32_t *, uint16_t *)
enum MAPISTATUS EcDoRpc_RopTransportSend (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 *)
void emsmdbp_fill_row_blob (TALLOC_CTX *, struct emsmdbp_context *, uint8_t *, DATA_BLOB *, struct SPropTagArray *, void **, enum MAPISTATUS *, bool *)
void emsmdbp_fill_table_row_blob (TALLOC_CTX *, struct emsmdbp_context *, DATA_BLOB *, uint16_t, enum MAPITAGS *, void **, enum MAPISTATUS *)
enum mapistore_error emsmdbp_folder_delete (struct emsmdbp_context *, struct emsmdbp_object *, uint64_t, uint8_t)
int emsmdbp_folder_get_folder_count (struct emsmdbp_context *, struct emsmdbp_object *, uint32_t *)
struct emsmdbp_objectemsmdbp_folder_open_table (TALLOC_CTX *, struct emsmdbp_object *, uint32_t, uint32_t)
uint32_t emsmdbp_get_contextID (struct emsmdbp_object *)
int emsmdbp_get_fid_from_uri (struct emsmdbp_context *, const char *, uint64_t *)
char * emsmdbp_get_owner (struct emsmdbp_object *object)
int emsmdbp_get_uri_from_fid (TALLOC_CTX *, struct emsmdbp_context *, uint64_t, char **)
const char * emsmdbp_getstr_type (struct emsmdbp_object *)
int emsmdbp_guid_to_replid (struct emsmdbp_context *, const char *username, const struct GUID *, uint16_t *)
struct emsmdbp_contextemsmdbp_init (struct loadparm_context *, const char *, void *)
bool emsmdbp_is_mailboxstore (struct emsmdbp_object *)
bool emsmdbp_is_mapistore (struct emsmdbp_object *)
enum MAPISTATUS emsmdbp_mailbox_provision (struct emsmdbp_context *, const char *)
enum MAPISTATUS emsmdbp_mailbox_provision_public_freebusy (struct emsmdbp_context *, const char *)
struct emsmdbp_objectemsmdbp_object_attachment_init (TALLOC_CTX *, struct emsmdbp_context *, uint64_t, struct emsmdbp_object *)
int emsmdbp_object_copy_properties (struct emsmdbp_context *, struct emsmdbp_object *, struct emsmdbp_object *, struct SPropTagArray *, bool)
enum MAPISTATUS emsmdbp_object_create_folder (struct emsmdbp_context *, struct emsmdbp_object *, TALLOC_CTX *, uint64_t, struct SRow *, struct emsmdbp_object **)
struct emsmdbp_objectemsmdbp_object_folder_init (TALLOC_CTX *, struct emsmdbp_context *, uint64_t, struct emsmdbp_object *)
struct emsmdbp_objectemsmdbp_object_ftcontext_init (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *)
int emsmdbp_object_get_available_properties (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, struct SPropTagArray **)
enum mapistore_error emsmdbp_object_get_fid_by_name (struct emsmdbp_context *, struct emsmdbp_object *, const char *, uint64_t *)
void ** emsmdbp_object_get_properties (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, struct SPropTagArray *, enum MAPISTATUS **)
struct emsmdbp_stream_dataemsmdbp_object_get_stream_data (struct emsmdbp_object *, enum MAPITAGS)
struct emsmdbp_objectemsmdbp_object_init (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *parent_object)
struct emsmdbp_objectemsmdbp_object_mailbox_init (TALLOC_CTX *, struct emsmdbp_context *, const char *, bool)
struct emsmdbp_objectemsmdbp_object_message_init (TALLOC_CTX *, struct emsmdbp_context *, uint64_t, struct emsmdbp_object *)
enum mapistore_error emsmdbp_object_message_open (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, uint64_t, uint64_t, bool, struct emsmdbp_object **, struct mapistore_message **)
struct emsmdbp_objectemsmdbp_object_message_open_attachment_table (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *)
enum mapistore_error emsmdbp_object_open_folder (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, uint64_t, struct emsmdbp_object **)
enum mapistore_error emsmdbp_object_open_folder_by_fid (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, uint64_t, struct emsmdbp_object **)
int emsmdbp_object_set_properties (struct emsmdbp_context *, struct emsmdbp_object *, struct SRow *)
int emsmdbp_object_stream_commit (struct emsmdbp_object *)
struct emsmdbp_objectemsmdbp_object_stream_init (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *)
struct emsmdbp_objectemsmdbp_object_subscription_init (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *)
struct emsmdbp_objectemsmdbp_object_synccontext_init (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *)
int emsmdbp_object_table_get_available_properties (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, struct SPropTagArray **)
void ** emsmdbp_object_table_get_row_props (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *, uint32_t, enum mapistore_query_type, enum MAPISTATUS **)
struct emsmdbp_objectemsmdbp_object_table_init (TALLOC_CTX *, struct emsmdbp_context *, struct emsmdbp_object *)
void * emsmdbp_openchange_ldb_init (struct loadparm_context *)
int emsmdbp_replid_to_guid (struct emsmdbp_context *, const char *username, const uint16_t, struct GUID *)
enum MAPISTATUS emsmdbp_resolve_recipient (TALLOC_CTX *, struct emsmdbp_context *, char *, struct mapi_SPropTagArray *, struct RecipientRow *)
int emsmdbp_source_key_from_fmid (TALLOC_CTX *, struct emsmdbp_context *, const char *username, uint64_t, struct Binary_r **)
struct emsmdbp_stream_dataemsmdbp_stream_data_from_value (TALLOC_CTX *, enum MAPITAGS, void *value)
DATA_BLOB emsmdbp_stream_read_buffer (struct emsmdbp_stream *, uint32_t)
void emsmdbp_stream_write_buffer (TALLOC_CTX *, struct emsmdbp_stream *, DATA_BLOB)
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)

Variables

struct GUID *const MagicGUIDp

Define Documentation

#define EMSMDB_PCMSPOLLMAX   60000
#define EMSMDB_PCRETRY   6
#define EMSMDB_PCRETRYDELAY   10000

Enumeration Type Documentation

Enumerator:
EMSMDBP_MAILBOX_ROOT 
EMSMDBP_DEFERRED_ACTION 
EMSMDBP_SPOOLER_QUEUE 
EMSMDBP_COMMON_VIEWS 
EMSMDBP_SCHEDULE 
EMSMDBP_SEARCH 
EMSMDBP_VIEWS 
EMSMDBP_SHORTCUTS 
EMSMDBP_TOP_INFORMATION_STORE 
EMSMDBP_INBOX 
EMSMDBP_OUTBOX 
EMSMDBP_SENT_ITEMS 
EMSMDBP_DELETED_ITEMS 
EMSMDBP_MAX_MAILBOX_SYSTEMIDX 
Enumerator:
EMSMDBP_OBJECT_UNDEF 
EMSMDBP_OBJECT_MAILBOX 
EMSMDBP_OBJECT_FOLDER 
EMSMDBP_OBJECT_MESSAGE 
EMSMDBP_OBJECT_TABLE 
EMSMDBP_OBJECT_STREAM 
EMSMDBP_OBJECT_ATTACHMENT 
EMSMDBP_OBJECT_SUBSCRIPTION 
EMSMDBP_OBJECT_FTCONTEXT 
EMSMDBP_OBJECT_SYNCCONTEXT 
Enumerator:
EMSMDBP_PF_ROOT 
EMSMDBP_PF_IPMSUBTREE 
EMSMDBP_PF_NONIPMSUBTREE 
EMSMDBP_PF_EFORMSREGISTRY 
EMSMDBP_PF_FREEBUSY 
EMSMDBP_PF_OAB 
EMSMDBP_PF_LOCALEFORMS 
EMSMDBP_PF_LOCALFREEBUSY 
EMSMDBP_PF_LOCALOAB 
EMSMDBP_MAX_PF_SYSTEMIDX 

Function Documentation

enum MAPISTATUS EcDoRpc_RopCommitStream ( 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 CommitStream (0x5d) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_STREAM, emsmdbp_object_stream_commit(), emsmdbp_context::handles_ctx, libmapiserver_RopCommitStream_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_stream::read_write, emsmdbp_objects::stream, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopCopyTo ( 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 CopyTo (0x39) Rop. This operation copy messages from one folder to another.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_copy_properties(), emsmdbp_context::handles_ctx, libmapiserver_RopCopyTo_size(), mapi_handles_get_private_data(), mapi_handles_search(), and mapi_handles::private_data.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopCreateAttach ( 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 CreateAttach (0x23) Rop. This operation open an attachment from the message handle.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the CreateAttach EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the CreateAttach EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_attachment_init(), EMSMDBP_OBJECT_MESSAGE, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopCreateAttach_size(), mapi_handles_add(), mapi_handles_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_objects::message, emsmdbp_object_message::messageID, emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error
Note:
We do not provide support for GhostInfo

References emsmdbp_object_create_folder(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_get_fid_by_name(), EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_open_folder_by_fid(), 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_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_new_changeNumber(), openchangedb_get_new_folderID(), emsmdbp_object::parent_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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the CreateMessage EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the CreateMessage EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_message_init(), emsmdbp_object_open_folder_by_fid(), emsmdbp_object_set_properties(), entryid_set_AB_EntryID(), emsmdbp_context::handles_ctx, libmapiserver_RopCreateMessage_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_objects::message, emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_new_folderID(), openchangedb_message_create(), emsmdbp_object_message::read_write, emsmdbp_context::szDisplayName, and emsmdbp_context::szUserDN.

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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_folder_delete(), EMSMDBP_OBJECT_FOLDER, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopDeleteFolder_size(), mapi_handles_get_private_data(), mapi_handles_search(), 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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_context::handles_ctx, libmapiserver_RopDeleteMessage_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::parent_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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer 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_RopDeletePropertiesNoReplicate ( 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 DeletePropertiesNoReplicate (0x7a) Rop. deletes property values from an object without invoking replication.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the DeletePropertiesNoReplicate EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the DeletePropertiesNoReplicate EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopDeletePropertiesNoReplicate_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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_is_mapistore(), emsmdbp_context::handles_ctx, libmapiserver_RopEmptyFolder_size(), mapi_handles_get_private_data(), mapi_handles_search(), and RopEmptyFolder_GenericFolder().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopFastTransferSourceCopyTo ( 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_RopFastTransferSourceCopyTo (0x4d) Rop. This operation initializes a FastTransfer operation to download content from a given messaging object and its descendant subobjects.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the EcDoRpc_RopFastTransferSourceCopyTo EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the EcDoRpc_RopFastTransferSourceCopyTo EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_ftcontext_init(), emsmdbp_object_get_available_properties(), emsmdbp_object_get_properties(), emsmdbp_context::handles_ctx, libmapiserver_RopFastTransferSourceCopyTo_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, oxcfxics_ndr_push_properties(), and emsmdbp_object::parent_object.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopFastTransferSourceGetBuffer ( 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_RopFastTransferSourceGetBuffer (0x4e) Rop. This operation downloads the next portion of a FastTransfer stream that is produced by a previously configured download operation.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the FastTransferSourceGetBuffer EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the FastTransferSourceGetBuffer EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, emsmdbp_get_owner(), EMSMDBP_OBJECT_FTCONTEXT, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_stream_read_buffer(), emsmdbp_objects::ftcontext, emsmdbp_context::handles_ctx, libmapiserver_RopFastTransferSourceGetBuffer_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, oxcfxics_prepare_synccontext_with_folderChange(), oxcfxics_prepare_synccontext_with_messageChange(), emsmdbp_stream::position, emsmdbp_object_ftcontext::stream, and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the FindRow EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the FindRow EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_TABLE, emsmdbp_object_table_get_row_props(), emsmdbp_context::handles_ctx, libmapiserver_push_property(), libmapiserver_RopFindRow_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, openchangedb_table_set_restrictions(), emsmdbp_object_table::prop_count, emsmdbp_object::type, and emsmdbp_object_table::ulType.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the AddressTypes EcDoRpc_MAPI_REQ
mapi_repl pointer to the AddressTypes EcDoRpc_MAPI_REPL
handles pointer to the MAPI handles array
size pointer 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetAttachmentTable EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetAttachmentTable EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_MESSAGE, emsmdbp_object_message_open_attachment_table(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetAttachmentTable_size(), mapi_handles_add(), mapi_handles_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), and emsmdbp_object::type.

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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_folder_open_table(), EMSMDBP_OBJECT_FOLDER, 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, emsmdbp_object::parent_object, and emsmdbp_context::username.

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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_folder_open_table(), EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, 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_object::parent_object, and emsmdbp_context::username.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetLocalReplicaIds ( 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_RopGetLocalReplicaIds (0x7f) Rop. This operation reserves a range of IDs to be used by a local replica.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetLocalReplicaIds EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetLocalReplicaIds EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

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

Referenced by EcDoRpc_process_transaction().

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

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetNamesFromIDs EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetNamesFromIDs EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetNamesFromIDs_size(), and emsmdbp_context::mstore_ctx.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetPermissionsTable EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetPermissionsTable EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_folder_open_table(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_table_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetPermissionsTable_size(), mapi_handles_add(), mapi_handles_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, emsmdbp_object::parent_object, and emsmdbp_object::type.

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_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
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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetPerUserLongTermIds_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetPropertiesAll ( 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 GetPropertiesAll (0x08) Rop. This operation gets all the property values for an object.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetPropertiesAll EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetPropertiesAll EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_get_available_properties(), emsmdbp_object_get_properties(), emsmdbp_context::handles_ctx, libmapiserver_RopGetPropertiesAll_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and mapi_handles::private_data.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetPropertiesList ( 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 GetPropertiesList (0x9) Rop. This operation retrieves the list of MAPI tags for an object.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SetProperties EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SetProperties EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_get_available_properties(), emsmdbp_context::handles_ctx, libmapiserver_RopGetPropertiesList_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and mapi_handles::private_data.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetPropertiesSpecific EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetPropertiesSpecific EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_fill_row_blob(), emsmdbp_getstr_type(), EMSMDBP_OBJECT_ATTACHMENT, EMSMDBP_OBJECT_FOLDER, emsmdbp_object_get_properties(), EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_MESSAGE, emsmdbp_stream_data_from_value(), emsmdbp_context::handles_ctx, libmapiserver_RopGetPropertiesSpecific_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, mapi_handles::private_data, emsmdbp_object::stream_data, 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetPropertyIdsFromNames EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetPropertyIdsFromNames EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer 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_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
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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetRulesTable EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the GetRulesTable EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FOLDER, emsmdbp_object_table_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetRulesTable_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_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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetSearchCriteria_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetStoreState ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc GetStoreState (0x63) Rop. This operation gets per-user information for a public folder.

Parameters:
mem_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetStoreState_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopGetStreamSize ( 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 GetStreamSize (0x5e) Rop. This operation returns the number of bytes in a stream.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the WriteStream EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the WriteStream EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer 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_RopGetStreamSize_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_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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the GetTransportFolder EcDoRpc_MAPI_REQ
mapi_repl pointer to the GetTransportFolder EcDoRpc_MAPI_REPL
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

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

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopIdFromLongTermId ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc (0x44) Rop. This operation sets or clears the message read flag.

Parameters:
mem_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_guid_to_replid(), EMSMDBP_OBJECT_MAILBOX, emsmdbp_context::handles_ctx, libmapiserver_RopIdFromLongTermId_size(), emsmdbp_objects::mailbox, mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_mailbox::owner_username, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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_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
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_RopLongTermIdFromId ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EcDoRpc_RopLongTermIdFromId (0x43) Rop.

Parameters:
mem_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_MAILBOX, emsmdbp_replid_to_guid(), emsmdbp_context::handles_ctx, libmapiserver_RopLongTermIdFromId_size(), emsmdbp_objects::mailbox, mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_mailbox::owner_username, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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

Parameters:
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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_context::handles_ctx, libmapiserver_RopModifyPermissions_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the ModifyRecipients EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the ModifyRecipients EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopModifyRecipients_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, oxcmsg_parse_ModifyRecipientRow(), and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the ModifyRules EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the ModifyRules EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer 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_RopOpenAttach ( 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 OpenAttach (0x22) Rop. This operation open an attachment from the message handle.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the OpenAttach EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the OpenAttach EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_attachment_init(), EMSMDBP_OBJECT_MESSAGE, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopOpenAttach_size(), mapi_handles_add(), mapi_handles_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_objects::message, emsmdbp_object_message::messageID, emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopOpenEmbeddedMessage ( 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 OpenEmbeddedMessage (0x46) Rop. This operation open an attachment from the message handle.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the OpenEmbeddedMessage EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the OpenEmbeddedMessage EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_ATTACHMENT, emsmdbp_object_message_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopOpenEmbeddedMessage_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(), oxcmsg_fill_OpenRecipientRow(), and oxcmsg_fill_prop_index().

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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_open_folder_by_fid(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopOpenFolder_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, emsmdbp_object::parent_object, mapi_handles::private_data, and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the OpenMessage EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the OpenMessage EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_message_open(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopOpenMessage_size(), mapi_handles_add(), mapi_handles_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), oxcmsg_fill_OpenRecipientRow(), oxcmsg_fill_prop_index(), and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the OpenStream EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the OpenStream EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, emsmdbp_stream_data::data, EMSMDBP_OBJECT_ATTACHMENT, EMSMDBP_OBJECT_FOLDER, emsmdbp_object_get_properties(), emsmdbp_object_get_stream_data(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_object_stream_init(), emsmdbp_stream_data_from_value(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopOpenStream_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_objects::message, emsmdbp_object::object, emsmdbp_object::parent_object, emsmdbp_object_stream::property, emsmdbp_object_message::read_write, emsmdbp_object_stream::stream, emsmdbp_objects::stream, emsmdbp_object::stream_data, and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the OptionsData EcDoRpc_MAPI_REQ
mapi_repl pointer to the OptionsData EcDoRpc_MAPI_REPL
handles pointer to the MAPI handles array
size pointer 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the QueryPosition EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the QueryPosition EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_TABLE, emsmdbp_object_table::handle, emsmdbp_context::handles_ctx, libmapiserver_RopQueryPosition_size(), mapi_handles_get_private_data(), mapi_handles_search(), 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the QueryRows EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the QueryRows EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update

References emsmdbp_fill_table_row_blob(), EMSMDBP_OBJECT_TABLE, emsmdbp_object_table_get_row_props(), emsmdbp_context::handles_ctx, libmapiserver_RopQueryRows_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_table::prop_count, emsmdbp_object_table::restricted, 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_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
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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the ReadStream EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the ReadStream EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_STREAM, emsmdbp_stream_read_buffer(), emsmdbp_context::handles_ctx, libmapiserver_RopReadStream_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, mapi_handles::private_data, emsmdbp_object_stream::stream, emsmdbp_objects::stream, 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the RegisterNotification EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the RegisterNotification EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_subscription_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopRegisterNotification_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_object::parent_object, emsmdbp_objects::subscription, emsmdbp_object_subscription::subscription_list, and emsmdbp_context::username.

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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_context::handles_ctx, mapi_handles_delete(), and emsmdbp_context::mstore_ctx.

Referenced by EcDoRpc_process_transaction().

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the ReloadCachedInformation EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the ReloadCachedInformation EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopReloadCachedInformation_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, oxcmsg_fill_OpenRecipientRow(), oxcmsg_fill_prop_index(), mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopRemoveAllRecipients ( 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 RemoveAllRecipients (0x0d) Rop. This operation removes all recipients from a message.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the RemoveAllRecipients EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the RemoveAllRecipients EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopRemoveAllRecipients_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_RopResetTable ( 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 ResetTable (0x81) Rop. This operation resets the table as follows:

  • Removes the existing column set, restriction, and sort order (ignored) from the table.
  • Invalidates bookmarks. (ignored)
  • Resets the cursor to the beginning of the table.
Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SetColumns EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SetColumns EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_TABLE, emsmdbp_object_table::handle, emsmdbp_context::handles_ctx, libmapiserver_RopResetTable_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_object_table::prop_count, emsmdbp_objects::table, emsmdbp_object::type, and emsmdbp_object_table::ulType.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the Restrict EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the Restrict EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_TABLE, emsmdbp_context::handles_ctx, libmapiserver_RopRestrict_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_object_table::restricted, emsmdbp_objects::table, emsmdbp_object::type, and emsmdbp_object_table::ulType.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSaveChangesAttachment ( 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 SaveChangesAttachment (0x25) Rop. This operation open an attachment from the message handle.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SaveChangesAttachment EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SaveChangesAttachment EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopSaveChangesAttachment_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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SaveChangesMessage EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SaveChangesMessage EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_get_owner(), 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, openchangedb_message_save(), 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SeekRow EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SeekRow EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_TABLE, emsmdbp_context::handles_ctx, libmapiserver_RopSeekRow_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSeekStream ( 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 SeekStream (0x2e) Rop. This operation positions the cursor in the stream.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the WriteStream EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the WriteStream EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer 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_RopSeekStream_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_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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SetColumns EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SetColumns EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_context::handles_ctx, libmapiserver_RopSetColumns_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_object_table::prop_count, and emsmdbp_object_table::ulType.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSetLocalReplicaMidsetDeleted ( 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 SetLocalReplicaMidsetDeleted (0x93) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SetLocalReplicaMidsetDeleted EcDoRpc_MAPI_REQ
mapi_repl pointer to the SetLocalReplicaMidsetDeleted EcDoRpc_MAPI_REPL
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopSetLocalReplicaMidsetDeleted_size().

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_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
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopSetMessageReadFlag_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SetProperties EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SetProperties EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_MESSAGE, emsmdbp_object_set_properties(), emsmdbp_context::handles_ctx, libmapiserver_RopSetProperties_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_objects::message, emsmdbp_object::object, mapi_handles::private_data, emsmdbp_object_message::read_write, 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_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
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_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
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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdbp provider context
mapi_req pointer to the SeSpooler EcDoRpc_MAPI_REQ
mapi_repl pointer to the SetSpooler EcDoRpc_MAPI_REPL
handles pointer to the MAPI handles array
size pointer 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_RopSetStreamSize ( 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 SetStreamSize (0x2f) Rop. This operation copy messages from one folder to another.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer 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_RopSetStreamSize_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, mapi_handles::private_data, and emsmdbp_object::type.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SortTable EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SortTable EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_TABLE, emsmdbp_context::handles_ctx, libmapiserver_RopSortTable_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, openchangedb_table_set_sort_order(), emsmdbp_object::type, and emsmdbp_object_table::ulType.

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SubmitMessage EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SubmitMessage EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, EMSMDBP_OBJECT_STREAM, emsmdbp_object_stream_commit(), mapi_handles::handle, mapi_handles_context::handles, emsmdbp_context::handles_ctx, libmapiserver_RopSubmitMessage_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, mapi_handles::next, emsmdbp_object::object, oxomsg_mapistore_handle_message_relocation(), mapi_handles::parent_handle, mapi_handles::private_data, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncConfigure ( 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_RopSyncConfigure (0x70) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncConfigure EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncConfigure EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_syncconfigure_request::best_body, emsmdbp_syncconfigure_request::contents_mode, emsmdbp_folder_open_table(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_synccontext_init(), emsmdbp_object_table_get_available_properties(), emsmdbp_syncconfigure_request::fai, emsmdbp_object_synccontext::fai_properties, emsmdbp_syncconfigure_request::force_unicode, mapi_handles::handle, emsmdbp_context::handles_ctx, emsmdbp_syncconfigure_request::ignore_no_longer_in_scope, emsmdbp_syncconfigure_request::ignored_specified_on_fai, libmapiserver_RopSyncConfigure_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_syncconfigure_request::no_deletions, emsmdbp_syncconfigure_request::no_foreign_identifiers, emsmdbp_syncconfigure_request::no_soft_deletions, emsmdbp_syncconfigure_request::normal, emsmdbp_object::object, emsmdbp_syncconfigure_request::order_by_delivery_time, emsmdbp_syncconfigure_request::partial_item, emsmdbp_syncconfigure_request::progress, emsmdbp_object_synccontext::properties, emsmdbp_syncconfigure_request::read_state, emsmdbp_syncconfigure_request::recover_mode, emsmdbp_object_synccontext::request, emsmdbp_syncconfigure_request::request_cn, emsmdbp_syncconfigure_request::request_eid, emsmdbp_syncconfigure_request::request_message_size, emsmdbp_objects::synccontext, emsmdbp_object::type, emsmdbp_syncconfigure_request::unicode, and emsmdbp_syncconfigure_request::use_cpid.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncGetTransferState ( 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_RopSyncGetTransferState (0x82) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncGetTransferState EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncGetTransferState EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, emsmdbp_object_ftcontext::cutmarks, emsmdbp_get_owner(), emsmdbp_object_ftcontext_init(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::ftcontext, emsmdbp_context::handles_ctx, libmapiserver_RopSyncGetTransferState_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, oxcfxics_ndr_push_transfer_state(), emsmdbp_object_ftcontext::stream, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncImportDeletes ( 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 SyncImportDeletes (0x74) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncImportDeletes EcDoRpc_MAPI_REQ
mapi_repl pointer to the SyncImportDeletes EcDoRpc_MAPI_REPL
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_folder_delete(), emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_context::handles_ctx, libmapiserver_RopSyncImportDeletes_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_context::oc_ctx, openchangedb_get_MailboxReplica(), oxcfxics_fmid_from_source_key(), emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncImportHierarchyChange ( 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_RopSyncImportHierarchyChange (0x73) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncImportHierarchyChange EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncImportHierarchyChange EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_get_owner(), emsmdbp_object_create_folder(), emsmdbp_object_open_folder(), emsmdbp_object_open_folder_by_fid(), emsmdbp_object_set_properties(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_context::handles_ctx, libmapiserver_RopSyncImportHierarchyChange_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_MailboxReplica(), openchangedb_get_new_changeNumber(), oxcfxics_fmid_from_source_key(), emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncImportMessageChange ( 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_RopSyncImportMessageChange (0x72) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncImportMessageChange EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncImportMessageChange EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), emsmdbp_object_message_init(), emsmdbp_object_message_open(), emsmdbp_object_set_properties(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_context::handles_ctx, libmapiserver_RopSyncImportMessageChange_size(), mapi_handles_add(), mapi_handles_delete(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_MailboxReplica(), oxcfxics_fmid_from_source_key(), emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncImportReadStateChanges ( 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 SyncImportReadStateChanges (0x80) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncImportReadStateChanges EcDoRpc_MAPI_REQ
mapi_repl pointer to the SyncImportReadStateChanges EcDoRpc_MAPI_REPL
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_guid_to_replid(), emsmdbp_is_mapistore(), emsmdbp_object_message_open(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, get_MessageReadState(), emsmdbp_context::handles_ctx, libmapiserver_RopSyncImportReadStateChanges_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncOpenCollector ( 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_RopSyncOpenCollector (0x7e) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncOpenCollector EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncOpenCollector EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_syncconfigure_request::contents_mode, EMSMDBP_OBJECT_FOLDER, emsmdbp_object_synccontext_init(), emsmdbp_context::handles_ctx, emsmdbp_object_synccontext::is_collector, libmapiserver_RopSyncOpenCollector_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, emsmdbp_object_synccontext::request, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamBegin ( 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_RopSyncUploadStateStreamBegin (0x75) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncUploadStateStreamBegin EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncUploadStateStreamBegin EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_context::handles_ctx, libmapiserver_RopSyncUploadStateStreamBegin_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_synccontext::state_property, emsmdbp_object_synccontext::state_stream, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamContinue ( 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_RopSyncUploadStateStreamContinue (0x76) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncUploadStateStreamContinue EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncUploadStateStreamContinue EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_stream_write_buffer(), emsmdbp_context::handles_ctx, libmapiserver_RopSyncUploadStateStreamContinue_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_synccontext::state_property, emsmdbp_object_synccontext::state_stream, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopSyncUploadStateStreamEnd ( 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_RopSyncUploadStateStreamEnd (0x77) Rop.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the SyncUploadStateStreamEnd EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the SyncUploadStateStreamEnd EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, emsmdbp_object_synccontext::cnset_read, emsmdbp_object_synccontext::cnset_seen, emsmdbp_object_synccontext::cnset_seen_fai, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_context::handles_ctx, emsmdbp_object_synccontext::idset_given, emsmdbp_object_synccontext::is_collector, libmapiserver_RopSyncUploadStateStreamEnd_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_object_synccontext::state_property, emsmdbp_object_synccontext::state_stream, emsmdbp_objects::synccontext, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_RopTransportSend ( 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 TransportSend (0x4a) Rop. This operation sends a message.

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the TransportSend EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the TransportSend EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_context::handles_ctx, libmapiserver_RopTransportSend_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, oxomsg_mapistore_handle_message_relocation(), 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
mapi_req pointer to the WriteStream EcDoRpc_MAPI_REQ structure
mapi_repl pointer to the WriteStream EcDoRpc_MAPI_REPL structure
handles pointer to the MAPI handles array
size pointer to the mapi response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_STREAM, emsmdbp_stream_write_buffer(), emsmdbp_context::handles_ctx, libmapiserver_RopWriteStream_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, mapi_handles::private_data, emsmdbp_object_stream::read_write, emsmdbp_object_stream::stream, emsmdbp_objects::stream, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

bool emsmdbp_destructor ( void *   ) 
void emsmdbp_fill_row_blob ( TALLOC_CTX *  ,
struct emsmdbp_context ,
uint8_t *  ,
DATA_BLOB *  ,
struct SPropTagArray *  ,
void **  ,
enum MAPISTATUS *  ,
bool *   
)
void emsmdbp_fill_table_row_blob ( TALLOC_CTX *  ,
struct emsmdbp_context ,
DATA_BLOB *  ,
uint16_t  ,
enum MAPITAGS *  ,
void **  ,
enum MAPISTATUS *   
)
uint32_t emsmdbp_get_contextID ( struct emsmdbp_object object  ) 

Return the contextID associated to a handle

Parameters:
object pointer to the emsmdp object
Returns:
contextID value on success, otherwise -1

References emsmdbp_get_contextID(), EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, emsmdbp_objects::folder, emsmdbp_object_folder::mapistore_root, emsmdbp_object::object, emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCreateAttach(), EcDoRpc_RopCreateMessage(), EcDoRpc_RopDeleteMessages(), EcDoRpc_RopFindRow(), EcDoRpc_RopModifyPermissions(), EcDoRpc_RopModifyRecipients(), EcDoRpc_RopMoveCopyMessages(), EcDoRpc_RopOpenAttach(), EcDoRpc_RopOpenEmbeddedMessage(), EcDoRpc_RopReloadCachedInformation(), EcDoRpc_RopRemoveAllRecipients(), EcDoRpc_RopResetTable(), EcDoRpc_RopRestrict(), EcDoRpc_RopSaveChangesMessage(), EcDoRpc_RopSetColumns(), EcDoRpc_RopSetMessageReadFlag(), EcDoRpc_RopSortTable(), EcDoRpc_RopSubmitMessage(), EcDoRpc_RopSyncImportDeletes(), EcDoRpc_RopSyncImportMessageChange(), EcDoRpc_RopSyncImportMessageMove(), EcDoRpc_RopSyncImportReadStateChanges(), EcDoRpc_RopTransportSend(), emsmdbp_copy_message_attachments_mapistore(), emsmdbp_copy_message_recipients_mapistore(), emsmdbp_fill_notification(), emsmdbp_folder_delete(), emsmdbp_folder_get_folder_count(), emsmdbp_folder_open_table(), emsmdbp_get_contextID(), emsmdbp_object_create_folder(), emsmdbp_object_destructor(), emsmdbp_object_get_available_properties(), emsmdbp_object_get_fid_by_name(), emsmdbp_object_get_properties_mapistore(), emsmdbp_object_get_properties_mapistore_root(), emsmdbp_object_message_fill_freebusy_properties(), emsmdbp_object_message_open(), emsmdbp_object_message_open_attachment_table(), emsmdbp_object_open_folder(), emsmdbp_object_set_properties(), emsmdbp_object_table_get_available_properties(), emsmdbp_object_table_get_row_props(), oxcfxics_fill_transfer_state_arrays(), oxcfxics_push_folderChange(), oxcfxics_push_messageChange(), oxcfxics_push_messageChange_attachments(), oxcfxics_table_set_cn_restriction(), oxomsg_mapistore_handle_message_relocation(), and RopEmptyFolder_GenericFolder().

int emsmdbp_get_fid_from_uri ( struct emsmdbp_context ,
const char *  ,
uint64_t *   
)
int emsmdbp_get_uri_from_fid ( TALLOC_CTX *  ,
struct emsmdbp_context ,
uint64_t  ,
char **   
)
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_ctx pointer to the loadparm_context
username account name for current session
ldb_ctx pointer 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 emsmdbp_object object  ) 

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

Parameters:
object pointer to the emsmdp object
Returns:
true if parent is within mailbox store, otherwise false

References emsmdbp_get_mailbox(), emsmdbp_objects::mailbox, emsmdbp_object_mailbox::mailboxstore, and emsmdbp_object::object.

Referenced by emsmdbp_folder_delete().

bool emsmdbp_is_mapistore ( struct emsmdbp_object object  ) 

Convenient function to determine whether specified object is using mapistore or not

Parameters:
object pointer to the emsmdp object
Returns:
true if parent is using mapistore, otherwise false

References emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, emsmdbp_objects::folder, emsmdbp_object_folder::mapistore_root, emsmdbp_object::object, emsmdbp_object::parent_object, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCreateAttach(), EcDoRpc_RopCreateMessage(), EcDoRpc_RopDeleteMessages(), EcDoRpc_RopEmptyFolder(), EcDoRpc_RopFindRow(), EcDoRpc_RopGetPermissionsTable(), EcDoRpc_RopModifyPermissions(), EcDoRpc_RopModifyRecipients(), EcDoRpc_RopMoveCopyMessages(), EcDoRpc_RopOpenAttach(), EcDoRpc_RopOpenEmbeddedMessage(), EcDoRpc_RopReloadCachedInformation(), EcDoRpc_RopRemoveAllRecipients(), EcDoRpc_RopResetTable(), EcDoRpc_RopRestrict(), EcDoRpc_RopSaveChangesMessage(), EcDoRpc_RopSetColumns(), EcDoRpc_RopSetMessageReadFlag(), EcDoRpc_RopSortTable(), EcDoRpc_RopSubmitMessage(), EcDoRpc_RopSyncImportDeletes(), EcDoRpc_RopSyncImportMessageChange(), EcDoRpc_RopSyncImportMessageMove(), EcDoRpc_RopSyncImportReadStateChanges(), EcDoRpc_RopTransportSend(), emsmdbp_copy_message_attachments_mapistore(), emsmdbp_copy_message_recipients_mapistore(), emsmdbp_folder_delete(), emsmdbp_folder_get_folder_count(), emsmdbp_folder_open_table(), emsmdbp_is_mapistore(), emsmdbp_object_copy_properties(), emsmdbp_object_create_folder(), emsmdbp_object_destructor(), emsmdbp_object_get_available_properties(), emsmdbp_object_get_fid_by_name(), emsmdbp_object_get_properties(), emsmdbp_object_message_fill_freebusy_properties(), emsmdbp_object_message_open(), emsmdbp_object_message_open_attachment_table(), emsmdbp_object_open_folder(), emsmdbp_object_set_properties(), emsmdbp_object_table_get_available_properties(), emsmdbp_object_table_get_row_props(), oxcfxics_fill_transfer_state_arrays(), oxcfxics_push_folderChange(), oxcfxics_push_messageChange(), oxcfxics_push_messageChange_attachments(), and oxcfxics_table_set_cn_restriction().

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

Initialize a attachment object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider cotnext
folderID the folder identifier
messageID the message identifier
parent emsmdbp object of the parent

References emsmdbp_objects::attachment, EMSMDBP_OBJECT_ATTACHMENT, emsmdbp_object_init(), and emsmdbp_object::object.

Referenced by EcDoRpc_RopCreateAttach(), EcDoRpc_RopOpenAttach(), and emsmdbp_copy_message_attachments_mapistore().

int emsmdbp_object_copy_properties ( struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object source_object,
struct emsmdbp_object target_object,
struct SPropTagArray *  excluded_properties,
bool  deep_copy 
)

Copy properties from an object to another object

Parameters:
emsmdbp_ctx pointer to the emsmdb provider context
source_object pointer to the source object
target_object pointer to the target object
excluded_properties pointer to a SPropTagArray listing properties that must not be copied
deep_copy indicates whether subobjects must be copied
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_copy_message_attachments_mapistore(), emsmdbp_copy_message_recipients_mapistore(), emsmdbp_copy_properties(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_ATTACHMENT, EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_MESSAGE, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCopyTo(), and oxomsg_mapistore_handle_message_relocation().

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

Initialize a folder object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
folderID the folder identifier
parent emsmdbp object of the parent folder for this folder
Returns:
Allocated emsmdbp object on success, otherwise NULL

References EMSMDBP_OBJECT_FOLDER, emsmdbp_object_init(), emsmdbp_objects::folder, and emsmdbp_object::object.

Referenced by emsmdbp_object_create_folder(), emsmdbp_object_open_folder(), and emsmdbp_object_open_folder_by_fid().

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

Initialize a ftcontext object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider cotnext
whole_store whether the subscription applies to the specified change on the entire store or stricly on the specified folder/message
folderID the folder identifier
messageID the message identifier
parent emsmdbp object of the parent

References EMSMDBP_OBJECT_FTCONTEXT, emsmdbp_object_init(), emsmdbp_objects::ftcontext, and emsmdbp_object::object.

Referenced by EcDoRpc_RopFastTransferSourceCopyTo(), and EcDoRpc_RopSyncGetTransferState().

struct emsmdbp_stream_data* emsmdbp_object_get_stream_data ( struct emsmdbp_object ,
enum  MAPITAGS 
) [read]
struct emsmdbp_object* emsmdbp_object_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object parent_object 
) [read]
struct emsmdbp_object* emsmdbp_object_mailbox_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
const char *  essDN,
bool  mailboxstore 
) [read]

Initialize a mailbox object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
request pointer to the Logon MAPI request
mailboxstore boolean 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_PF_ROOT, 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_username, emsmdbp_context::samdb_ctx, and emsmdbp_context::szUserDN.

Referenced by EcDoRpc_RopLogon(), and emsmdbp_object_message_fill_freebusy_properties().

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

Initialize a message object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
messageID the message identifier
parent emsmdbp object of the parent
Returns:
Allocated emsmdbp object on success, otherwise NULL

References EMSMDBP_OBJECT_FOLDER, emsmdbp_object_init(), EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_MESSAGE, emsmdbp_objects::message, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCreateMessage(), EcDoRpc_RopOpenEmbeddedMessage(), EcDoRpc_RopSyncImportMessageChange(), emsmdbp_object_message_open(), and oxomsg_mapistore_handle_message_relocation().

enum mapistore_error emsmdbp_object_open_folder_by_fid ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object context_object,
uint64_t  fid,
struct emsmdbp_object **  folder_object_p 
)
struct emsmdbp_object* emsmdbp_object_stream_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object parent 
) [read]

Initialize a stream object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider cotnext
property the stream property identifier
parent emsmdbp object of the parent

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

Referenced by EcDoRpc_RopOpenStream().

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

Initialize a notification subscription object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider cotnext
whole_store whether the subscription applies to the specified change on the entire store or stricly on the specified folder/message
folderID the folder identifier
messageID the message identifier
parent emsmdbp object of the parent

References emsmdbp_object_init(), EMSMDBP_OBJECT_SUBSCRIPTION, emsmdbp_object::object, and emsmdbp_objects::subscription.

Referenced by EcDoRpc_RopRegisterNotification().

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

Initialize a synccontext object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider cotnext
whole_store whether the subscription applies to the specified change on the entire store or stricly on the specified folder/message
folderID the folder identifier
messageID the message identifier
parent emsmdbp object of the parent

References emsmdbp_stream::buffer, emsmdbp_object_synccontext::cnset_seen, EMSMDBP_OBJECT_FOLDER, emsmdbp_object_init(), EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_MailboxReplica(), emsmdbp_object_synccontext::state_property, emsmdbp_object_synccontext::state_stream, emsmdbp_object_synccontext::stream, emsmdbp_objects::synccontext, emsmdbp_object::type, and emsmdbp_context::username.

Referenced by EcDoRpc_RopSyncConfigure(), and EcDoRpc_RopSyncOpenCollector().

int emsmdbp_object_table_get_available_properties ( TALLOC_CTX *  ,
struct emsmdbp_context ,
struct emsmdbp_object ,
struct SPropTagArray **   
)
struct emsmdbp_object* emsmdbp_object_table_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object parent 
) [read]

Initialize a table object

Parameters:
mem_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
parent emsmdbp object of the parent
Returns:
Allocated emsmdbp object on success, otherwise NULL

References EMSMDBP_OBJECT_FOLDER, emsmdbp_object_init(), EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_MESSAGE, EMSMDBP_OBJECT_TABLE, emsmdbp_object::object, emsmdbp_objects::table, and emsmdbp_object::type.

Referenced by EcDoRpc_RopGetPermissionsTable(), EcDoRpc_RopGetRulesTable(), emsmdbp_folder_open_table(), and emsmdbp_object_message_open_attachment_table().

void* emsmdbp_openchange_ldb_init ( struct loadparm_context *  lp_ctx  ) 

Open openchange.ldb database

Parameters:
lp_ctx pointer 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_ctx pointer to the memory context
emsmdbp_ctx pointer to the EMSMDBP context
recipient pointer to the recipient string
properties array of properties to lookup for a recipient
row the 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.

struct emsmdbp_stream_data* emsmdbp_stream_data_from_value ( TALLOC_CTX *  ,
enum  MAPITAGS,
void *  value 
) [read]
DATA_BLOB emsmdbp_stream_read_buffer ( struct emsmdbp_stream ,
uint32_t   
)
void emsmdbp_stream_write_buffer ( TALLOC_CTX *  ,
struct emsmdbp_stream ,
DATA_BLOB   
)
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_call pointer to the session context
emsmdbp_ctx pointer to the EMSMDBP context
Returns:
true on success, otherwise false

References emsmdbp_context::mstore_ctx, emsmdbp_context::oc_ctx, openchangedb_get_MailboxReplica(), 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_call pointer to the session context
emsmdbp_ctx pointer to the EMSMDBP context
legacyExchangeDN pointer to the userDN to lookup
msg pointer 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().


Variable Documentation

struct GUID* const MagicGUIDp

Referenced by emsmdbp_guid_to_replid().


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/