ConfigType ce_type;
BackendInfo *ce_bi;
BackendDB *ce_be;
+ void *ce_private;
} CfEntryInfo;
typedef struct {
/* Record this load on the current path */
{
struct berval bv;
+ ModPaths *mp;
char *ptr = c->line + STRLENOF("moduleload");
while (!isspace(*ptr)) ptr++;
while (isspace(*ptr)) ptr++;
ber_str2bv(ptr, 0, 1, &bv);
- ber_bvarray_add( &modcur->mp_loads, &bv );
+ if ( c->op == SLAP_CONFIG_ADD )
+ mp = modcur;
+ else
+ mp = c->private;
+ ber_bvarray_add( &mp->mp_loads, &bv );
}
break;
mp->mp_next = NULL;
mp->mp_loads = NULL;
modlast = mp;
+ c->private = mp;
if ( c->op == SLAP_CONFIG_ADD )
modcur = mp;
}
init_config_argv( &ca );
ca.be = ce->ce_be;
ca.bi = ce->ce_bi;
+ ca.private = ce->ce_private;
for (ml = op->orm_modlist; ml; ml=ml->sml_next) {
ct = config_find_table( colst, nocs, ml->sml_desc );
config_build_entry( c, e, cfOc_schema, &c->value_dn,
c->bi->bi_cf_table, NO_TABLE );
ce = e->e_private;
+ ce->ce_private = cf;
ce->ce_type = Cft_Schema;
if ( op ) {
op->ora_e = e;
op->o_bd->be_add( op, rs );
}
ce = e->e_private;
+ ce->ce_private = cf;
ce->ce_type = Cft_Include;
ce->ce_bi = c->bi;
if ( !ceparent->ce_kids ) {
ce = e->e_private;
ce->ce_type = Cft_Include;
c->private = mp;
+ ce->ce_private = mp;
config_build_entry( c, e, cfOc_module, &c->value_dn,
c->bi->bi_cf_table, NO_TABLE );
if ( op ) {
c.bi = be->bd_info;
c.private = cfb->cb_config;
ct = c.bi->bi_cf_table;
+ ce->ce_private = cfb;
config_build_entry( &c, e, cfOc_global, &rdn, ct, NO_TABLE );
if ( op ) {
op->ora_e = e;