[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: querry on ldap_search_s()
>
> Placed At :
>
>
> Hi All,
>
> Will the function ldap_search_s() return LDAP_SUCCESS even when the search
> does not match the filter specifed ???
A search is successful if there are no errors. No entries matching
the filter is still a successful operation
>
> I have pasted below a part of my code and its output
>
> *****************************************************************************************************
> printf("filter : %s\n", filter);
> printf("basedn : %s\n", basedn);
> ret = ldap_search_s(ld, basedn, LDAP_SCOPE_SUBTREE, filter, fields, 0, &res);
> ldap_perror(ld, "ldap_search_s:");
> free(basedn);
> free(filter);
> if (ret != LDAP_SUCCESS)
> {
> *status = -10;
> return NULL;
> }
you should call ldap_count_entries() BEFORE ldap_first_entry(); however
ldap_first_entry() should return NULL if no entries are available.
> msg = ldap_first_entry(ld, res);
> ldap_perror(ld, "ldap_firs_entryt:");
> ret = ldap_count_entries(ld, msg);
> ldap_perror_entries(ld, "ldap_count:");
> printf("count : %d\n", ret);
> subtree = ldap_get_dn(ld, msg);
You're likely asking the dn out of a NULL msg -> invalid data.
> ldap_perror(ld, "ldap_get_dn:");
>
> ***********************************************************************************************************
> output :
>
> filter : (&(objectclass=xyzUser)(uid=not_in_ldap))
> basedn : o=xyz
> ldap_search:: Success
> ldap_first:: Success
> ldap_count_entries:: Success
> count : 0
> ldap_get_dn:: Bad parameter to an ldap routine
>
> *****************************************************************************************************************
>
> Here i have "o=xyz" as the root DN , "ou=south,o=xyz" and "ou=north,o=xyz" as
> the subtrees, and then uid's in the object class "xyzUser" under these
> subtrees.
>
> Since both ldap_search_s() and ldap_first_entry() returns a success , only way i
> can check if a uid exist is by the function ldap_count_entries().
>
> I this the way to do it or am i going wrong somewhere ??
>
> Waiting for replies
> Thanks in advance.
>
> Regards
> Susanth
>
>
>
>
>
>
>