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

Re: commit: ldap/servers/slapd backend.c controls.c

kurt@OpenLDAP.org wrote:

Update of /repo/OpenLDAP/pkg/ldap/servers/slapd

Modified Files:
	backend.c  1.300 -> 1.301
	controls.c  1.130 -> 1.131

Log Message:
More proper criticality handling. Implementation is a kludge.

This portion of code was broken, and Kurt's change, which in principle is correct, highlighted some issues here and there. Some of the tests were not working; I think I fixed some of the problems, please let me know if there's more (maybe thru the ITS...). Fixes:
- back-meta support for control propagation was broken: it was simply setting op->o_ctrls right before bind with the ldap_set_option() call; this was not correct because controls can be operation-specific, and change over time, or be not allowed for some operation (e.g. manageDSAit with bind);
- back-relay was not relaying the controls of the target database; test030 was failing miserably;
- support for controls can be registered run-time; overlays that register controls should add the OID to the backend by means of the call overlay_register_control(); this adds the OID to all backends if the overlay is global (i.e. stacked on the frontend structure). This might not be the best solution, because I'm not sure this guarantees the overlay will always be in the position of taking care of the control, but it's the best I could find up to now.
- the SLAP_CONTROL_FRONTEND bit could be removed from controls (I removed it from Chaining Behavior and works fine).


SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497