ldap_search, ldap_search_s, ldap_search_st - Perform an LDAP search operation
OpenLDAP LDAP (libldap, -lldap)
#include <sys/time.h> /* for struct timeval definition */ #include <ldap.h> int ldap_search(ld, base, scope, filter, attrs, attrsonly) LDAP *ld; char *base; int scope; char *filter, *attrs[]; int attrsonly; int ldap_search_s(ld, base, scope, filter, attrs, attrsonly, res) LDAP *ld; char *base; int scope; char *filter, *attrs[] int attrsonly; LDAPMessage **res; int ldap_search_st(ld, base, scope, filter, attrs, attrsonly, timeout, res) LDAP *ld; char *base; int scope; char *filter, *attrs[] int attrsonly; struct timeval *timeout; LDAPMessage **res;
Filter is a string representation of the filter to apply in the search. Simple filters can be specified as (attributetype=attributevalue). More complex filters are specified using a prefix notation according to the following BNF:
<filter> ::= '(' <filtercomp> ')' <filtercomp> ::= <and> | <or> | <not> | <simple> <and> ::= '&' <filterlist> <or> ::= '|' <filterlist> <not> ::= '!' <filter> <filterlist> ::= <filter> | <filter> <filterlist> <simple> ::= <attributetype> <filtertype> <attributevalue> <filtertype> ::= '=' | '~=' | '<=' | '>='
The '~=' construct is used to specify approximate matching. The representation for <attributetype> and <attributevalue> are as described in RFC 2254. In addition, <attributevalue> can be a single * to achieve an attribute existence test, or can contain text and *'s interspersed to achieve substring matching.
For example, the filter "(mail=*)" will find any entries that have a mail attribute. The filter "(mail=*@terminator.rs.itd.umich.edu)" will find any entries that have a mail attribute ending in the specified string. To put parentheses in a filter, escape them with a backslash '\' character. See RFC 2254 for a more complete description of allowable filters.
Attrs is a null-terminated array of attribute types to return from entries that match filter. If NULL is specified, the return of all user attributes is requested. The type "*" (LDAP_ALL_USER_ATTRIBUTES) may be used to request all user attributes to be returned. The type "+"(LDAP_ALL_OPERATIONAL_ATTRIBUTES) may be used to request all operational attributes to be returned. To request no attributes, the type "1.1" (LDAP_NO_ATTRS) should be listed by itself.
Attrsonly should be set to 1 if only attribute types are wanted. It should be set to 0 if both attributes types and attribute values are wanted.
These routines may dynamically allocate memory. The caller is responsible for freeing such memory using supplied deallocation routines. Return values are contained in <ldap.h>.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |