Hi All, Attached is a patch of my work in progress in NSPI interface implementation.
Hereafter is a summary of changes I've made so far: 1. emsabp.c:emsabp_init() function uses 'ldb_wrap_connect()' to open .ldb databases. Primary motivation for this was to be able to handle extended syntaxes correctly (ldb_register_samba_handlers() should be called prior opening .ldb file) 2. emsabp.c: emsabp_get_server_GUID() function was a little bit reimplemented. The goal was to return the GUID of the current machine, i.e. the machine that actually implements NSPI interface. This GUID is to be found as 'objectGUID' attribute for "CN=NTDS Settings, CN=Servers,CN=Default-First-Site-Name,CN=Sites,&{CONFIGDN}" entry. 3. dcesrv_exchange_nsp.c:dcesrv_NspiDNToMId() changed to use 'emsabp_ctx->ttdb_ctx' for caching. emsabp.c:emsabp_search_legacyExchangeDN() function changed to search for 'legacyExchangeDN' attribute in 'domain' partition as this where Exchange stores this information - in every mail-enabled user's entry. TODO: I think we should change provisioning scripts to store this attribute in 'domain' partition rather than 'Configuration' partition (if it is not done yet). I will check this futher. 4. dcesrv_exchange_nsp.c: dcesrv_NspiGetProps() changed to comply to NSPI interface specification more closely (ref. [MS-NSPI].pdf - 3.1.4.7). Main points are: - in case Mid is nou found/invalid, function should behave as though no values are found for this Mid - should return ErrorsReturned if there is a requested property with no value (point 12.) emsabp.c: emsabp_fetch_attrs() altered to return MAPI_E_INVALID_BOOKMARK in case Mid is not found neither in ttdb_ctx nor in tdb_ctx. This way calling functions may recognize "Invalid Mid" without checking it explicitely. I will continue sending patches for all of you to follow my progress (and review what and how is done ;) Any reviews will be highly appreciated. BR, Kamen Mazdrashki Software Engineer kamen.mazdras...@postpath.com CISCO SYSTEMS BULGARIA EOOD 18 Macedonia Blvd. Sofia 1606 Bulgaria Cisco home page Think before you print.
001_NSPI_Implementation_work_in_progress.patch
Description: Binary data
_______________________________________________ devel mailing list devel@lists.openchange.org http://mailman.openchange.org/listinfo/devel