[Date Prev][Date Next]
Re: commit: ldap/servers/slapd proto-slap.h
Howard Chu writes:
> Ando and I tripped over this before, the solution was to compare the
> be->be_private pointer.
> I suppose it's possible that a backend (like back-null?) may have no
> private data, so perhaps be_nsuffix is a better choice.
Back-null has private data. OTOH, back-passwd's be_private is only set
if it is configured with an alternate passwd file, otherwise it's NULL.
be->be_private need not be constant for the lifetime of a database:
back-ldap/chain.c and overlays/translucent.c modify it.
back-monitor/monitor_back_db_open() reads be->be_private and stores
it back, even though it never changes it. I don't know why.
>> Add be_match() macro: one cannot always compare BackendDB pointer
>> values in order to test equivalence, because the overlay engine
>> may have reset the backend pointer to a temporary copy on the stack.
>> So, we test pointer equivalence of the BackendDB itself, then of
>> be_nsuffix -- this macro can be updated if necessary.