* OLcfgOv{Oc|At}:7 -> distproc
* OLcfgOv{Oc|At}:8 -> dynlist
* OLcfgOv{Oc|At}:9 -> dds
+ * OLcfgOv{Oc|At}:10 -> unique
+ * OLcfgOv{Oc|At}:11 -> refint
+ * OLcfgOv{Oc|At}:12 -> ppolicy
+ * OLcfgOv{Oc|At}:13 -> constraint
+ * OLcfgOv{Oc|At}:14 -> translucent
*/
/* alphabetical ordering */
{ "syncrepl", NULL, 0, 0, 0, ARG_DB|ARG_MAGIC,
&syncrepl_config, "( OLcfgDbAt:0.11 NAME 'olcSyncrepl' "
"SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
- { "threads", "count", 2, 2, 0, ARG_INT|ARG_MAGIC|CFG_THREADS,
- &config_generic, "( OLcfgGlAt:66 NAME 'olcThreads' "
+ { "threads", "count", 2, 2, 0,
+#ifdef NO_THREADS
+ ARG_IGNORED, NULL,
+#else
+ ARG_INT|ARG_MAGIC|CFG_THREADS, &config_generic,
+#endif
+ "( OLcfgGlAt:66 NAME 'olcThreads' "
"SYNTAX OMsInteger SINGLE-VALUE )", NULL, NULL },
{ "timelimit", "limit", 2, 0, 0, ARG_MAY_DB|ARG_MAGIC,
&config_timelimit, "( OLcfgGlAt:67 NAME 'olcTimeLimit' "
AC_MEMCPY( abv.bv_val, ibuf, abv.bv_len );
/* Turn TAB / EOL into plain space */
for (src=bv.bv_val,dst=abv.bv_val+abv.bv_len; *src; src++) {
- if (isspace(*src)) *dst++ = ' ';
+ if (isspace((unsigned char)*src)) *dst++ = ' ';
else *dst++ = *src;
}
*dst = '\0';
c->value_int = (SLAP_NOLASTMOD(c->be) == 0);
break;
case CFG_MIRRORMODE:
- c->value_int = (SLAP_SINGLE_SHADOW(c->be) == 0);
+ if ( SLAP_SHADOW(c->be))
+ c->value_int = (SLAP_SINGLE_SHADOW(c->be) == 0);
+ else
+ rc = 1;
break;
case CFG_SSTR_IF_MAX:
c->value_int = index_substr_if_maxlen;
break;
case CFG_THREADS:
- if ( c->value_int > 2 * SLAP_MAX_WORKER_THREADS ) {
+ if ( c->value_int < 2 ) {
+ snprintf( c->msg, sizeof( c->msg ),
+ "threads=%d smaller than minimum value 2",
+ c->value_int );
+ Debug(LDAP_DEBUG_ANY, "%s: %s.\n",
+ c->log, c->msg, 0 );
+ return 1;
+
+ } else if ( c->value_int > 2 * SLAP_MAX_WORKER_THREADS ) {
snprintf( c->msg, sizeof( c->msg ),
"warning, threads=%d larger than twice the default (2*%d=%d); YMMV",
c->value_int, SLAP_MAX_WORKER_THREADS, 2 * SLAP_MAX_WORKER_THREADS );
char *ptr;
if ( c->op == SLAP_CONFIG_ADD ) {
ptr = c->line + STRLENOF("moduleload");
- while (!isspace(*ptr)) ptr++;
- while (isspace(*ptr)) ptr++;
+ while (!isspace((unsigned char) *ptr)) ptr++;
+ while (isspace((unsigned char) *ptr)) ptr++;
} else {
ptr = c->line;
}
for( i=1; i < c->argc; i++ ) {
int level;
- if ( isdigit( c->argv[i][0] ) || c->argv[i][0] == '-' ) {
+ if ( isdigit((unsigned char)c->argv[i][0]) || c->argv[i][0] == '-' ) {
if( lutil_atoi( &level, c->argv[i] ) != 0 ) {
snprintf( c->msg, sizeof( c->msg ), "<%s> unable to parse level", c->argv[0] );
Debug( LDAP_DEBUG_ANY, "%s: %s \"%s\"\n",
static int
config_tls_option(ConfigArgs *c) {
int flag;
+ LDAP *ld = slap_tls_ld;
switch(c->type) {
- case CFG_TLS_RAND: flag = LDAP_OPT_X_TLS_RANDOM_FILE; break;
+ case CFG_TLS_RAND: flag = LDAP_OPT_X_TLS_RANDOM_FILE; ld = NULL; break;
case CFG_TLS_CIPHER: flag = LDAP_OPT_X_TLS_CIPHER_SUITE; break;
case CFG_TLS_CERT_FILE: flag = LDAP_OPT_X_TLS_CERTFILE; break;
case CFG_TLS_CERT_KEY: flag = LDAP_OPT_X_TLS_KEYFILE; break;
return 1;
}
if (c->op == SLAP_CONFIG_EMIT) {
- return ldap_pvt_tls_get_option( NULL, flag, &c->value_string );
+ return ldap_pvt_tls_get_option( ld, flag, &c->value_string );
} else if ( c->op == LDAP_MOD_DELETE ) {
- return ldap_pvt_tls_set_option( NULL, flag, NULL );
+ return ldap_pvt_tls_set_option( ld, flag, NULL );
}
ch_free(c->value_string);
- return(ldap_pvt_tls_set_option(NULL, flag, c->argv[1]));
+ return(ldap_pvt_tls_set_option(ld, flag, c->argv[1]));
}
/* FIXME: this ought to be provided by libldap */
return 1;
}
if (c->op == SLAP_CONFIG_EMIT) {
- ldap_pvt_tls_get_option( NULL, flag, &c->value_int );
+ ldap_pvt_tls_get_option( slap_tls_ld, flag, &c->value_int );
for (i=0; !BER_BVISNULL(&keys[i].word); i++) {
if (keys[i].mask == c->value_int) {
c->value_string = ch_strdup( keys[i].word.bv_val );
return 1;
} else if ( c->op == LDAP_MOD_DELETE ) {
int i = 0;
- return ldap_pvt_tls_set_option( NULL, flag, &i );
+ return ldap_pvt_tls_set_option( slap_tls_ld, flag, &i );
}
ch_free( c->value_string );
if ( isdigit( (unsigned char)c->argv[1][0] ) ) {
c->log, c->argv[0], c->argv[1] );
return 1;
}
- return(ldap_pvt_tls_set_option(NULL, flag, &i));
+ return(ldap_pvt_tls_set_option(slap_tls_ld, flag, &i));
} else {
- return(ldap_int_tls_config(NULL, flag, c->argv[1]));
+ return(ldap_int_tls_config(slap_tls_ld, flag, c->argv[1]));
}
}
#endif
}
ch_free( ca->argv );
if ( colst ) ch_free( colst );
+ while( dels ) {
+ deltail = dels->next;
+ ch_free( dels );
+ dels = deltail;
+ }
return rc;
}
c->value_dn.bv_len = snprintf(c->value_dn.bv_val, sizeof( c->log ), "cn=module" SLAP_X_ORDERED_FMT, i);
if ( c->value_dn.bv_len >= sizeof( c->log ) ) {
/* FIXME: how can indicate error? */
- return;
+ return -1;
}
c->private = mp;
if ( ! config_build_entry( op, rs, ceparent, c, &c->value_dn, &CFOC_MODULE, NULL )) {
return -1;
}
}
+ return 0;
}
#endif
bi->bi_chk_referrals = 0;
-#ifdef SLAP_OVERLAY_ACCESS
bi->bi_access_allowed = slap_access_always_allowed;
-#endif /* SLAP_OVERLAY_ACCESS */
bi->bi_connection_init = 0;
bi->bi_connection_destroy = 0;