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 */