2002-06-13 11:59:10 +08:00
|
|
|
.TH LDAP_RESULT 3 "RELEASEDATE" "OpenLDAP LDVERSION"
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" $OpenLDAP$
|
2003-01-04 04:20:47 +08:00
|
|
|
.\" Copyright 1998-2003 The OpenLDAP Foundation All Rights Reserved.
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH NAME
|
|
|
|
ldap_result \- Wait for the result of an LDAP operation
|
2002-06-21 15:32:54 +08:00
|
|
|
.SH LIBRARY
|
2002-06-22 05:25:38 +08:00
|
|
|
OpenLDAP LDAP (libldap, -lldap)
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.ft B
|
|
|
|
#include <ldap.h>
|
|
|
|
.LP
|
|
|
|
.ft B
|
2001-09-27 10:39:52 +08:00
|
|
|
int ldap_result( LDAP *ld, int msgid, int all,
|
|
|
|
struct timeval *timeout, LDAPMessage **result );
|
|
|
|
|
|
|
|
int ldap_msgfree( LDAPMessage *msg );
|
|
|
|
|
|
|
|
int ldap_msgtype( LDAPMessage *msg );
|
|
|
|
|
|
|
|
int ldap_msgid( LDAPMessage *msg );
|
1998-08-09 08:43:13 +08:00
|
|
|
.ft
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
|
|
|
.B ldap_result()
|
|
|
|
routine is used to wait for and return the result of
|
|
|
|
an operation previously initiated by one of the LDAP asynchronous
|
|
|
|
operation routines (e.g.,
|
|
|
|
.BR ldap_search (3),
|
|
|
|
.BR ldap_modify (3),
|
|
|
|
etc.). Those routines all return -1 in case of error, and an
|
|
|
|
invocation identifier upon successful initiation of the operation. The
|
|
|
|
invocation identifier is picked by the library and is guaranteed to be
|
|
|
|
unique across the LDAP session. It can be used to request the result
|
|
|
|
of a specific operation from
|
|
|
|
.B ldap_result()
|
|
|
|
through the \fImsgid\fP parameter.
|
|
|
|
.LP
|
|
|
|
The
|
|
|
|
.B ldap_result()
|
|
|
|
routine will block or not, depending upon the setting
|
|
|
|
of the \fItimeout\fP parameter.
|
|
|
|
If timeout is not a NULL pointer, it specifies a maximum
|
|
|
|
interval to wait for the selection to complete. If timeout
|
|
|
|
is a NULL pointer, the select blocks indefinitely. To
|
|
|
|
effect a poll, the timeout argument should be a non-NULL
|
|
|
|
pointer, pointing to a zero-valued timeval structure. See
|
|
|
|
.BR select (2)
|
|
|
|
for further details.
|
|
|
|
.LP
|
|
|
|
If the result of a specific operation is required, \fImsgid\fP should
|
|
|
|
be set to the invocation identifier returned when the operation was
|
2001-09-27 10:39:52 +08:00
|
|
|
initiated, otherwise LDAP_RES_ANY or LDAP_RES_UNSOLICITED should be
|
|
|
|
supplied to wait for any or unsolicited response.
|
|
|
|
.LP
|
|
|
|
The \fIall\fP parameter, if non-zero, causes
|
|
|
|
.B ldap_result()
|
|
|
|
to return all responses with msgid, otherwise only the
|
|
|
|
next response is returned. This is commonly used to obtain all
|
|
|
|
the responses of a search operation.
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
A search response is made up of zero or
|
2001-09-27 10:39:52 +08:00
|
|
|
more search entries, zero or more search references, and zero or
|
|
|
|
more extended parital responses followed by a search result. If
|
|
|
|
\fIall\fP is set to 0, search entries will be returned one at a
|
|
|
|
time as they come in, via separate calls to
|
1998-08-09 08:43:13 +08:00
|
|
|
.BR ldap_result() .
|
|
|
|
If it's set to 1, the search
|
2001-09-27 10:39:52 +08:00
|
|
|
response will only be returned in its entirety, i.e., after all entries,
|
|
|
|
all references, all extended parital responses, and the final search
|
|
|
|
result have been received.
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
Upon success, the type of the result received is returned and the
|
|
|
|
\fIresult\fP parameter will contain the result of the operation. This
|
|
|
|
result should be passed to the LDAP parsing routines,
|
2001-09-27 10:39:52 +08:00
|
|
|
.BR ldap_first_message (3)
|
1998-08-09 08:43:13 +08:00
|
|
|
and friends, for interpretation.
|
|
|
|
.LP
|
|
|
|
The possible result types returned are:
|
|
|
|
.LP
|
|
|
|
.nf
|
2001-09-27 10:39:52 +08:00
|
|
|
LDAP_RES_BIND (0x61)
|
|
|
|
LDAP_RES_SEARCH_ENTRY (0x64)
|
|
|
|
LDAP_RES_SEARCH_REFERENCE (0x73)
|
|
|
|
LDAP_RES_SEARCH_RESULT (0x65)
|
|
|
|
LDAP_RES_MODIFY (0x67)
|
|
|
|
LDAP_RES_ADD (0x69)
|
|
|
|
LDAP_RES_DELETE (0x6b)
|
|
|
|
LDAP_RES_MODDN (0x6d)
|
|
|
|
LDAP_RES_COMPARE (0x6f)
|
|
|
|
LDAP_RES_EXTENDED (0x78)
|
|
|
|
LDAP_RES_EXTENDED_PARTIAL (0x79)
|
1998-08-09 08:43:13 +08:00
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
The
|
|
|
|
.B ldap_msgfree()
|
|
|
|
routine is used to free the memory allocated for
|
|
|
|
a result by
|
|
|
|
.B ldap_result()
|
|
|
|
or
|
|
|
|
.BR ldap_search_s (3)
|
|
|
|
and friends. It takes
|
|
|
|
a pointer to the result to be freed and returns the type of the
|
|
|
|
message it freed.
|
1998-11-05 07:51:31 +08:00
|
|
|
.LP
|
|
|
|
The
|
|
|
|
.B ldap_msgtype()
|
|
|
|
routine returns the type of a message.
|
|
|
|
.LP
|
|
|
|
The
|
|
|
|
.B ldap_msgid()
|
|
|
|
routine returns the message id of a message.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH ERRORS
|
|
|
|
.B ldap_result()
|
|
|
|
returns -1 if something bad happens, and zero if the
|
|
|
|
timeout specified was exceeded.
|
1998-11-05 07:51:31 +08:00
|
|
|
.B ldap_msgtype()
|
|
|
|
and
|
|
|
|
.B ldap_msgid()
|
|
|
|
return -1 on error.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH SEE ALSO
|
|
|
|
.BR ldap (3),
|
|
|
|
.BR ldap_search (3),
|
2001-09-27 10:39:52 +08:00
|
|
|
.BR ldap_first_message (3),
|
1998-08-09 08:43:13 +08:00
|
|
|
.BR select (2)
|
1998-10-25 09:41:42 +08:00
|
|
|
.SH ACKNOWLEDGEMENTS
|
2003-06-29 23:34:32 +08:00
|
|
|
.B OpenLDAP
|
1998-10-25 09:41:42 +08:00
|
|
|
is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
|
2003-06-29 23:34:32 +08:00
|
|
|
.B OpenLDAP
|
1998-10-25 09:41:42 +08:00
|
|
|
is derived from University of Michigan LDAP 3.3 Release.
|