This topic has not yet been rated - Rate this topic

5.114.3 ProcessDirSyncSearchRequest

ProcessDirSyncSearchRequest(
    [in] searchArg:  DirSyncSearchArg,
    [in] dirSyncControlValue: DirSyncControlValue,
    [out] searchResultEntryList: SearchResultEntryList,
    [out] dirSyncResponseControl: Control
    ) : ULONG

Informative summary of behavior: The ProcessDirSyncSearchRequest procedure processes an LDAP search request with an LDAP_SERVER_DIRSYNC_OID control. It creates a list of search result entries and the LDAP_SERVER_DIRSYNC_OID response control.

err: ULONG
msgIn: DRS_MSG_GETCHGREQ_V10
msgOut: DRS_MSG_GETCHGREPLY_V6
filter: LDAPString
replFlags: ULONG

/* Transform the LDAP search request with LDAP_SERVER_DIRSYNC_OID control to
   a replication GetChanges request. */

err := DirSyncReqToGetChgReq(searchArg, dirSyncControlValue, msgIn)
if err ≠ 0 then
   return err
endif

replFlags := dirSyncControlValue.flags

/* Perform access checks unless client has specified object-level security */

if not (LDAP_DIRSYNC_OBJECT_SECURITY in replFlags) then
   err := SecurityCheckForChanges(msgIn)
   if err ≠ 0 then
      return err
   endif
endif

filter := searchArg.pfilter
/* Perform normal replication (Get replication changes). */

err := GetReplChanges(null, filter, replFlags, msgIn, msgOut) 
if err ≠ 0 then
   return err
endif

/* Transform the replication GetChanges reply to reply for the LDAP search
   request with LDAP_SERVER_DIRSYNC_OID control. */

err := GetChgReplyToSearchResult(msgOut, searchResultEntryList,
                                 dirSyncResponseControl)
if err ≠ 0 then
   return err
endif

return 0 /* success */
 
Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.