MAPIProxy 2.0 API Documentation

- Main Page
- Related Pages
- Data Structures
- Files

- File List
- Globals

Functions
dcesrv_exchange_emsmdb.c File Reference

OpenChange EMSMDB Server implementation. More...

`#include "mapiproxy/dcesrv_mapiproxy.h"`
`#include "mapiproxy/libmapiserver/libmapiserver.h"`
`#include "dcesrv_exchange_emsmdb.h"`

## Functions
static enum MAPISTATUS | dcesrv_EcDoAsyncConnectEx (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoAsyncConnectEx *r)
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 enum MAPISTATUS | dcesrv_EcDoRpcExt (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoRpcExt *r)
static enum MAPISTATUS | dcesrv_EcDoRpcExt2 (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoRpcExt2 *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 void | dcesrv_EcUnknown0xC (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcUnknown0xC *r)
static void | dcesrv_EcUnknown0xD (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcUnknown0xD *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)

## Detailed Description

OpenChange EMSMDB Server implementation.

## Function Documentation

static enum MAPISTATUS dcesrv_EcDoAsyncConnectEx | ( | struct dcesrv_call_state * | dce_call,
|  | TALLOC_CTX * | mem_ctx,
|  | struct EcDoAsyncConnectEx * | r
| ) |  |
| static

exchange_emsmdb EcGetMoreRpc (0xe) function

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDoAsyncConnectExt request data

Returns
  MAPI_E_SUCCESS on success

Referenced by dcesrv_exchange_emsmdb_dispatch().

static enum MAPISTATUS dcesrv_EcDoConnect | ( | struct dcesrv_call_state * | dce_call,
|  | TALLOC_CTX * | mem_ctx,
|  | struct EcDoConnect * | r
| ) |  |
| static

exchange_emsmdb EcDoConnect (0x0) function

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDoConnect request data

Note
  Session linking is not supported at the moment

Returns
  MAPI_E_SUCCESS on success

References emsmdbp_init(), emsmdbp_verify_user(), emsmdbp_verify_userdn(), 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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDoConnectEx request data

Returns
  MAPI_E_SUCCESS on success

References emsmdbp_init(), emsmdbp_verify_user(), emsmdbp_verify_userdn(), 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_EcDoDisconnect | ( | struct dcesrv_call_state * | dce_call,
|  | TALLOC_CTX * | mem_ctx,
|  | struct EcDoDisconnect * | r
| ) |  |
| static

exchange_emsmdb EcDoDisconnect (0x1) function

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDoDisconnect request data

Returns
  MAPI_E_SUCCESS on success

References 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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDoRpc request data

Returns
  MAPI_E_SUCCESS on success

Referenced by dcesrv_exchange_emsmdb_dispatch().

static enum MAPISTATUS dcesrv_EcDoRpcExt | ( | struct dcesrv_call_state * | dce_call,
|  | TALLOC_CTX * | mem_ctx,
|  | struct EcDoRpcExt * | r
| ) |  |
| static

exchange_emsmdb EcDoRpcExt (0x9) function

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDoRpcExt request data

Returns
  MAPI_E_SUCCESS on success

Referenced by dcesrv_exchange_emsmdb_dispatch().

static enum MAPISTATUS dcesrv_EcDoRpcExt2 | ( | struct dcesrv_call_state * | dce_call,
|  | TALLOC_CTX * | mem_ctx,
|  | struct EcDoRpcExt2 * | r
| ) |  |
| static

exchange_emsmdb EcDoRpcExt2 (0xB) function

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDoRpcExt2 request data

Returns
  MAPI_E_SUCCESS on success

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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcDummyRpc request data

Returns
  MAPI_E_SUCCESS on success

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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcGetMoreRpc request data

Returns
  MAPI_E_SUCCESS on success

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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcRGetDCName request data

Returns
  MAPI_E_SUCCESS on success

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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcRNetGetDCName request data

Returns
  MAPI_E_SUCCESS on success

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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcRRegisterPushNotification request data

Returns
  MAPI_E_SUCCESS on success

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

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcRUnregisterPushNotification request data

Returns
  MAPI_E_SUCCESS on success

Referenced by dcesrv_exchange_emsmdb_dispatch().

static void dcesrv_EcUnknown0xC | ( | struct dcesrv_call_state * | dce_call,
|  | TALLOC_CTX * | mem_ctx,
|  | struct EcUnknown0xC * | r
| ) |  |
| static

exchange_emsmdb EcUnknown0xC (0xc) function

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcUnknown0xC request data

Returns
  MAPI_E_SUCCESS on success

Referenced by dcesrv_exchange_emsmdb_dispatch().

static void dcesrv_EcUnknown0xD | ( | struct dcesrv_call_state * | dce_call,
|  | TALLOC_CTX * | mem_ctx,
|  | struct EcUnknown0xD * | r
| ) |  |
| static

exchange_emsmdb EcUnknown0xD (0xc) function

Parameters

  dce_call | pointer to the session context
  mem_ctx | pointer to the memory context
  r | pointer to the EcUnknown0xD request data

Returns
  MAPI_E_SUCCESS on success

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

Parameters

  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

Returns
  NT_STATUS_OK;

References dcesrv_EcDoAsyncConnectEx(), dcesrv_EcDoConnect(), dcesrv_EcDoConnectEx(), dcesrv_EcDoDisconnect(), dcesrv_EcDoRpc(), dcesrv_EcDoRpcExt(), dcesrv_EcDoRpcExt2(), dcesrv_EcDummyRpc(), dcesrv_EcGetMoreRpc(), dcesrv_EcRGetDCName(), dcesrv_EcRNetGetDCName(), dcesrv_EcRRegisterPushNotification(), dcesrv_EcRUnregisterPushNotification(), dcesrv_EcUnknown0xC(), and dcesrv_EcUnknown0xD().

Referenced by samba_init_module().

static NTSTATUS dcesrv_exchange_emsmdb_init | ( | struct dcesrv_context * | dce_ctx | ) |
| static

Initialize the EMSMDB OpenChange server

Parameters

  dce_ctx | pointer to the server context

Returns
  NT_STATUS_OK on success

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.

Parameters

  server_id | reference to the server identifier structure
  context_id | the connection context identifier

Returns
  NT_STATUS_OK on success

Referenced by samba_init_module().

NTSTATUS samba_init_module | ( | void |  | ) |

Entry point for the default OpenChange EMSMDB server

Returns
  NT_STATUS_OK on success, otherwise NTSTATUS error

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/