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

Multiple referrals not working (ITS#1354)



Full_Name: Nigel Cole
Version: 2.0.15
OS: Solaris 2.6
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (193.195.0.102)


Multiple referrals don't work if the searched-for item is not in the first
referral.
This might be related to ITS#1234.

The problem occurs in 2 places in request.c, in the functions
ldap_chase_referrals
and ldap_chase_v3referrals. Both use the result of a call to
ldap_send_server_request to short-cut the loop over the referrals. However, as
far as I can tell, ldap_send_server_request returns a result if the search
base is valid, which is not the same as saying the searched-for entry will be
on it. As a result, I don't think the short-cutting is valid.

In ldap_chase_referrals, removing the test for rc==0 (line 842 in request.c)
cures
the problem for LDAPv2 lookups.

In ldap_chase_v3referrals, removing the 'break' (line 766) cures the problem
for
LDAPv3 lookups.

These may only be work-arounds: I confess that I'm having difficulty following
ldap_send_server_request. I can't tell if it ignores the filter, or if it ought
to fail if the filter doesn't match - in which case the error is somewhere in
ldap_send_server_request)