[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: ldap_search_s



Thanks, this makes more sense.  Can I expect the pointer to have it's
original value after the search function is called if the search yields no
results?

Tom

On Sat, 1 Apr 2000, Randy Kunkee wrote:

> > 
> > Why does ldap_search_s take LDAPMessage ** as one of the arguments?
> > 
> > >From what I see only one LDAPMessage is ever returned.  It a bit confusing
> > as LDAPMessage implies that it is a linked list.  Can someone explain to
> > me why a doble pointer is necessary?
> > 
> > Thanks;
> > Tom
> > 
> > 
> 
> The return value of ldap_search_s is LDAP_SUCCESS, or an error code.
> The LDAP client library allocates memory, needs to return a pointer
> to that message.  Since the status of the search is being returned
> by the function, the pointer to result message structure must be
> returned some other way.  Since what is being returned is an LDAPMessage *,
> a pointer to that kind of memory is an LDAPMessage **.
> 
> By the way, you must free this when you are finished with it using
> ldap_msgfree.
> 
> Example of usage would be:
> 
>    int resCode;
>    LDAPMessage *ldapResultMessage; /* will point to the result */
>    .
>    .
>    resCode = ldap_search_s(.... , &ldapResultMessage);
>    if (resCode == LDAP_SUCCESS) {
> 	.
> 	.
> 	ldap_msgfree(ldapResultMessage);
>    } else {
> 	/* print error */
>    }
> 
> 
> Regards,
> Randy
>