ldap_result()--Retrieve Result of an Asynchronous LDAP Operation



  Syntax
 #include <sys/time.h>
 #include <ldap.h>
 
 int ldap_result(
                LDAP            *ld,
                int              msgid,
                int              all,
                struct timeval  *timeout,
                LDAPMessage    **result)

  Default Public Authority: *USE

  Library Name/Service Program: QSYS/QGLDCLNT

  Threadsafe: Yes

The ldap_result() function is used to wait for and return the result of an operation previously initiated by one of the LDAP asynchronous operation functions (such as ldap_search() and ldap_modify()).

Authorities and Locks

No IBM® i authority is required.


Parameters

ld
(Input) Specifies the LDAP pointer returned by a previous call to ldap_init(), ldap_ssl_init(), or ldap_open().
msgid
(Input) Specifies the message ID of the operation whose results are to be returned. The parameter can be set to LDAP_RES_ANY if any result is desired.
all
(Input) This parameter only has meaning for search results. For search results, all is used to specify how many search result messages will be returned on this call to ldap_result(). Specify LDAP_MSG_ONE to retrieve one search result message (for example, a single entry). Specify LDAP_MSG_ALL to request that all results of a search be received. ldap_result() will wait until all results are received before returning the results in a single chain. Specify LDAP_MSG_RECEIVED to indicate that all results retrieved so far should be returned in the result chain.
timeout
(Input) Specifies how long in seconds to wait for results (as identified by the supplied msgid) to be returned from ldap_result. A NULL value causes ldap_result() to wait until results for the operation identified by msgid are available. To poll, the timeout parameter should be non-NULL, pointing to a zero-valued timeval structure.
result
(Output) Contains the result of the asynchronous operation identified by msgid. This value should be freed by ldap_msgfree() when the result is no longer needed.

Return Value

-1
If ldap_result() was unsuccessful, sets the appropriate LDAP error, and ldap_get_errno() API can be used to obtain the error code.

0
If ldap_result() times out or there is no message available.

If successful,
it returns one of the following result types:

LDAP_RES_BIND 0x61L
LDAP_RES_SEARCH_ENTRY 0x64L
LDAP_RES_SEARCH_RESULT 0x65L
LDAP_RES_MODIFY 0x67L
LDAP_RES_ADD 0x69L
LDAP_RES_DELETE 0x6bL
LDAP_RES_MODRDN 0x6dL
LDAP_RES_COMPARE 0x6fL
LDAP_RES_SEARCH_REFERENCE 0X73L
LDAP_RES_EXTENDED 0X78L
LDAP_EXTENDED_RES_NAME 0X8aL
LDAP_EXTENDED_RES_VALUE 0X8bL
LDAP_RES_REFERRAL 0Xa3L
LDAP_RES_ANY (-1L)


Error Conditions

If ldap_result() is not successful, ld_errno will be set to indicate the error. See LDAP Client API Error Conditions for possible values of ld_errno field. Use ldap_get_errno() function to retrieve the error information.


Error Messages

The following message may be sent from this function.

Message ID Error Message Text
CPF3CF2 E Error(s) occurred during running of ldap_result API.


Related Information



API introduced: V4R3

[ Back to top | LDAP APIs | APIs by category ]