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

Macros

#define __BEGIN_DECLS
 
#define __END_DECLS
 
#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_REMINDERS, EMSMDBP_TODO, EMSMDBP_TRACKEDMAILPROCESSING, 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_RopCopyFolder (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_RopMoveFolder (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 *)
 
enum mapistore_error emsmdbp_folder_move_folder (struct emsmdbp_context *, struct emsmdbp_object *, struct emsmdbp_object *, TALLOC_CTX *, const char *)
 
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, bool)
 
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
 

Macro Definition Documentation

#define __BEGIN_DECLS
#define __END_DECLS
#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_REMINDERS 
EMSMDBP_TODO 
EMSMDBP_TRACKEDMAILPROCESSING 
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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

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

EcDoRpc EmptyFolder (0x58) Rop. This operation removes the sub-folders and messages from a given parent folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the EmptyFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the EmptyFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_get_contextID(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_open_folder(), emsmdbp_context::handles_ctx, libmapiserver_RopCopyFolder_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, mapi_handles::private_data, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the CreateAttach EcDoRpc_MAPI_REQ structure
mapi_replpointer to the CreateAttach EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::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, emsmdbp_object_message::read_write, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the CreateFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the CreateFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error
Note
We do not provide support for GhostInfo

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the CreateMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the CreateMessage EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopCreateMessage_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteMessage EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopDeleteProperties_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeletePropertiesNoReplicate EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeletePropertiesNoReplicate EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the EmptyFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the EmptyFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_is_mapistore(), emsmdbp_context::handles_ctx, libmapiserver_RopEmptyFolder_size(), mapi_handles_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the EcDoRpc_RopFastTransferSourceCopyTo EcDoRpc_MAPI_REQ structure
mapi_replpointer to the EcDoRpc_RopFastTransferSourceCopyTo EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the FastTransferSourceGetBuffer EcDoRpc_MAPI_REQ structure
mapi_replpointer to the FastTransferSourceGetBuffer EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FTCONTEXT, EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::ftcontext, emsmdbp_context::handles_ctx, libmapiserver_RopFastTransferSourceGetBuffer_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, oxcfxics_fill_ftcontext_fasttransfer_response(), oxcfxics_fill_synccontext_fasttransfer_response(), emsmdbp_object::parent_object, emsmdbp_objects::synccontext, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the FindRow EcDoRpc_MAPI_REQ structure
mapi_replpointer to the FindRow EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_object_table::denominator, 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_table::numerator, emsmdbp_object::object, openchangedb_table_set_restrictions(), emsmdbp_object_table::prop_count, emsmdbp_object_table::properties, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the AddressTypes EcDoRpc_MAPI_REQ
mapi_replpointer to the AddressTypes EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetAddressTypes_size(), mapiserver_get_org_dn(), emsmdbp_context::samdb_ctx, and emsmdbp_context::userLanguage.

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc GetAttachmentTable (0x21) Rop. This operation gets the attachment table of a message.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetAttachmentTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetAttachmentTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetContentsTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetContentsTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetHierarchyTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetHierarchyTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetLocalReplicaIds EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetLocalReplicaIds EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_MAILBOX, emsmdbp_replid_to_guid(), emsmdbp_context::handles_ctx, libmapiserver_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetNamesFromIDs EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetNamesFromIDs EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPermissionsTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetPermissionsTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REQ
mapi_replpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetPerUserGuid_size().

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc GetPerUserLongTermIds (0x60) Rop. This operations gets the long-term ID of a public folder that is identified by the per-user GUID of the logged on user.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REQ
mapi_replpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetPerUserLongTermIds_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPropertiesAll EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetPropertiesAll EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetProperties EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPropertiesSpecific EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetPropertiesSpecific EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_context::mstore_ctx, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPropertyIdsFromNames EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetPropertyIdsFromNames EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetPropertyIdsFromNames_size(), and emsmdbp_context::mstore_ctx.

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc GetReceiveFolder (0x27) Rop. This operation gets the receive folder for incoming messages of a particular message class

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetReceiveFolder EcDoRpc_MAPI_REQ
mapi_replpointer to the GetReceiveFolder EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetReceiveFolder_size(), and RopGetReceiveFolder().

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc GetRulesTable (0x3f) Rop. This operation gets the rules table of a folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetRulesTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetRulesTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FOLDER, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetSearchCriteria EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetSearchCriteria EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetSearchCriteria_size().

Referenced by EcDoRpc_process_transaction().

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

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

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetStoreState EcDoRpc_MAPI_REQ
mapi_replpointer to the GetStoreState EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetStoreState_size().

Referenced by EcDoRpc_process_transaction().

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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the WriteStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the WriteStream EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_STREAM, emsmdbp_context::handles_ctx, libmapiserver_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetTransportFolder EcDoRpc_MAPI_REQ
mapi_replpointer to the GetTransportFolder EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetMessageReadFlag EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetMessageReadFlag EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

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

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc Logon (0xFE) Rop. This operation logs on to a private mailbox or public folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the Logon EcDoRpc_MAPI_REQ structure
mapi_replpointer to the Logon EcDoRpc_MAPI_REPL structure the function returns
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Note
Users are only allowed to open their own mailbox at the moment. This limitation will be removed when significant progress have been made.
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_mailbox_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopLogon_size(), mapi_handles_add(), mapi_handles_set_private_data(), emsmdbp_object::object, RopLogon_Mailbox(), and RopLogon_PublicFolder().

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc EcDoRpc_RopLongTermIdFromId (0x43) Rop.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the LongTermIdFromId EcDoRpc_MAPI_REQ structure
mapi_replpointer to the LongTermIdFromId EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

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

Referenced by EcDoRpc_process_transaction().

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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REQ
mapi_replpointer to the GetPerUserLongTermIds EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ModifyRecipients EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ModifyRecipients EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ModifyRules EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ModifyRules EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FOLDER, emsmdbp_context::handles_ctx, libmapiserver_RopModifyRules_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc EmptyFolder (0x58) Rop. This operation removes the sub-folders and messages from a given parent folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the EmptyFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the EmptyFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_folder_move_folder(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_open_folder(), emsmdbp_context::handles_ctx, libmapiserver_RopMoveFolder_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_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenAttach EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenAttach EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenEmbeddedMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenEmbeddedMessage EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::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_objects::message, emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_new_folderID(), oxcmsg_fill_OpenRecipientRow(), oxcmsg_fill_prop_index(), emsmdbp_object_message::read_write, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc OpenFolder (0x02) Rop. This operation opens an existing folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenMessage EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_FOLDER, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenStream EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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::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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OptionsData EcDoRpc_MAPI_REQ
mapi_replpointer to the OptionsData EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopOptionsData_size().

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc QueryPosition (0x17) Rop. This operation returns the location of cursor in the table.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the QueryPosition EcDoRpc_MAPI_REQ structure
mapi_replpointer to the QueryPosition EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_table::denominator, EMSMDBP_OBJECT_TABLE, emsmdbp_object_table::handle, emsmdbp_context::handles_ctx, libmapiserver_RopQueryPosition_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object_table::numerator, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc QueryRows (0x15) Rop. This operation retrieves rows from a table.

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

References emsmdbp_object_table::denominator, 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_table::numerator, emsmdbp_object::object, emsmdbp_object_table::prop_count, emsmdbp_object_table::properties, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ReadPerUserInformation EcDoRpc_MAPI_REQ
mapi_replpointer to the ReadPerUserInformation EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopReadPerUserInformation_size().

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc ReadStream (0x2c) Rop. This operation reads bytes from a stream.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ReadStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ReadStream EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_STREAM, emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the RegisterNotification EcDoRpc_MAPI_REQ structure
mapi_replpointer to the RegisterNotification EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
requestpointer to the Release EcDoRpc_MAPI_REQ
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

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

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc ReloadCachedInformation (0x10) Rop. This operation gets message and recipient information from a message.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the ReloadCachedInformation EcDoRpc_MAPI_REQ structure
mapi_replpointer to the ReloadCachedInformation EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the RemoveAllRecipients EcDoRpc_MAPI_REQ structure
mapi_replpointer to the RemoveAllRecipients EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetColumns EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetColumns EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_object_table::denominator, 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_table::numerator, emsmdbp_object::object, emsmdbp_object_table::prop_count, emsmdbp_object_table::properties, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the Restrict EcDoRpc_MAPI_REQ structure
mapi_replpointer to the Restrict EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::backend_object, emsmdbp_object_table::denominator, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SaveChangesAttachment EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SaveChangesAttachment EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SaveChangesMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SaveChangesMessage EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SeekRow EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SeekRow EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

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

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the WriteStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the WriteStream EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_STREAM, emsmdbp_context::handles_ctx, libmapiserver_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetColumns EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetColumns EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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, emsmdbp_object_table::properties, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetLocalReplicaMidsetDeleted EcDoRpc_MAPI_REQ
mapi_replpointer to the SetLocalReplicaMidsetDeleted EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetMessageReadFlag EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetMessageReadFlag EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetProperties EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetReceiveFolder EcDoRpc_MAPI_REQ
mapi_replpointer to the SetReceiveFolder EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopSetReceiveFolder_size(), and RopSetReceiveFolder().

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc SetSearchCriteria (0x30) Rop. This operation sets the search criteria for a search folder.

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetSearchCriteria EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetSearchCriteria EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopSetSearchCriteria_size().

Referenced by EcDoRpc_process_transaction().

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

EcDoRpc SetSpooler (0x47) Rop. This operation informs the server that the client intends to act as a mail spooler

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdbp provider context
mapi_reqpointer to the SeSpooler EcDoRpc_MAPI_REQ
mapi_replpointer to the SetSpooler EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopSetSpooler_size().

Referenced by EcDoRpc_process_transaction().

enum MAPISTATUS EcDoRpc_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteProperties EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteProperties EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SortTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SortTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_table::numerator, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SubmitMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SubmitMessage EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncConfigure EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncConfigure EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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, emsmdbp_syncconfigure_request::is_collector, 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_object_synccontext::request_start, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncGetTransferState EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncGetTransferState EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_stream::buffer, emsmdbp_object_ftcontext::cutmarks, emsmdbp_get_owner(), emsmdbp_object_ftcontext_init(), EMSMDBP_OBJECT_SYNCCONTEXT, emsmdbp_objects::ftcontext, mapi_handles::handle, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportDeletes EcDoRpc_MAPI_REQ
mapi_replpointer to the SyncImportDeletes EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportHierarchyChange EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncImportHierarchyChange EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_folder_move_folder(), emsmdbp_get_owner(), emsmdbp_object_create_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 
)
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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncImportReadStateChanges EcDoRpc_MAPI_REQ
mapi_replpointer to the SyncImportReadStateChanges EcDoRpc_MAPI_REPL
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncOpenCollector EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncOpenCollector EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_syncconfigure_request::contents_mode, EMSMDBP_OBJECT_FOLDER, emsmdbp_object_synccontext_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, emsmdbp_syncconfigure_request::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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncUploadStateStreamBegin EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncUploadStateStreamBegin EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncUploadStateStreamContinue EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncUploadStateStreamContinue EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SyncUploadStateStreamEnd EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SyncUploadStateStreamEnd EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_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_syncconfigure_request::is_collector, libmapiserver_RopSyncUploadStateStreamEnd_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_object::object, emsmdbp_context::oc_ctx, oxcfxics_check_cnset(), emsmdbp_object_synccontext::request, 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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the TransportSend EcDoRpc_MAPI_REQ structure
mapi_replpointer to the TransportSend EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object::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_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the WriteStream EcDoRpc_MAPI_REQ structure
mapi_replpointer to the WriteStream EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi response size to update
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References EMSMDBP_OBJECT_STREAM, emsmdbp_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
objectpointer 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_RopCopyFolder(), 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_fetch_freebusy(), emsmdbp_fill_notification(), emsmdbp_folder_delete(), emsmdbp_folder_get_folder_count(), emsmdbp_folder_move_folder(), 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_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 
)

Initialize the EMSMDBP context and open connections to Samba databases.

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

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

Referenced by dcesrv_EcDoConnect(), and dcesrv_EcDoConnectEx().

bool emsmdbp_is_mailboxstore ( struct emsmdbp_object object)

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

Parameters
objectpointer 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
objectpointer 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_RopCopyFolder(), 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_fetch_freebusy(), emsmdbp_folder_delete(), emsmdbp_folder_get_folder_count(), emsmdbp_folder_move_folder(), 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_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 
)

Initialize a attachment object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider cotnext
folderIDthe folder identifier
messageIDthe message identifier
parentemsmdbp 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_ctxpointer to the emsmdb provider context
source_objectpointer to the source object
target_objectpointer to the target object
excluded_propertiespointer to a SPropTagArray listing properties that must not be copied
deep_copyindicates 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 
)

Initialize a folder object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
folderIDthe folder identifier
parentemsmdbp 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 
)

Initialize a ftcontext object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider cotnext
whole_storewhether the subscription applies to the specified change on the entire store or stricly on the specified folder/message
folderIDthe folder identifier
messageIDthe message identifier
parentemsmdbp 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 
)
struct emsmdbp_object* emsmdbp_object_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct emsmdbp_object parent_object 
)
struct emsmdbp_object* emsmdbp_object_mailbox_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
const char *  essDN,
bool  mailboxstore 
)

Initialize a mailbox object

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

References emsmdbp_object_init(), EMSMDBP_OBJECT_MAILBOX, EMSMDBP_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_fetch_freebusy().

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

Initialize a message object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
messageIDthe message identifier
parentemsmdbp object of the parent
Returns
Allocated emsmdbp object on success, otherwise NULL

References EMSMDBP_OBJECT_ATTACHMENT, 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 
)

Initialize a stream object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider cotnext
propertythe stream property identifier
parentemsmdbp 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 
)

Initialize a notification subscription object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider cotnext
whole_storewhether the subscription applies to the specified change on the entire store or stricly on the specified folder/message
folderIDthe folder identifier
messageIDthe message identifier
parentemsmdbp 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 
)

Initialize a synccontext object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider cotnext
whole_storewhether the subscription applies to the specified change on the entire store or stricly on the specified folder/message
folderIDthe folder identifier
messageIDthe message identifier
parentemsmdbp 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 
)

Initialize a table object

Parameters
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
parentemsmdbp 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_ctxpointer on the loadparm_context
Note
This function is just a wrapper over mapiproxy_server_openchange_ldb_init
Returns
Allocated LDB context on success, otherwise NULL

References mapiproxy_server_openchange_ldb_init().

Referenced by dcesrv_exchange_emsmdb_init().

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

Resolve a recipient and build the associated RecipientRow structure

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

References libmapiserver_push_property(), and emsmdbp_context::samdb_ctx.

struct emsmdbp_stream_data* emsmdbp_stream_data_from_value ( TALLOC_CTX *  ,
enum  MAPITAGS,
void *  value,
bool   
)
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_callpointer to the session context
emsmdbp_ctxpointer 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_callpointer to the session context
emsmdbp_ctxpointer to the EMSMDBP context
legacyExchangeDNpointer to the userDN to lookup
msgpointer on pointer to the LDB message matching the record
Note
Users can set msg to NULL if they do not intend to retrieve the message
Returns
true on success, otherwise false

References emsmdbp_context::samdb_ctx.

Referenced by dcesrv_EcDoConnect(), and dcesrv_EcDoConnectEx().

__BEGIN_DECLS NTSTATUS samba_init_module ( void  )

Register mapiproxy dynamic shared object modules

This function registers mapiproxy modules located

Entry point of mapiproxy dynamic shared object.

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

Returns
NT_STATUS_OK on success, otherwise NT_STATUS_UNSUCCESSFUL;

Entry point for the pack mapiproxy module

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the cache mapiproxy module

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the downgrade mapiproxy module

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Register mapiproxy dynamic shared object modules

This function registers mapiproxy modules located

Entry point of mapiproxy dynamic shared object.

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

Returns
NT_STATUS_OK on success, otherwise NT_STATUS_UNSUCCESSFUL;

Entry point for the pack mapiproxy module

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the cache mapiproxy module

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the downgrade mapiproxy module

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the pack mapiproxy module

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the default OpenChange EMSMDB server

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the default OpenChange NSPI server

Returns
NT_STATUS_OK on success, otherwise NTSTATUS error

Entry point for the default OpenChange RFR server

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

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/