From c9141a9a0820120128275b65645632fba40d2cfc Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 21 Mar 2005 11:14:37 +0000 Subject: [PATCH] More parsing fixes --- servers/slapd/back-bdb/config.c | 4 ++-- servers/slapd/bconfig.c | 11 +++++------ servers/slapd/config.c | 10 ++++------ 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/servers/slapd/back-bdb/config.c b/servers/slapd/back-bdb/config.c index 118d506cb0..0ddb2d4f0c 100644 --- a/servers/slapd/back-bdb/config.c +++ b/servers/slapd/back-bdb/config.c @@ -89,7 +89,7 @@ static ConfigTable bdbcfg[] = { 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' " @@ -98,7 +98,7 @@ static ConfigTable bdbcfg[] = { 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' " diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index 98d07819db..3ee0e4fdda 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -78,7 +78,6 @@ typedef struct CfEntryInfo { typedef struct { ConfigFile *cb_config; CfEntryInfo *cb_root; - BackendDB *cb_be; /* config backend */ BackendDB cb_db; /* underlying database */ int cb_got_ldif; } CfBackInfo; @@ -621,10 +620,10 @@ static ConfigOCs cf_ocs[] = { "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 " @@ -1370,7 +1369,8 @@ config_suffix(ConfigArgs *c) { 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] )) { @@ -3037,7 +3037,7 @@ config_add_internal( CfBackInfo *cfb, Entry *e, SlapReply *rs ) goto ok; /* FALLTHRU */ case Cft_Global: - ca.be = cfb->cb_be; + ca.be = backendDB; break; case Cft_Backend: @@ -3705,7 +3705,6 @@ config_back_db_init( Backend *be ) 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 ); diff --git a/servers/slapd/config.c b/servers/slapd/config.c index e1808dff99..f516343ac5 100644 --- a/servers/slapd/config.c +++ b/servers/slapd/config.c @@ -233,9 +233,7 @@ int config_check_vals(ConfigTable *Conf, ConfigArgs *c, int check_only ) { } 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; @@ -269,9 +267,9 @@ int config_set_vals(ConfigTable *Conf, ConfigArgs *c) { 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) {