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

(ITS#3484) exop workarounds cause headhaches to chain overlay

Full_Name: Pierangelo Masarati
Version: HEAD
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (
Submitted by: ando

1) the chain overlay doesn't call send_ldap_extended() after calling the
back-ldap be_extended hook; in fact, be_extended() are supposed to return only
on error, because successful send_ldap_extended are only returned by the
frontend (fixed).  The fix works fine when the chain overlay is used as global,
and the be_extended() hook is directly called.

2) when used as a database overlay, e.g. with back-bdb, the operation is
actually handled by the frontend, which, e.g. for the passwd_extop() uses a
be_modify() call.  The local modify returns a referral, which is handled by the
chain overlay thru the be_modify() of back-ldap; however, this returns
slap_send_result() instead of slap_send_extended().  Possible workarounds: have
passwd_extop() check if the target of the extended operation is a referral
__before__ trying to invoke the backend specific function.