[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#5328) backends sending/setting results
Other bugs:
* be->be_chk_referrals:
back-bdb and back-ldif can send errors from be->be_chk_referrals.
As far as I can tell that is wrong:
It should return an LDAP result code, but only send it if it is
LDAP_REFERRAL. backend_check_referrals() will send other errors,
and success means it'll proceed to the be->be_<operation>() call.
* be->be_fetch() (bi->bi_entry_get_rw()):
The LDAP result code matters to at least aci.c:dynacl_aci_mask() and
frontendDB->be_compare() (compare.c:fe_op_compare()).
These use it via backend_attribute(), using frontendDB->be_attribute()
(fe_acl_attribute()), using backend.c:be_entry_get_rw().
It can return just a boolean in back-null, back-ldif, back-relay
and back-config.
back-null usually pretends the entries are present, so maybe it should
do "return oc ? LDAP_NO_SUCH_ATTRIBUTE : LDAP_BUSY;".
* Internal slapd errors.
back-ldap:ldap_back_entry_get() can return LDAP_NO_MEMORY.
Maybe that's OK and instead send_ldap_response() should change
negative negative result codes to LDAP_OTHER?
--
Hallvard