ldap_is_ldap_url,    ldap_url_parse,    ldap_free_urldesc,
       ldap_url_search, ldap_url_search_s,  ldap_url_search_st  -
       LDAP Uniform Resource Locator routines


SYNOPSIS

       #include <ldap.h>

       int ldap_is_ldap_url( url )
       char      *url;

       int ldap_url_parse( url, ludpp )
       char      *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 */
           /* may contain additional fields for internal use */
       } LDAPURLDesc;

       ldap_free_urldesc( ludp )
       LDAPURLDesc    *ludp;

       int ldap_url_search( ld, url, attrsonly )
       LDAP      *ld;
       char      *url;
       int       attrsonly;

       int ldap_url_search_s( ld, url, attrsonly, res )
       LDAP      *ld;
       char      *url;
       int       attrsonly;
       LDAPMessage    **res;

       int ldap_url_search_st( ld, url, attrsonly, timeout, res )
       LDAP      *ld;
       char      *url;
       int       attrsonly;
       struct timeval *timeout;
       LDAPMessage    **res;


DESCRIPTION

       These  routines  support  the  use  of  LDAP URLs (Uniform
       Resource Locators) as detailed in  RFC  2255.   LDAP  URLs
       look like this:

         ldap://hostport/dn[?attrs[?scope[?filter[?exts]]]]

         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  schemes  such  as
       ldaps://  and  ldapi:// may be parsed using the below rou­
       tines 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().

       ldap_url_search() initiates an  asynchronous  LDAP  search
       based  on  the  contents  of the url string.  This routine
       acts just like  ldap_search(3)  except  that  many  search
       parameters are pulled out of the URL.

       ldap_url_search_s()  performs  a  synchronous  LDAP search
       based on the contents of the  url  string.   This  routine
       acts  just  like  ldap_search_s(3) except that many search
       parameters are pulled out of the URL.

       ldap_url_search_st()  performs  a  synchronous  LDAP   URL
       search  with  a specified timeout.  This routine acts just
       like ldap_search_st(3) except that many search  parameters
       are pulled out of the URL.


SEE ALSO

       ldap(3), ldap_search(3)

       The  LDAP  URL Format, RFC 2255, Tim Howes and Mark Smith,
       December 1997.

       OpenLDAP is developed and maintained by The OpenLDAP  Pro­
       ject (http://www.openldap.org/).  OpenLDAP is derived from
       University of Michigan LDAP 3.3 Release.


Man(1) output converted with man2html