'\" te
.\" Copyright (C) 1990, Regents of the University of Michigan.  All Rights Reserved.
.\" Portions Copyright (C) 2002, Sun Microsystems, Inc. All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH LDAP_COMPARE 3LDAP "Jan 27, 2002"
.SH NAME
ldap_compare, ldap_compare_s, ldap_compare_ext, ldap_compare_ext_s \- LDAP
compare operation
.SH SYNOPSIS
.LP
.nf
cc[ \fIflag\fR... ] \fIfile\fR... -lldap[ \fIlibrary\fR... ]
#include <lber.h>
#include <ldap.h>

\fBint\fR \fBldap_compare\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBchar\fR \fI*attr\fR, \fBchar\fR \fI*value\fR);
.fi

.LP
.nf
\fBint\fR \fBldap_compare_s\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBchar\fR \fI*attr\fR, \fBchar\fR \fI*value\fR);
.fi

.LP
.nf
\fBint\fR \fBldap_compare_ext\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBchar\fR \fI*attr\fR,
     \fBstruct berval\fR \fI*bvalue\fR, \fBLDAPControl\fR \fI**serverctrls\fR,
     \fBLDAPControl\fR \fI**clientctrls\fR,\fBint\fR \fI*msgidp\fR);
.fi

.LP
.nf
\fBint\fR \fBldap_compare_ext_s\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBchar\fR \fI*attr\fR,
     \fBstruct berval\fR \fI*bvalue\fR, \fBLDAPControl\fR \fI**serverctrls\fR,
     \fBLDAPControl\fR \fI**clientctrls\fR);
.fi

.SH DESCRIPTION
.sp
.LP
The \fBldap_compare_s()\fR function is used to perform an LDAP compare
operation synchronously.  It takes \fIdn\fR, the DN of the entry upon which to
perform the compare, and \fIattr\fR and \fIvalue\fR, the attribute type and
value to compare to those found in the entry.  It returns an LDAP error code,
which will be  \fBLDAP_COMPARE_TRUE\fR if the entry contains the attribute
value and \fBLDAP_COMPARE_FALSE\fR if it does not.  Otherwise, some error code
is returned.
.sp
.LP
The \fBldap_compare()\fR function is used to perform an LDAP compare operation
asynchronously.  It takes the same parameters as \fBldap_compare_s()\fR, but
returns the message id of the request it initiated.  The result of the compare
can be obtained by a subsequent call to \fBldap_result\fR(3LDAP).
.sp
.LP
The  \fBldap_compare_ext()\fR function initiates an asynchronous compare
operation and returns  \fBLDAP_SUCCESS\fR if the request was successfully sent
to the server, or else it returns a LDAP error code if not (see
\fBldap_error\fR(3LDAP). If successful,  \fBldap_compare_ext()\fR places the
message id of the request in  \fI*msgidp\fR. A subsequent call to
\fBldap_result()\fR, can be used to obtain the result of the add request.
.sp
.LP
The  \fBldap_compare_ext_s()\fR function initiates a synchronous compare
operation and as such returns the result of the operation itself.
.SH ERRORS
.sp
.LP
\fBldap_compare_s()\fR returns an LDAP error code which can be interpreted by
calling one of \fBldap_perror\fR(3LDAP) and friends.   \fBldap_compare()\fR
returns \fB\(mi1\fR if something went wrong initiating the request.  It returns
the non-negative message id of the request if it was successful.
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for a description of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
Interface Stability	Evolving
.TE

.SH SEE ALSO
.sp
.LP
\fBldap\fR(3LDAP), \fBldap_error\fR(3LDAP), \fBattributes\fR(5)
.SH BUGS
.sp
.LP
There is no way to compare binary values using \fBldap_compare()\fR.