ldap_is_ldap_url, ldap_url_parse, ldap_free_urldesc - LDAP Uniform Resource Locator routines
Contents
Acknowledgements
OpenLDAPSoftware is developed and maintained by The OpenLDAP Project <http://www.openldap.org/>.
OpenLDAPSoftware is derived from the University of Michigan LDAP 3.3 Release.
OpenLDAP 2.6.9+dfsg-2ubuntu1 2024/11/26 LDAP_URL(3)
Description
These routines support the use of LDAP URLs (Uniform Resource Locators) as detailed in RFC 4516. LDAP
URLs look like this:
ldap://hostport/dn[?attrs[?scope[?filter[?exts]]]]
where:
hostport is a host name with an optional ":portnumber"
dn is the search base
attrs is a comma separated list of attributes to request
scope is one of these three strings:
base one sub (default=base)
filter is filter
exts are recognized set of LDAP and/or API extensions.
Example:
ldap://ldap.example.net/dc=example,dc=net?cn,sn?sub?(cn=*)
URLs that are wrapped in angle-brackets and/or preceded by "URL:" are also tolerated. Alternative LDAP
schemes such as ldaps:// and ldapi:// may be parsed using the below routines as well.
ldap_is_ldap_url() returns a non-zero value if url looks like an LDAP URL (as opposed to some other kind
of URL). It can be used as a quick check for an LDAP URL; the ldap_url_parse() routine should be used if
a more thorough check is needed.
ldap_url_parse() breaks down an LDAP URL passed in url into its component pieces. If successful, zero is
returned, an LDAP URL description is allocated, filled in, and ludpp is set to point to it. If an error
occurs, a non-zero URL error code is returned.
ldap_free_urldesc() should be called to free an LDAP URL description that was obtained from a call to
ldap_url_parse().
Library
OpenLDAP LDAP (libldap, -lldap)
Name
ldap_is_ldap_url, ldap_url_parse, ldap_free_urldesc - LDAP Uniform Resource Locator routines
See Also
ldap(3)
RFC4516 <http://www.rfc-editor.org/rfc/rfc4516.txt>
Synopsis
#include<ldap.h>intldap_is_ldap_url(constchar*url)intldap_url_parse(constchar*url,LDAPURLDesc**ludpp)
typedef struct ldap_url_desc {
char * lud_scheme; /* URI scheme */
char * lud_host; /* LDAP host to contact */
int lud_port; /* port on host */
char * lud_dn; /* base for search */
char ** lud_attrs; /* list of attributes */
int lud_scope; /* a LDAP_SCOPE_... value */
char * lud_filter; /* LDAP search filter */
char ** lud_exts; /* LDAP extensions */
int lud_crit_exts; /* true if any extension is critical */
/* may contain additional fields for internal use */
} LDAPURLDesc;
voidldap_free_urldesc(LDAPURLDesc*ludp);
