2002-06-13 11:59:10 +08:00
|
|
|
.TH LDAP_RESULT 3 "RELEASEDATE" "OpenLDAP LDVERSION"
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" $OpenLDAP$
|
2007-01-03 04:00:42 +08:00
|
|
|
.\" Copyright 1998-2007 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
|
2007-02-16 19:52:46 +08:00
|
|
|
is a NULL pointer, the LDAP_OPT_TIMEOUT value set by
|
|
|
|
.BR ldap_set_option (3)
|
|
|
|
is used. With the default setting,
|
|
|
|
the select blocks indefinitely. To
|
1998-08-09 08:43:13 +08:00
|
|
|
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
|
2005-07-04 14:57:10 +08:00
|
|
|
more extended partial responses followed by a search result. If
|
2001-09-27 10:39:52 +08:00
|
|
|
\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,
|
2005-07-04 14:57:10 +08:00
|
|
|
all references, all extended partial responses, and the final search
|
2001-09-27 10:39:52 +08:00
|
|
|
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
|
2006-01-02 18:19:27 +08:00
|
|
|
\fIresult\fP parameter will contain the result of the operation;
|
|
|
|
otherwise, the \fIresult\fP parameter is undefined. This
|
1998-08-09 08:43:13 +08:00
|
|
|
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)
|
2007-03-21 18:23:51 +08:00
|
|
|
LDAP_RES_INTERMEDIATE (0x79)
|
1998-08-09 08:43:13 +08:00
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
The
|
|
|
|
.B ldap_msgfree()
|
|
|
|
routine is used to free the memory allocated for
|
2003-07-23 02:30:59 +08:00
|
|
|
result(s) by
|
1998-08-09 08:43:13 +08:00
|
|
|
.B ldap_result()
|
|
|
|
or
|
|
|
|
.BR ldap_search_s (3)
|
2003-07-23 02:30:59 +08:00
|
|
|
and friends.
|
|
|
|
It takes a pointer to the result or result chain to be freed and returns
|
|
|
|
the type of the last message in the chain.
|
|
|
|
If the parameter is NULL, the function does nothing and returns zero.
|
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
|
2007-01-03 04:25:16 +08:00
|
|
|
.so ../Project
|