On Fri, Jul 17, 2009 at 17:30, Kamen Mazdrashki<[email protected]> wrote: > 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. >
Hi All,
Please find attached a patch file with "NSPI work in progress".
I am quite aware that a big patch file in SVN format is not very easy to be
reviewed.
I can export this a series of GIT format patches which I find more easy for
reading.
Hereafter is a summary of changes:
3. dcesrv_exchange_nsp.c: dcesrv_NspiDNToMId() - {this obsoletes previous
changes} Function was altered to conform to new interface for
emsabp_table_fetch_attrs() function. emsabp_table_fetch_attrs() now searches
both in "Configuration" and "Domain" partitions. The function returns where
data is found in an output parameter - bUseConfPartition. dcesrv_NspiDNToMId()
uses this information to cache returned data properly - either in temporary TDB
cache or in permanent TDB cache.
(TODO from previous time) - I've checked user-creation script and it should
work as expected -
legacyExchangeDN attribute is set for the user's record in Domain partition.
....
5. libmapi/conf/mapi-codes - Mapi status codes fixed so that Warning codes not
to look like errors.
6. emsabp.c: emsabp_set_PermanentEntryID() function altered to follow MS docs
more closely (ref. [MS-NSPI], [MS-OXOABK]).
NOTE: I think this function should be extended further to cover all possible
AB objects.
7. emsabp.c: emsabp_query() - Added support for PR_ADDRTYPE_UNICODE property
tag. Also, string manipulation was changed a little bit to support
PT_MV_UNICODE values too.
emsabp_property.c: emsabp_property[] map - PR_EMS_AB_PROXY_ADDRESSES_UNICODE
property tag added.
NOTE: Actually, IMO emsabp_property.c interface should be reimplemented so
that the propertyTag map to support "PropertyID to AD attribute value" mapping
rather that "PropertyTag to AD attr value".
8. emsabp.c: emsabp_query() - PR_SEARCH_KEY implementation added
9. emsabp.c: emsabp_query() - PR_ENTRYID altered to return either
PermanentEntryID or EphemeralEntryID depending on requested type of EntryID to
be returned. For this to be achieved, dwFlags are propagated from outer Nspi
interface down to related implementation functions.
As before - any comments and reviews will be highly appreciated.
BR,
Kamen Mazdrashki
[email protected]
CISCO SYSTEMS BULGARIA EOOD
18 Macedonia Blvd. Sofia 1606
Bulgaria
http://www.cisco.com/global/BG/
002_NSPI_Implementation_work_in_progress.patch
Description: Binary data
_______________________________________________ devel mailing list [email protected] http://mailman.openchange.org/listinfo/devel
