ABCDEFGHIJKLMNOPQRSTUVWXYZ

ldap_url

LDAP_URL(3)                                                        LDAP_URL(3)



NAME
       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]]]]

       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 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 compo-
       nent 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.

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



OpenLDAP 2.0.27-Release         17 October 2000                    LDAP_URL(3)