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

Re: slapo-nops, empty operations and slapo-accesslog



On Mon, Mar 16, 2009 at 12:53:18AM -0700, Howard Chu wrote:
> You need to make sure that your overlays are configured such that your 
> nops executes before accesslog, to prevent accesslog from attempting to 
> log anything.
>
> Also, in your cancel code, you need to set op->o_callback to NULL before  
> calling send_ldap_error, to make sure that no other overlays run. Then 
> set it back to whatever it was, before returning.

Without modifying the code, configuring nops after accesslog in slapd.conf
does prevent it from crashing.

Setting o_callback to NULL fixes the crash. And it seems to fix it 
regardless of overlay order: whether nops is configured before or after
accesslog, it works fine with that cancel code:

        if ((m = op->orm_modlist) == NULL) {
                slap_callback *cb = op->o_callback;

                op->o_bd->bd_info = (BackendInfo *)(on->on_info);
                op->o_callback = NULL;
                send_ldap_error(op, rs, LDAP_SUCCESS, "");
                op->o_callback = cb;

                return (rs->sr_err);
        }


-- 
Emmanuel Dreyfus
manu@netbsd.org