bdb_cf_gen, "( OLcfgAt:1.9 NAME 'dbLockDetect' "
"DESC 'Deadlock detection algorithm' "
"SYNTAX OMsDirectoryString )", NULL, NULL },
- { "mode", "mode", 2, 2, 0, ARG_LONG|ARG_OFFSET,
+ { "mode", "mode", 2, 2, 0, ARG_INT|ARG_OFFSET,
(void *)offsetof(struct bdb_info, bi_dbenv_mode),
"( OLcfgAt:1.10 NAME 'dbMode' "
"DESC 'Unix permissions of database files' "
bdb_cf_gen, "( OLcfgAt:1.11 NAME 'dbSearchStack' "
"DESC 'Depth of search stack in IDLs' "
"SYNTAX OMsInteger )", NULL, NULL },
- { "shm_key", "key", 2, 2, 0, ARG_INT|ARG_NONZERO|ARG_OFFSET,
+ { "shm_key", "key", 2, 2, 0, ARG_INT|ARG_OFFSET,
(void *)offsetof(struct bdb_info, bi_shm_key),
"( OLcfgAt:1.12 NAME 'dbShmKey' "
"DESC 'Key for shared memory region' "
typedef struct {
ConfigFile *cb_config;
CfEntryInfo *cb_root;
- BackendDB *cb_be; /* config backend */
BackendDB cb_db; /* underlying database */
int cb_got_ldif;
} CfBackInfo;
"NAME 'olcDatabaseConfig' "
"DESC 'OpenLDAP Database-specific options' "
"SUP olcConfig STRUCTURAL "
- "MAY ( olcDatabase $ olcAccess $ olcLastMod $ olcLimits $ "
+ "MAY ( olcDatabase $ olcSuffix $ olcAccess $ olcLastMod $ olcLimits $ "
"olcMaxDerefDepth $ olcPlugin $ olcReadOnly $ olcReplica $ "
"olcReplogFile $ olcRequires $ olcRestrict $ olcRootDN $ olcRootPW $ "
- "olcSchemaDN $ olcSecurity $ olcSizeLimit $ olcSuffix $ olcSyncrepl $ "
+ "olcSchemaDN $ olcSecurity $ olcSizeLimit $ olcSyncrepl $ "
"olcTimeLimit $ olcUpdateDN $ olcUpdateRef ) )",
Cft_Database, &cfOc_database },
{ "( OLcfgOc:6 "
struct berval pdn, ndn;
int rc;
- if (c->be == frontendDB) return 1;
+ if (c->be == frontendDB || SLAP_MONITOR(c->be) ||
+ SLAP_CONFIG(c->be)) return 1;
if (c->op == SLAP_CONFIG_EMIT) {
if (!BER_BVISNULL( &c->be->be_suffix[0] )) {
goto ok;
/* FALLTHRU */
case Cft_Global:
- ca.be = cfb->cb_be;
+ ca.be = backendDB;
break;
case Cft_Backend:
cfb = ch_calloc( 1, sizeof(CfBackInfo));
cfb->cb_config = &cf_prv;
- cfb->cb_be = be;
be->be_private = cfb;
ber_dupbv( &be->be_rootdn, &config_rdn );
}
int config_set_vals(ConfigTable *Conf, ConfigArgs *c) {
- int i, rc, arg_type, iarg;
- long larg;
- ber_len_t barg;
+ int i, rc, arg_type;
void *ptr;
arg_type = Conf->arg_type;
if(arg_type & ARGS_POINTER)
switch(arg_type & ARGS_POINTER) {
case ARG_ON_OFF:
- case ARG_INT: *(int*)ptr = iarg; break;
- case ARG_LONG: *(long*)ptr = larg; break;
- case ARG_BER_LEN_T: *(ber_len_t*)ptr = barg; break;
+ case ARG_INT: *(int*)ptr = c->value_int; break;
+ case ARG_LONG: *(long*)ptr = c->value_long; break;
+ case ARG_BER_LEN_T: *(ber_len_t*)ptr = c->value_ber_t; break;
case ARG_STRING: {
char *cc = *(char**)ptr;
if(cc) {