Provided by: libldap2-dev_2.4.57+dfsg-2ubuntu1_amd64 bug

NAME

       ldap_parse_result - Parsing results

LIBRARY

       OpenLDAP LDAP (libldap, -lldap)

SYNOPSIS

       #include <ldap.h>

       int ldap_parse_result( LDAP *ld, LDAPMessage *result,
            int *errcodep, char **matcheddnp, char **errmsgp,
            char ***referralsp, LDAPControl ***serverctrlsp,
            int freeit )

       int ldap_parse_sasl_bind_result( LDAP *ld, LDAPMessage *result,
            struct berval **servercredp, int freeit )

       int ldap_parse_extended_result( LDAP *ld, LDAPMessage *result,
            char **retoidp, struct berval **retdatap, int freeit )

       int ldap_parse_intermediate( LDAP *ld, LDAPMessage *result,
            char **retoidp, struct berval **retdatap,
            LDAPControl ***serverctrlsp, int freeit )

DESCRIPTION

       These  routines  are used to extract information from a result message.  They will operate
       on the first result message in a chain of search  results  (skipping  past  other  message
       types).  They take the result as returned by a call to ldap_result(3), ldap_search_s(3) or
       ldap_search_st(3).     In    addition     to     ldap_parse_result(),     the     routines
       ldap_parse_sasl_bind_result()  and  ldap_parse_extended_result()  are  used to get all the
       result information from SASL bind and extended operations.  To  extract  information  from
       intermediate responses, ldap_parse_intermediate() can be used.

       The errcodep parameter will be filled in with the result code from the result message.

       The  server  might supply a matched DN string in the message indicating how much of a name
       in a request was recognized. The matcheddnp parameter will be filled in with  this  string
       if  supplied,  else  it  will  be  NULL. If a string is returned, it should be freed using
       ldap_memfree(3).

       The errmsgp parameter will be filled in with the  error  message  field  from  the  parsed
       message. This string should be freed using ldap_memfree(3).

       The  referralsp  parameter  will  be filled in with an allocated array of referral strings
       from the parsed message. This  array  should  be  freed  using  ldap_memvfree(3).   If  no
       referrals were returned, *referralsp is set to NULL.

       The  serverctrlsp  parameter  will be filled in with an allocated array of controls copied
       from the parsed message. The array should be freed  using  ldap_controls_free(3).   If  no
       controls were returned, *serverctrlsp is set to NULL.

       The  freeit  parameter  determines  whether  the  parsed message is freed or not after the
       extraction. Any non-zero value will make it free the message. The ldap_msgfree(3)  routine
       can also be used to free the message later.

       For  SASL  bind  results,  the  servercredp  parameter will be filled in with an allocated
       berval structure containing the credentials from the  server  if  present.  The  structure
       should be freed using ber_bvfree(3).

       For  extended  results and intermediate responses, the retoidp parameter will be filled in
       with the dotted-OID text representation of the name of the  extended  operation  response.
       The string should be freed using ldap_memfree(3).  If no OID was returned, *retoidp is set
       to NULL.

       For extended results and intermediate responses, the retdatap parameter will be filled  in
       with  a  pointer  to  a  berval  structure containing the data from the extended operation
       response. The structure should be freed using ber_bvfree(3).  If no  data  were  returned,
       *retdatap is set to NULL.

       For  all  the above result parameters, NULL values can be used in calls in order to ignore
       certain fields.

ERRORS

       Upon success LDAP_SUCCESS is returned. Otherwise the values of the result  parameters  are
       undefined.

SEE ALSO

       ldap(3),     ldap_result(3),     ldap_search(3),     ldap_memfree(3),    ldap_memvfree(3),
       ldap_get_values(3), ldap_controls_free(3), lber-types(3)

ACKNOWLEDGEMENTS

       OpenLDAP   Software   is   developed   and   maintained   by    The    OpenLDAP    Project
       <http://www.openldap.org/>.   OpenLDAP Software is derived from the University of Michigan
       LDAP 3.3 Release.