OpenChange NSPI Server implementation. More...
Functions | |
static NTSTATUS | dcesrv_exchange_nsp_dispatch (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r, struct mapiproxy *mapiproxy) |
static NTSTATUS | dcesrv_exchange_nsp_init (struct dcesrv_context *dce_ctx) |
static NTSTATUS | dcesrv_exchange_nsp_unbind (struct server_id server_id, uint32_t context_id) |
static enum MAPISTATUS | dcesrv_NspiBind (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiBind *r) |
static enum MAPISTATUS | dcesrv_NspiCompareMIds (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiCompareMIds *r) |
static enum MAPISTATUS | dcesrv_NspiDeleteEntries (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiDeleteEntries *r) |
static enum MAPISTATUS | dcesrv_NspiDNToMId (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiDNToMId *r) |
static enum MAPISTATUS | dcesrv_NspiGetIDsFromNames (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiGetIDsFromNames *r) |
static enum MAPISTATUS | dcesrv_NspiGetMatches (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiGetMatches *r) |
static enum MAPISTATUS | dcesrv_NspiGetNamesFromIDs (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiGetNamesFromIDs *r) |
static enum MAPISTATUS | dcesrv_NspiGetPropList (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiGetPropList *r) |
static enum MAPISTATUS | dcesrv_NspiGetProps (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiGetProps *r) |
static enum MAPISTATUS | dcesrv_NspiGetSpecialTable (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiGetSpecialTable *r) |
static enum MAPISTATUS | dcesrv_NspiGetTemplateInfo (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiGetTemplateInfo *r) |
static enum MAPISTATUS | dcesrv_NspiModLinkAtt (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiModLinkAtt *r) |
static enum MAPISTATUS | dcesrv_NspiModProps (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiModProps *r) |
static enum MAPISTATUS | dcesrv_NspiQueryColumns (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiQueryColumns *r) |
static enum MAPISTATUS | dcesrv_NspiQueryRows (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiQueryRows *r) |
static enum MAPISTATUS | dcesrv_NspiResolveNames (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiResolveNames *r) |
static enum MAPISTATUS | dcesrv_NspiResolveNamesW (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiResolveNamesW *r) |
static enum MAPISTATUS | dcesrv_NspiResortRestriction (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiResortRestriction *r) |
static enum MAPISTATUS | dcesrv_NspiSeekEntries (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiSeekEntries *r) |
static enum MAPISTATUS | dcesrv_NspiUnbind (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiUnbind *r) |
static enum MAPISTATUS | dcesrv_NspiUpdateStat (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct NspiUpdateStat *r) |
NTSTATUS | samba_init_module (void) |
Variables | |
TDB_CONTEXT * | emsabp_tdb_ctx = NULL |
struct exchange_nsp_session * | nsp_session = NULL |
OpenChange NSPI Server implementation.
static NTSTATUS dcesrv_exchange_nsp_dispatch | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
void * | r, | ||
struct mapiproxy * | mapiproxy | ||
) | [static] |
Dispatch incoming NSPI 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 NSPI data |
mapiproxy | pointer to the mapiproxy structure controlling mapiproxy behavior |
References dcesrv_NspiBind(), dcesrv_NspiUnbind(), dcesrv_NspiUpdateStat(), dcesrv_NspiQueryRows(), dcesrv_NspiSeekEntries(), dcesrv_NspiGetMatches(), dcesrv_NspiResortRestriction(), dcesrv_NspiDNToMId(), dcesrv_NspiGetPropList(), dcesrv_NspiGetProps(), dcesrv_NspiCompareMIds(), dcesrv_NspiModProps(), dcesrv_NspiGetSpecialTable(), dcesrv_NspiGetTemplateInfo(), dcesrv_NspiModLinkAtt(), dcesrv_NspiDeleteEntries(), dcesrv_NspiQueryColumns(), dcesrv_NspiGetNamesFromIDs(), dcesrv_NspiGetIDsFromNames(), dcesrv_NspiResolveNames(), and dcesrv_NspiResolveNamesW().
Referenced by samba_init_module().
static NTSTATUS dcesrv_exchange_nsp_init | ( | struct dcesrv_context * | dce_ctx | ) | [static] |
Initialize the NSPI OpenChange server
dce_ctx | pointer to the server context |
References exchange_nsp_session::session, emsabp_tdb_ctx, and emsabp_tdb_init().
Referenced by samba_init_module().
static NTSTATUS dcesrv_exchange_nsp_unbind | ( | struct server_id | server_id, |
uint32_t | context_id | ||
) | [static] |
Terminates the NSPI connection and release the associated session and context if still available. This case occurs when the client doesn't call NspiUnbind but quit unexpectedly.
server_id | reference to the server identifier structure |
context_id | the connection context identifier |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp_sub(), and mpm_session_release().
Referenced by samba_init_module().
static enum MAPISTATUS dcesrv_NspiBind | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiBind * | r | ||
) | [static] |
exchange_nsp NspiBind (0x0) function, Initiates a NSPI session with the client.
This function checks if the user is an Exchange user and input parameters like codepage are valid. If it passes the tests, the function initializes an emsabp context and returns to the client a valid policy_handle and expected reply parameters.
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiBind call structure |
References exchange_nsp_session::session, EXCHANGE_HANDLE_NSP, emsabp_init(), emsabp_tdb_ctx, emsabp_verify_user(), emsabp_verify_codepage(), samdb_ntds_objectGUID(), emsabp_context::samdb_ctx, exchange_nsp_session::next, mpm_session_cmp(), mpm_session_increment_ref_count(), mpm_session_init(), mpm_session_set_private_data(), mpm_session_set_destructor(), and emsabp_destructor().
static enum MAPISTATUS dcesrv_NspiCompareMIds | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiCompareMIds * | r | ||
) | [static] |
exchange_nsp NspiCompareMIds (0xA) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiCompareMIds request data |
static enum MAPISTATUS dcesrv_NspiDeleteEntries | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiDeleteEntries * | r | ||
) | [static] |
exchange_nsp NspiDeleteEntries (0xF) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiDeleteEntries request data |
static enum MAPISTATUS dcesrv_NspiDNToMId | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiDNToMId * | r | ||
) | [static] |
exchange_nsp NspiDNToMId (0x7) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiDNToMId request data |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp(), mpm_session::private_data, emsabp_search_legacyExchangeDN(), emsabp_context::tdb_ctx, emsabp_context::ttdb_ctx, emsabp_tdb_fetch_MId(), and emsabp_tdb_insert().
static enum MAPISTATUS dcesrv_NspiGetIDsFromNames | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiGetIDsFromNames * | r | ||
) | [static] |
exchange_nsp NspiGetIDsFromNames (0x12) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiGetIDsFromNames request data |
static enum MAPISTATUS dcesrv_NspiGetMatches | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiGetMatches * | r | ||
) | [static] |
exchange_nsp NspiGetMatches (0x5) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiGetMatches request data |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp(), mpm_session::private_data, emsabp_search(), and emsabp_fetch_attrs().
static enum MAPISTATUS dcesrv_NspiGetNamesFromIDs | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiGetNamesFromIDs * | r | ||
) | [static] |
exchange_nsp NspiGetNamesFromIDs (0x11) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiGetNamesFromIDs request data |
static enum MAPISTATUS dcesrv_NspiGetPropList | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiGetPropList * | r | ||
) | [static] |
exchange_nsp NspiGetPropList (0x8) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiGetPropList request data |
static enum MAPISTATUS dcesrv_NspiGetProps | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiGetProps * | r | ||
) | [static] |
exchange_nsp NspiGetProps (0x9) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiGetProps request data |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp(), mpm_session::private_data, emsabp_tdb_lookup_MId(), emsabp_context::tdb_ctx, and emsabp_fetch_attrs().
static enum MAPISTATUS dcesrv_NspiGetSpecialTable | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiGetSpecialTable * | r | ||
) | [static] |
exchange_nsp NspiGetSpecialTable (0xC) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiGetSpecialTable request data |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp(), mpm_session::private_data, emsabp_get_CreationTemplatesTable(), and emsabp_get_HierarchyTable().
static enum MAPISTATUS dcesrv_NspiGetTemplateInfo | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiGetTemplateInfo * | r | ||
) | [static] |
exchange_nsp NspiGetTemplateInfo (0xD) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiGetTemplateInfo request data |
static enum MAPISTATUS dcesrv_NspiModLinkAtt | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiModLinkAtt * | r | ||
) | [static] |
exchange_nsp NspiModLinkAtt (0xE) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiModLinkAtt request data |
static enum MAPISTATUS dcesrv_NspiModProps | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiModProps * | r | ||
) | [static] |
exchange_nsp NspiModProps (0xB) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiModProps request data |
static enum MAPISTATUS dcesrv_NspiQueryColumns | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiQueryColumns * | r | ||
) | [static] |
exchange_nsp NspiQueryColumns (0x10) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiQueryColumns request data |
static enum MAPISTATUS dcesrv_NspiQueryRows | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiQueryRows * | r | ||
) | [static] |
exchange_nsp NspiQueryRows (0x3) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiQueryRows request data |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp(), mpm_session::private_data, emsabp_tdb_lookup_MId(), emsabp_context::tdb_ctx, emsabp_ab_container_enum(), emsabp_fetch_attrs_from_msg(), and emsabp_fetch_attrs().
static enum MAPISTATUS dcesrv_NspiResolveNames | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiResolveNames * | r | ||
) | [static] |
exchange_nsp NspiResolveNames (0x13) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiResolveNames request data |
static enum MAPISTATUS dcesrv_NspiResolveNamesW | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiResolveNamesW * | r | ||
) | [static] |
exchange_nsp NspiResolveNamesW (0x14) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiResolveNamesW request data |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp(), mpm_session::private_data, emsabp_ab_container_by_id(), emsabp_context::samdb_ctx, and emsabp_fetch_attrs_from_msg().
static enum MAPISTATUS dcesrv_NspiResortRestriction | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiResortRestriction * | r | ||
) | [static] |
exchange_nsp NspiResortRestriction (0x6) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiResortRestriction request data |
static enum MAPISTATUS dcesrv_NspiSeekEntries | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiSeekEntries * | r | ||
) | [static] |
exchange_nsp NspiSeekEntries (0x4) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiSeekEntries request data |
static enum MAPISTATUS dcesrv_NspiUnbind | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiUnbind * | r | ||
) | [static] |
exchange_nsp NspiUnbind (0x1) function, Terminates a NSPI session with the client
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiUnbind call structure |
References exchange_nsp_session::session, exchange_nsp_session::next, mpm_session_cmp(), and mpm_session_release().
static enum MAPISTATUS dcesrv_NspiUpdateStat | ( | struct dcesrv_call_state * | dce_call, |
TALLOC_CTX * | mem_ctx, | ||
struct NspiUpdateStat * | r | ||
) | [static] |
exchange_nsp NspiUpdateStat (0x2) function
dce_call | pointer to the session context |
mem_ctx | pointer to the memory context |
r | pointer to the NspiUpdateStat request data |
NTSTATUS samba_init_module | ( | void | ) |
Entry point for the default OpenChange NSPI server
References mapiproxy_module::name, mapiproxy_module::status, MAPIPROXY_DEFAULT, mapiproxy_module::description, mapiproxy_module::endpoint, mapiproxy_module::init, dcesrv_exchange_nsp_init(), mapiproxy_module::unbind, dcesrv_exchange_nsp_unbind(), mapiproxy_module::dispatch, dcesrv_exchange_nsp_dispatch(), mapiproxy_module::push, mapiproxy_module::pull, mapiproxy_module::ndr_pull, and mapiproxy_server_register().
TDB_CONTEXT* emsabp_tdb_ctx = NULL |
Referenced by dcesrv_NspiBind(), and dcesrv_exchange_nsp_init().
struct exchange_nsp_session* nsp_session = NULL |
![]() ![]() ![]() |
This content is licensed under the Creative Commons Attribution ShareAlike License v. 3.0: http://creativecommons.org/licenses/by-sa/3.0/ |