ABCDEFGHIJKLMNOPQRSTUVWXYZ

ldap_get_dn

LDAP_GET_DN(3)                                                  LDAP_GET_DN(3)



NAME
       ldap_get_dn,  ldap_explode_dn,  ldap_explode_rdn, ldap_dn2ufn - LDAP DN
       handling routines

SYNOPSIS
       #include <ldap.h>

       char *ldap_get_dn(ld, entry)
       LDAP *ld;
       LDAPMessage *entry;

       char **ldap_explode_dn(dn, notypes)
       char *dn;
       int notypes;

       char **ldap_explode_rdn(rdn, notypes)
       char *rdn;
       int notypes;

       char *ldap_dn2ufn(dn)
       char *dn;

DESCRIPTION
       These routines allow LDAP entry names (Distinguished Names, or DNs)  to
       be  obtained, parsed, converted to a user-friendly form, and tested.  A
       DN has the form described in RFC  2253  "Lightweight  Directory  Access
       Protocol (v3): UTF-8 String Representation of Distinguished Names".

       The   ldap_get_dn()   routine   takes   an   entry   as   returned   by
       ldap_first_entry(3) or ldap_next_entry(3) and returns  a  copy  of  the
       entry's  DN.   Space for the DN will be obtained dynamically and should
       be freed by the caller using ldap_memfree(3).

       The ldap_explode_dn() routine takes a DN as returned  by  ldap_get_dn()
       and  breaks  it  up  into its component parts.  Each part is known as a
       Relative Distinguished Name, or RDN.  ldap_explode_dn() returns a NULL-
       terminated  array, each component of which contains an RDN from the DN.
       The notypes parameter is used to request that only the  RDN  values  be
       returned,  not  their  types.  For example, the DN "cn=Bob, c=US" would
       return as either { "cn=Bob", "c=US", NULL } or { "Bob", "US",  NULL  },
       depending  on whether notypes was 0 or 1, respectively.  The result can
       be freed by calling ldap_value_free(3).

       Similarly, the ldap_explode_rdn() routine takes an RDN as  returned  by
       ldap_explode_dn(dn,0)  and breaks it up into its "type=value" component
       parts (or just "value", if the notypes parameter is set).   The  result
       can be freed by calling ldap_value_free(3).

       ldap_dn2ufn()  is used to turn a DN as returned by ldap_get_dn() into a
       more user-friendly form, stripping off type names.  See RFC 1781 "Using
       the  Directory to Achieve User Friendly Naming" for more details on the
       UFN format.  The space for the UFN returned is obtained dynamically and
       the user is responsible for freeing it via a call to ldap_memfree(3).

ERRORS
       If  an error occurs in ldap_get_dn(), NULL is returned and the ld_errno
       field  in  the  ld  parameter  is  set  to  indicate  the  error.   See
       ldap_error(3)    for   a   description   of   possible   error   codes.
       ldap_explode_dn(), ldap_explode_rdn(), and  ldap_dn2ufn()  will  return
       NULL with errno(3) set appropriately in case of trouble.

NOTES
       These  routines dyanamically allocate memory that the caller must free.

SEE ALSO
       ldap(3),    ldap_error(3),    ldap_first_entry(3),     ldap_memfree(3),
       ldap_value_free(3)

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          21 July 2000                   LDAP_GET_DN(3)