# ldap_parse_result

## 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.
    


## 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.
    


* * *