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]
LDAP_UFN 3LDAP "Jan 27, 2002"
NAME
ldap_ufn, ldap_ufn_search_s, ldap_ufn_search_c, ldap_ufn_search_ct, ldap_ufn_setfilter, ldap_ufn_setprefix, ldap_ufn_timeout - LDAP user friendly search functions
SYNOPSIS

cc[ flag... ] file... -lldap[ library... ]
#include <lber.h>
#include <ldap.h>

int ldap_ufn_search_c(LDAP *ld, char *ufn, char **attrs,
 int attrsonly, LDAPMessage **res, int (*cancelproc)(),
 void *cancelparm);

int ldap_ufn_search_ct(LDAP *ld, char *ufn, char **attrs,
 int attrsonly, LDAPMessage **res,int (*cancelproc)(),
 void *cancelparm,char *tag1, char *tag2,
 char *tag3);

int ldap_ufn_search_s(LDAP *ld, char *ufn, char **attrs,
 int attrsonly, LDAPMessage **res);

LDAPFiltDesc *ldap_ufn_setfilter(LDAP *ld, char *fname);

void ldap_ufn_setprefix(LDAP *ld, char *prefix);

int ldap_ufn_timeout(void *tvparam);
DESCRIPTION

These functions are used to perform LDAP user friendly search operations. ldap_ufn_search_s() is the simplest form. It does the search synchronously. It takes ld to identify the LDAP connection. The ufn parameter is the user friendly name for which to search. The attrs, attrsonly and res parameters are the same as for ldap_search(3LDAP).

The ldap_ufn_search_c() function functions the same as ldap_ufn_search_s(), except that it takes cancelproc, a function to call periodically during the search. It should be a function taking a single void * argument, given by cancelparm. If cancelproc returns a non-zero result, the search will be abandoned and no results returned. The purpose of this function is to provide a way for the search to be cancelled, for example, by a user or because some other condition occurs.

The ldap_ufn_search_ct() function is like ldap_ufn_search_c(), except that it takes three extra parameters. tag1 is passed to the ldap_init_getfilter(3LDAP) function when resolving the first component of the UFN. tag2 is used when resolving intermediate components. tag3 is used when resolving the last component. By default, the tags used by the other UFN search functions during these three phases of the search are "ufn first", "ufn intermediate", and "ufn last".

The ldap_ufn_setfilter() function is used to set the ldapfilter.conf(4) file for use with the ldap_init_getfilter(3LDAP) function to fname.

The ldap_ufn_setprefix() function is used to set the default prefix (actually, it's a suffix) appended to UFNs before searhing. UFNs with fewer than three components have the prefix appended first, before searching. If that fails, the UFN is tried with progressively shorter versions of the prefix, stripping off components. If the UFN has three or more components, it is tried by itself first. If that fails, a similar process is applied with the prefix appended.

The ldap_ufn_timeout() function is used to set the timeout associated with ldap_ufn_search_s() searches. The timeout parameter should actually be a pointer to a struct timeval. This is so ldap_ufn_timeout() can be used as a cancelproc in the above functions.

ATTRIBUTES

See attributes(5) for a description of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Evolving
SEE ALSO

gettimeofday(3C), ldap(3LDAP), ldap_search(3LDAP), ldap_getfilter(3LDAP), ldapfilter.conf(4), ldap_error(3LDAP), attributes(5)

NOTES

These functions may allocates memory. Return values are contained in <ldap.h>.