ldap_entry2text,  ldap_entry2text_search, ldap_vals2text -
       LDAP entry display routines


SYNOPSIS

       #include <ldap.h>
       #include <disptmpl.h>

       int ldap_entry2text( ld, buf, entry, tmpl, defattrs, defvals, writeproc,
           writeparm, eol, rdncount, opts )
            LDAP           *ld;
            char           *buf;
            LDAPMessage         *entry;
            struct ldap_disptmpl     *tmpl;
            char           **defattrs;
            char           ***defvals;
            int            (*writeproc)();
            void           *writeparm;
            char           *eol;
            int            rdncount;
            unsigned long       opts;

       int ldap_entry2text_search( ld, entry, tmpllist, defattrs, defvals,
           writeproc, writeparm, eol, rdncount, opts )
            LDAP           *ld;
            char           *dn;
            char           *base;
            LDAPMessage         *entry;
            struct ldap_disptmpl     *tmpllist;
            char           **defattrs;
            char           ***defvals;
            int            (*writeproc)();
            void           *writeparm;
            char           *eol;
            int            rdncount;
            unsigned long       opts;

       int ldap_vals2text( ld, buf, vals, label, labelwidth, syntaxid, writeproc,
           writeparm, eol, rdncount )
            LDAP           *ld;
            char           *buf;
            char           **vals;
            char           *label;
            int            labelwidth;
            unsigned long       syntaxid;
            int            (*writeproc)();
            void           *writeparm;
            char           *eol;
            int            rdncount;

       int ldap_entry2html( ld, buf, entry, tmpl, defattrs, defvals, writeproc,
           writeparm, eol, rdncount, opts )
            LDAP           *ld;
            char           *buf;

            struct ldap_disptmpl     *tmpl;
            char           **defattrs;
            char           ***defvals;
            int            (*writeproc)();
            void           *writeparm;
            char           *eol;
            int            rdncount;
            unsigned long       opts;
            char           *urlprefix;
            char           *base;

       int ldap_entry2html_search( ld, entry, tmpllist, defattrs, defvals,
           writeproc, writeparm, eol, rdncount, opts )
            LDAP           *ld;
            char           *dn;
            LDAPMessage         *entry;
            struct ldap_disptmpl     *tmpllist;
            char           **defattrs;
            char           ***defvals;
            int            (*writeproc)();
            void           *writeparm;
            char           *eol;
            int            rdncount;
            unsigned long       opts;
            char           *urlprefix;

       int ldap_vals2html( ld, buf, vals, label, labelwidth, syntaxid, writeproc,
           writeparm, eol, rdncount )
            LDAP           *ld;
            char           *buf;
            char           **vals;
            char           *label;
            int            labelwidth;
            unsigned long       syntaxid;
            int            (*writeproc)();
            void           *writeparm;
            char           *eol;
            int            rdncount;
            char           *urlprefix;

       #define LDAP_DISP_OPT_AUTOLABELWIDTH    0x00000001
       #define LDAP_DISP_OPT_HTMLBODYONLY      0x00000002

       #define LDAP_DTMPL_BUFSIZ          2048


DESCRIPTION

       These functions use the  LDAP  display  template  routines
       (see  ldap_disptmpl(3) and ldap_templates.conf(5)) to pro­
       duce a plain text or an HyperText Markup  Language  (HTML)
       display  of  an  entry  or a set of values.  Typical plain
       text output produced for an entry might look like:

            Also Known As:
                    Babs Jensen
                    Barbara Jensen
                    Barbara J Jensen
            E-Mail Address:
                    bjensen@terminator.rs.itd.umich.edu
            Work Address:
                    535 W. William
                    Ann Arbor, MI 48103
            Title:
                    Mythical Manager, Research Systems
            ...
       The exact output produced will depend on the display  tem­
       plate  configuration.  HTML output is similar to the plain
       text output, but more richly formatted.

       ldap_entry2text() produces a text representation of  entry
       and  writes  the  text  by calling the writeproc function.
       All of the attributes values to be displayed must be  pre­
       sent in entry; no interaction with the LDAP server will be
       performed within ldap_entry2text.  ld is the LDAP  pointer
       obtained  by  a  previous  call  to  ldap_open.  writeproc
       should be declared as:

       int writeproc( writeparm, p, len )
            void      *writeparm;
            char      *p;
            int       len;

       where p is a pointer to text to be written and len is  the
       length  of  the  text.   p is guaranteed to be zero-termi­
       nated.  Lines of text are terminated with the string  eol.
       buf  is a pointer to a buffer of size LDAP_DTMPL_BUFSIZ or
       larger.  If buf is NULL then a  buffer  is  allocated  and
       freed  internally.   tmpl is a pointer to the display tem­
       plate to be used (usually obtained by calling ldap_oc2tem­
       plate).   If  tmpl  is  NULL,  no  template  is used and a
       generic display is produced.  defattrs  is  a  NULL-termi­
       nated array of LDAP attribute names which you wish to pro­
       vide default values for (only used if  entry  contains  no
       values  for  the  attribute).  An array of NULL-terminated
       arrays of default values corresponding to  the  attributes
       should  be  passed  in  defvals. The rdncount parameter is
       used to limit the number of Distinguished Name (DN) compo­
       nents  that  are actually displayed for DN attributes.  If
       rdncount is zero, all components are shown.  opts is  used
       to  specify  output  options.   The  only values currently
       allowed are zero (default  output),  LDAP_DISP_OPT_AUTOLA­
       BELWIDTH  which  causes  the width for labels to be deter­
       mined  based  on  the   longest   label   in   tmpl,   and
       LDAP_DISP_OPT_HTMLBODYONLY.   The  LDAP_DISP_OPT_HTMLBODY­
       ONLY option instructs the library not to  include  <HTML>,
       <HEAD>, <TITLE>, and <BODY> tags.  In other words, an HTML

       prepending and appending the appropriate HTML tags to con­
       struct a correct HTML document.

       ldap_entry2text_search() is  similar  to  ldap_entry2text,
       and all of the like-named parameters have the same meaning
       except as noted below.  If base is not  NULL,  it  is  the
       search  base  to use when executing search actions.  If it
       is NULL, search action template  items  are  ignored.   If
       entry  is  not  NULL,  it  should  contain the objectClass
       attribute values for the entry to be displayed.  If  entry
       is  NULL,  dn must not be NULL, and ldap_entry2text_search
       will retrieve the objectClass  values  itself  by  calling
       ldap_search_s.   ldap_entry2text_search will determine the
       appropriate   display   template   to   use   by   calling
       ldap_oc2template,  and will call ldap_search_s to retrieve
       any attribute values to be displayed.  The tmpllist param­
       eter  is  a pointer to the entire list of templates avail­
       able (usually obtained by calling  ldap_init_templates  or
       ldap_init_templates_buf).     If    tmpllist    is   NULL,
       ldap_entry2text_search will attempt to read  a  load  tem­
       plates   from  the  default  template  configuration  file
       /etc/openldap/ldaptemplates.conf.

       ldap_vals2text produces a text representation of a  single
       set  of  LDAP  attribute  values.  The ld, buf, writeproc,
       writeparm, eol, and rdncount parameters are  the  same  as
       the  like-named parameters for ldap_entry2text.  vals is a
       NULL-terminated list of values, usually obtained by a call
       to  ldap_get_values.   label is a string shown next to the
       values (usually a  friendly  form  of  an  LDAP  attribute
       name).   labelwidth  specifies  the label margin, which is
       the number of blank spaces displayed to the  left  of  the
       values.  If zero is passed, a default label width is used.
       syntaxid is a display template attribute syntax identifier
       (see  ldap_disptmpl(3)  for  a  list  of  the  pre-defined
       LDAP_SYN_...  values).

       ldap_entry2html produces an HTML representation of  entry.
       It behaves exactly like ldap_entry2text(3), except for the
       formatted output and the addition of two parameters.  url­
       prefix  is  the  starting text to use when constructing an
       LDAP URL.  The default is the string ldap:///  The  second
       additional  parameter,  base,  the search base to use when
       executing search actions.  If it is  NULL,  search  action
       template items are ignored.

       ldap_entry2html_search      behaves      exactly      like
       ldap_entry2text_search(3), except HTML output is  produced
       and  one  additional  parameter is required.  urlprefix is
       the starting text to use when constructing  an  LDAP  URL.
       The default is the string ldap:///

       ldap_vals2html behaves exactly like ldap_vals2text, except

       required.  urlprefix is the starting text to use when con­
       structing an LDAP URL.  The default is the string ldap:///


ERRORS

       These routines all return an LDAP error code (LDAP_SUCCESS
       is returned if no error occurs).   See  ldap_error(3)  for
       details.  The  ld_errno  field of the ld parameter is also
       set to indicate the error.


FILES

       /etc/openldap/ldaptemplates.conf


SEE ALSO

       ldap(3), ldap_disptmpl(3), ldaptemplates.conf(5)


ACKNOWLEDGEMENTS

       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