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

Re: commit: ldap/servers/slapd backglue.c



> >
> > 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.
The use of rs->sr_err and gs.err seems legitimate. gs is used to check the
accumulated error codes from the multiple databases and is set in the
callback function.

- Jong-Hyuk