[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: commit: ldap/servers/slapd backglue.c
Jong wrote:
Log Message:
Fixing backglue behaviors
1) Return NO_SUCH_OBJECT if base object cannot be located
2) Does not search databases that are superior to the base object of the
search
The patch for (2) looks wrong; the if/else block from 327-344 would fix
this just by adding else { continue; } at the end. This problem seems to
be because the if/else block used rs->sr_err but the following switch()
now uses gs.err to detect errors, so there was a logical disconnect there.
Simply adding "else { continue; }" does not solve the problem, because the
"else if ()" @ 342 (v 1.79) does hold for the databases that are superior to
the base object.
On a subtree search, superior databases must still participate in the
search. There is nothing that prevents the databases from overlapping,
and your exclusion of the superior will prevent relevant entries from
being located.
E.g., if we have a configuration
database foo
suffix dc=c,dc=b,dc=a
subordinate
database foo
suffix dc=a
then a subtree search with base dc=b,dc=a must be performed by both
databases in order to return a complete result set.
--
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
http://www.symas.com http://highlandsun.com/hyc
Symas: Premier OpenSource Development and Support