OpenChange EMSMDB Server implementation. More...
#include "mapiproxy/dcesrv_mapiproxy.h"#include "dcesrv_exchange_emsmdb.h"#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 <util/debug.h>Functions | |
| static enum MAPISTATUS | dcesrv_EcDoConnect (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoConnect *r) |
| static enum MAPISTATUS | dcesrv_EcDoConnectEx (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoConnectEx *r) |
| static enum MAPISTATUS | dcesrv_EcDoDisconnect (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoDisconnect *r) |
| static enum MAPISTATUS | dcesrv_EcDoRpc (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoRpc *r) |
| static void | dcesrv_EcDoRpcExt (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoRpcExt *r) |
| static void | dcesrv_EcDummyRpc (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDummyRpc *r) |
| static void | dcesrv_EcGetMoreRpc (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcGetMoreRpc *r) |
| static void | dcesrv_EcRGetDCName (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcRGetDCName *r) |
| static void | dcesrv_EcRNetGetDCName (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcRNetGetDCName *r) |
| static enum MAPISTATUS | dcesrv_EcRRegisterPushNotification (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcRRegisterPushNotification *r) |
| static enum MAPISTATUS | dcesrv_EcRUnregisterPushNotification (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcRUnregisterPushNotification *r) |
| static NTSTATUS | dcesrv_exchange_emsmdb_dispatch (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r, struct mapiproxy *mapiproxy) |
| static NTSTATUS | dcesrv_exchange_emsmdb_init (struct dcesrv_context *dce_ctx) |
| static NTSTATUS | dcesrv_exchange_emsmdb_unbind (struct server_id server_id, uint32_t context_id) |
| NTSTATUS | samba_init_module (void) |
OpenChange EMSMDB Server implementation.
| static enum MAPISTATUS dcesrv_EcDoConnect | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcDoConnect * | r | |||
| ) | [static] |
exchange_emsmdb EcDoConnect (0x0) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcDoConnect request data |
References emsmdbp_init(), emsmdbp_verify_user(), emsmdbp_verify_userdn(), mpm_session_cmp(), mpm_session_increment_ref_count(), mpm_session_init(), mpm_session_set_destructor(), and mpm_session_set_private_data().
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static enum MAPISTATUS dcesrv_EcDoConnectEx | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcDoConnectEx * | r | |||
| ) | [static] |
exchange_emsmdb EcDoConnectEx (0xA) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcDoConnectEx request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static enum MAPISTATUS dcesrv_EcDoDisconnect | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcDoDisconnect * | r | |||
| ) | [static] |
exchange_emsmdb EcDoDisconnect (0x1) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcDoDisconnect request data |
References mpm_session_cmp(), and mpm_session_release().
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static enum MAPISTATUS dcesrv_EcDoRpc | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcDoRpc * | r | |||
| ) | [static] |
exchange_emsmdb EcDoRpc (0x2) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcDoRpc request data |
References EcDoRpc_RopCreateFolder(), EcDoRpc_RopCreateMessage(), EcDoRpc_RopDeleteFolder(), EcDoRpc_RopDeleteMessages(), EcDoRpc_RopDeleteProperties(), EcDoRpc_RopEmptyFolder(), EcDoRpc_RopFindRow(), EcDoRpc_RopGetAddressTypes(), EcDoRpc_RopGetAttachmentTable(), EcDoRpc_RopGetContentsTable(), EcDoRpc_RopGetHierarchyTable(), EcDoRpc_RopGetPermissionsTable(), EcDoRpc_RopGetPerUserGuid(), EcDoRpc_RopGetPerUserLongTermIds(), EcDoRpc_RopGetPropertiesSpecific(), EcDoRpc_RopGetPropertyIdsFromNames(), EcDoRpc_RopGetReceiveFolder(), EcDoRpc_RopGetSearchCriteria(), EcDoRpc_RopGetTransportFolder(), EcDoRpc_RopLogon(), EcDoRpc_RopModifyRecipients(), EcDoRpc_RopOpenFolder(), EcDoRpc_RopOpenMessage(), EcDoRpc_RopOpenStream(), EcDoRpc_RopOptionsData(), EcDoRpc_RopQueryPosition(), EcDoRpc_RopQueryRows(), EcDoRpc_RopReadPerUserInformation(), EcDoRpc_RopReadStream(), EcDoRpc_RopRegisterNotification(), EcDoRpc_RopRelease(), EcDoRpc_RopReloadCachedInformation(), EcDoRpc_RopRestrict(), EcDoRpc_RopSaveChangesMessage(), EcDoRpc_RopSeekRow(), EcDoRpc_RopSetColumns(), EcDoRpc_RopSetMessageReadFlag(), EcDoRpc_RopSetProperties(), EcDoRpc_RopSetReceiveFolder(), EcDoRpc_RopSetSearchCriteria(), EcDoRpc_RopSetSpooler(), EcDoRpc_RopSortTable(), EcDoRpc_RopSubmitMessage(), EcDoRpc_RopWriteStream(), and mpm_session_cmp().
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static void dcesrv_EcDoRpcExt | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcDoRpcExt * | r | |||
| ) | [static] |
exchange_emsmdb EcDoRpcExt (0x9) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcDoRpcExt request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static void dcesrv_EcDummyRpc | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcDummyRpc * | r | |||
| ) | [static] |
exchange_emsmdb EcDummyRpc (0x6) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcDummyRpc request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static void dcesrv_EcGetMoreRpc | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcGetMoreRpc * | r | |||
| ) | [static] |
exchange_emsmdb EcGetMoreRpc (0x3) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcGetMoreRpc request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static void dcesrv_EcRGetDCName | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcRGetDCName * | r | |||
| ) | [static] |
exchange_emsmdb EcRGetDCName (0x7) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcRGetDCName request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static void dcesrv_EcRNetGetDCName | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcRNetGetDCName * | r | |||
| ) | [static] |
exchange_emsmdb EcRNetGetDCName (0x8) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcRNetGetDCName request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static enum MAPISTATUS dcesrv_EcRRegisterPushNotification | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcRRegisterPushNotification * | r | |||
| ) | [static] |
exchange_emsmdb EcRRegisterPushNotification (0x4) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcRRegisterPushNotification request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static enum MAPISTATUS dcesrv_EcRUnregisterPushNotification | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| struct EcRUnregisterPushNotification * | r | |||
| ) | [static] |
exchange_emsmdb EcRUnregisterPushNotification (0x5) function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | pointer to the EcRUnregisterPushNotification request data |
Referenced by dcesrv_exchange_emsmdb_dispatch().
| static NTSTATUS dcesrv_exchange_emsmdb_dispatch | ( | struct dcesrv_call_state * | dce_call, | |
| TALLOC_CTX * | mem_ctx, | |||
| void * | r, | |||
| struct mapiproxy * | mapiproxy | |||
| ) | [static] |
Dispatch incoming EMSMDB call to the correct OpenChange server function
| dce_call | pointer to the session context | |
| mem_ctx | pointer to the memory context | |
| r | generic pointer on EMSMDB data | |
| mapiproxy | pointer to the mapiproxy structure controlling mapiproxy behavior |
References dcesrv_EcDoConnect(), dcesrv_EcDoConnectEx(), dcesrv_EcDoDisconnect(), dcesrv_EcDoRpc(), dcesrv_EcDoRpcExt(), dcesrv_EcDummyRpc(), dcesrv_EcGetMoreRpc(), dcesrv_EcRGetDCName(), dcesrv_EcRNetGetDCName(), dcesrv_EcRRegisterPushNotification(), and dcesrv_EcRUnregisterPushNotification().
Referenced by samba_init_module().
| static NTSTATUS dcesrv_exchange_emsmdb_init | ( | struct dcesrv_context * | dce_ctx | ) | [static] |
Initialize the EMSMDB OpenChange server
| dce_ctx | pointer to the server context |
References emsmdbp_openchange_ldb_init().
Referenced by samba_init_module().
| static NTSTATUS dcesrv_exchange_emsmdb_unbind | ( | struct server_id | server_id, | |
| uint32_t | context_id | |||
| ) | [static] |
Terminate the EMSMDB connection and release the associated session and context if still available. This case occurs when the client doesn't call EcDoDisconnect but quit unexpectedly.
| server_id | reference to the server identifier structure | |
| context_id | the connection context identifier |
References mpm_session_cmp_sub(), and mpm_session_release().
Referenced by samba_init_module().
| NTSTATUS samba_init_module | ( | void | ) |
Entry point for the default OpenChange EMSMDB server
References dcesrv_exchange_emsmdb_dispatch(), dcesrv_exchange_emsmdb_init(), and dcesrv_exchange_emsmdb_unbind().
|
|
This content is licensed under the Creative Commons Attribution ShareAlike License v. 3.0: http://creativecommons.org/licenses/by-sa/3.0/ |