Processing Open Directory Requests

Open Directory passes to the appropriate Open Directory plug-in certain requests from Open Directory clients. The requests correspond to a subset of the Open Directory function calls described in Open Directory Programming Guide. Every Open Directory plug-in must be prepared to process each of the requests described in this section even if only to respond that the requested service is not implemented (eNotYetImplemented) or not handled (eNotHandledByThisNode). To indicate the outcome of processing a request, the plug-in should return a result code from the list of result codes documented in Open Directory Programming Guide.

The plug-in must be prepared to process requests for each of the Open Directory functions described in this section.

Table 3-1  Open Directory functions that cause the ProcessRequest entry point to be called

dsAddAttribute

dsGetDirNodeInfo

dsAddAttributeValue

dsGetRecordAttributeInfo

dsCloseAttributeList

dsGetRecordAttributeValueByID

dsCloseAttributeValueList

dsGetRecordAttributeValueByValue

dsCloseDirNode

dsGetRecordEntry

dsCloseRecord

dsGetRecordList

dsCreateRecord

dsGetRecordReferenceInfo

dsCreateRecordAndOpen

dsOpenDirNode

dsDeleteRecord

dsOpenRecord

dsDoAttributeValueSearch

dsRemoveAttribute

dsDoAttributeValueSearchWithData

dsRemoveAttributeValue

dsDoDirNodeAuth

dsSetAttributeAccess

dsDoPluginCustomCall

dsSetAttributeFlags

dsDoMultipleAttributeValueSearch

dsSetAttributeValue

dsDoMultipleAttributeValueSearchWithData

dsSetAttributeValues

dsFlushRecord

dsSetRecordAccess

dsGetAttributeEntry

dsSetRecordFlags

dsGetAttributeValue

dsSetRecordName

As an alternative to processing dsCloseAttributeList, dsCloseAttributeValueList, dsGetRecordEntry, dsGetAttributeEntry, and dsGetAttributeValue requests in the plug-in, applications can use client-side buffer parsing to process these requests. For information, see the chapter “Client Side Buffer Parsing.”

See “Runtime Environment” for information on three special cases in which the ProcessRequest entry point of an inactive plug-in is called.