ldap/servers/slapd/daemon.c | 25 +-
ldap/servers/slapd/libglobs.c | 420 ++++++++++++++++++++++--------------------
ldap/servers/slapd/slap.h | 144 ++++++++------
3 files changed, 321 insertions(+), 268 deletions(-)
New commits:
commit 3d212a547210e03deeab8e72456cefda117c1394
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Fri Nov 30 11:58:27 2012 -0700
Ticket #508 - part 2 - lock-free access to FrontendConfig structure
https://fedorahosted.org/389/ticket/508
Reviewed by: mreynolds (Thanks!)
Branch: master
Fix Description: When computing the idletimeout, only check the config
anon_limits_dn if the connection c_dn is NULL.
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
diff --git a/ldap/servers/slapd/daemon.c b/ldap/servers/slapd/daemon.c
index e3d2009..abf7611 100644
--- a/ldap/servers/slapd/daemon.c
+++ b/ldap/servers/slapd/daemon.c
@@ -1798,27 +1798,28 @@ compute_idletimeout( slapdFrontendConfig_t *fecfg, Connection
*conn )
* this is not an anonymous user and no bind-based limits are set,
* use the default idle timeout.
*/
- char *anon_dn = config_get_anon_limits_dn();
- if ((conn->c_dn == NULL) && anon_dn && (strlen(anon_dn) > 0)) {
- Slapi_DN *anon_sdn = slapi_sdn_new_dn_byref( anon_dn );
+ if (conn->c_dn == NULL) {
+ char *anon_dn = config_get_anon_limits_dn();
+ if (anon_dn && (strlen(anon_dn) > 0)) {
+ Slapi_DN *anon_sdn = slapi_sdn_new_dn_byref(anon_dn);
- reslimit_update_from_dn( conn, anon_sdn );
+ reslimit_update_from_dn(conn, anon_sdn);
- if ( slapi_reslimit_get_integer_limit( conn,
- idletimeout_reslimit_handle, &idletimeout ) !=
- SLAPI_RESLIMIT_STATUS_SUCCESS ) {
- idletimeout = fecfg->idletimeout;
- }
+ if (slapi_reslimit_get_integer_limit(conn, idletimeout_reslimit_handle,
+ &idletimeout)
+ != SLAPI_RESLIMIT_STATUS_SUCCESS) {
+ idletimeout = fecfg->idletimeout;
+ }
- slapi_sdn_free( &anon_sdn );
+ slapi_sdn_free(&anon_sdn);
+ }
+ slapi_ch_free_string(&anon_dn);
} else if ( conn->c_isroot ) {
idletimeout = 0; /* no limit for Directory Manager */
} else {
idletimeout = fecfg->idletimeout;
}
-
- slapi_ch_free_string( &anon_dn );
}
return( idletimeout );
commit a0caf595fc66380a7ecac3d307623870a7ef1d41
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Fri Nov 30 08:44:09 2012 -0700
Ticket #508 - part 1 - lock-free access to FrontendConfig structure
https://fedorahosted.org/389/ticket/508
Reviewed by: mreynolds (Thanks!)
Branch: master
Fix Description: Change the thread contested integral values to use
lock free get and set. This includes the 3 INT types and all of the
ON/OFF types. These have been changed to use atomic variables used by
the PR_Atomic APIs.
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c
index 1a414ed..4737131 100644
--- a/ldap/servers/slapd/libglobs.c
+++ b/ldap/servers/slapd/libglobs.c
@@ -199,61 +199,61 @@ static int config_set_schemareplace ( const char *attrname, char
*value,
#define SALTED_SHA1_SCHEME_NAME "SSHA"
/* CONFIG_ON_OFF */
-int init_accesslog_rotationsync_enabled;
-int init_errorlog_rotationsync_enabled;
-int init_auditlog_rotationsync_enabled;
-int init_accesslog_logging_enabled;
-int init_accesslogbuffering;
-int init_errorlog_logging_enabled;
-int init_auditlog_logging_enabled;
-int init_auditlog_logging_hide_unhashed_pw;
-int init_csnlogging;
-int init_pw_unlock;
-int init_pw_must_change;
-int init_pwpolicy_local;
-int init_pw_lockout;
-int init_pw_history;
-int init_pw_is_global_policy;
-int init_pw_is_legacy;
-int init_pw_track_update_time;
-int init_pw_change;
-int init_pw_exp;
-int init_pw_syntax;
-int init_schemacheck;
-int init_schemamod;
-int init_ds4_compatible_schema;
-int init_schema_ignore_trailing_spaces;
-int init_enquote_sup_oc;
-int init_rewrite_rfc1274;
-int init_syntaxcheck;
-int init_syntaxlogging;
-int init_dn_validate_strict;
-int init_attrname_exceptions;
-int init_return_exact_case;
-int init_result_tweak;
-int init_plugin_track;
-int init_lastmod;
-int init_readonly;
-int init_accesscontrol;
-int init_nagle;
-int init_security;
-int init_ssl_check_hostname;
-int init_ldapi_switch;
-int init_ldapi_bind_switch;
-int init_ldapi_map_entries;
-int init_allow_unauth_binds;
-int init_require_secure_binds;
-int init_minssf_exclude_rootdse;
-int init_force_sasl_external;
-int init_slapi_counters;
-int init_entryusn_global;
-int init_disk_monitoring;
-int init_disk_logging_critical;
-int init_disk_preserve_logging;
-int init_ndn_cache_enabled;
-int init_sasl_mapping_fallback;
+slapi_onoff_t init_accesslog_rotationsync_enabled;
+slapi_onoff_t init_errorlog_rotationsync_enabled;
+slapi_onoff_t init_auditlog_rotationsync_enabled;
+slapi_onoff_t init_accesslog_logging_enabled;
+slapi_onoff_t init_accesslogbuffering;
+slapi_onoff_t init_errorlog_logging_enabled;
+slapi_onoff_t init_auditlog_logging_enabled;
+slapi_onoff_t init_auditlog_logging_hide_unhashed_pw;
+slapi_onoff_t init_csnlogging;
+slapi_onoff_t init_pw_unlock;
+slapi_onoff_t init_pw_must_change;
+slapi_onoff_t init_pwpolicy_local;
+slapi_onoff_t init_pw_lockout;
+slapi_onoff_t init_pw_history;
+slapi_onoff_t init_pw_is_global_policy;
+slapi_onoff_t init_pw_is_legacy;
+slapi_onoff_t init_pw_track_update_time;
+slapi_onoff_t init_pw_change;
+slapi_onoff_t init_pw_exp;
+slapi_onoff_t init_pw_syntax;
+slapi_onoff_t init_schemacheck;
+slapi_onoff_t init_schemamod;
+slapi_onoff_t init_ds4_compatible_schema;
+slapi_onoff_t init_schema_ignore_trailing_spaces;
+slapi_onoff_t init_enquote_sup_oc;
+slapi_onoff_t init_rewrite_rfc1274;
+slapi_onoff_t init_syntaxcheck;
+slapi_onoff_t init_syntaxlogging;
+slapi_onoff_t init_dn_validate_strict;
+slapi_onoff_t init_attrname_exceptions;
+slapi_onoff_t init_return_exact_case;
+slapi_onoff_t init_result_tweak;
+slapi_onoff_t init_plugin_track;
+slapi_onoff_t init_lastmod;
+slapi_onoff_t init_readonly;
+slapi_onoff_t init_accesscontrol;
+slapi_onoff_t init_nagle;
+slapi_onoff_t init_security;
+slapi_onoff_t init_ssl_check_hostname;
+slapi_onoff_t init_ldapi_switch;
+slapi_onoff_t init_ldapi_bind_switch;
+slapi_onoff_t init_ldapi_map_entries;
+slapi_onoff_t init_allow_unauth_binds;
+slapi_onoff_t init_require_secure_binds;
+slapi_onoff_t init_minssf_exclude_rootdse;
+slapi_onoff_t init_force_sasl_external;
+slapi_onoff_t init_slapi_counters;
+slapi_onoff_t init_entryusn_global;
+slapi_onoff_t init_disk_monitoring;
+slapi_onoff_t init_disk_logging_critical;
+slapi_onoff_t init_disk_preserve_logging;
+slapi_onoff_t init_ndn_cache_enabled;
+slapi_onoff_t init_sasl_mapping_fallback;
#ifdef MEMPOOL_EXPERIMENTAL
-int init_mempool_switch;
+slapi_onoff_t init_mempool_switch;
#endif
#define DEFAULT_SSLCLIENTAPTH "off"
@@ -3101,6 +3101,7 @@ config_set_onoff ( const char *attrname, char *value, int
*configvalue,
char *errorbuf, int apply )
{
int retVal = LDAP_SUCCESS;
+ slapi_onoff_t newval = -1;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
if ( config_value_is_null( attrname, value, errorbuf, 0 )) {
@@ -3123,17 +3124,22 @@ config_set_onoff ( const char *attrname, char *value, int
*configvalue,
return retVal;
}
- CFG_LOCK_WRITE(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_WRITE(slapdFrontendConfig);
if ( strcasecmp ( value, "on" ) == 0 ) {
- *configvalue = LDAP_ON;
+ newval = LDAP_ON;
} else if ( strcasecmp ( value, "off" ) == 0 ) {
- *configvalue = LDAP_OFF;
- } else {
- *configvalue = *(int *)value;
+ newval = LDAP_OFF;
+ } else { /* assume it is an integer */
+ newval = *(slapi_onoff_t *)value;
}
- CFG_UNLOCK_WRITE(slapdFrontendConfig);
+#ifdef ATOMIC_GETSET_ONOFF
+ PR_AtomicSet(configvalue, newval);
+#else
+ *configvalue = newval;
+#endif
+ CFG_ONOFF_UNLOCK_WRITE(slapdFrontendConfig);
return retVal;
}
@@ -3518,10 +3524,13 @@ config_set_maxthreadsperconn( const char *attrname, char *value,
char *errorbuf,
}
if (apply) {
- CFG_LOCK_WRITE(slapdFrontendConfig);
- /* max_threads_per_conn = maxthreadnum; */
- slapdFrontendConfig->maxthreadsperconn = maxthreadnum;
- CFG_UNLOCK_WRITE(slapdFrontendConfig);
+#ifdef ATOMIC_GETSET_MAXTHREADSPERCONN
+ PR_AtomicSet(&slapdFrontendConfig->maxthreadsperconn,
(slapi_int_t)maxthreadnum);
+#else
+ CFG_LOCK_WRITE(slapdFrontendConfig);
+ slapdFrontendConfig->maxthreadsperconn = maxthreadnum;
+ CFG_UNLOCK_WRITE(slapdFrontendConfig);
+#endif
}
return retVal;
}
@@ -3704,10 +3713,13 @@ config_set_ioblocktimeout( const char *attrname, char *value, char
*errorbuf, in
#endif /* IRIX */
if ( apply ) {
- CFG_LOCK_WRITE(slapdFrontendConfig);
- slapdFrontendConfig->ioblocktimeout = nValue;
- /* g_ioblock_timeout= nValue; */
- CFG_UNLOCK_WRITE(slapdFrontendConfig);
+#ifdef ATOMIC_GETSET_IOBLOCKTIMEOUT
+ PR_AtomicSet(&slapdFrontendConfig->ioblocktimeout, (PRInt32)nValue);
+#else
+ CFG_LOCK_WRITE(slapdFrontendConfig);
+ slapdFrontendConfig->ioblocktimeout = nValue;
+ CFG_UNLOCK_WRITE(slapdFrontendConfig);
+#endif
}
return retVal;
@@ -4188,9 +4200,9 @@ config_get_disk_monitoring(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->disk_monitoring;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->disk_monitoring;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4200,9 +4212,9 @@ config_get_disk_preserve_logging(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->disk_preserve_logging;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->disk_preserve_logging;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4212,9 +4224,9 @@ config_get_disk_logging_critical(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->disk_logging_critical;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->disk_logging_critical;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4259,9 +4271,9 @@ config_get_ldapi_filename(){
int config_get_ldapi_switch(){
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->ldapi_switch;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->ldapi_switch;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4269,9 +4281,9 @@ int config_get_ldapi_switch(){
int config_get_ldapi_bind_switch(){
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->ldapi_bind_switch;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->ldapi_bind_switch;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4289,9 +4301,9 @@ char *config_get_ldapi_root_dn(){
int config_get_ldapi_map_entries(){
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->ldapi_map_entries;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->ldapi_map_entries;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4353,9 +4365,9 @@ int config_get_slapi_counters()
{
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->slapi_counters;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->slapi_counters;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4423,7 +4435,7 @@ int
config_get_ssl_check_hostname()
{
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- return slapdFrontendConfig->ssl_check_hostname;
+ return (int)slapdFrontendConfig->ssl_check_hostname;
}
@@ -4518,9 +4530,9 @@ config_get_pw_change() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_change;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_change;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4531,9 +4543,9 @@ config_get_pw_history() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_history;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_history;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4545,9 +4557,9 @@ config_get_pw_must_change() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_must_change;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_must_change;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4558,9 +4570,9 @@ config_get_pw_syntax() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_syntax;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_syntax;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4741,9 +4753,9 @@ config_get_pw_is_global_policy() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_is_global_policy;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_is_global_policy;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4753,9 +4765,9 @@ config_get_pw_is_legacy_policy() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_is_legacy;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_is_legacy;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4765,9 +4777,9 @@ config_get_pw_exp() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_exp;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_exp;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4778,9 +4790,9 @@ config_get_pw_unlock() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_unlock;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_unlock;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4790,9 +4802,9 @@ config_get_pw_lockout(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->pw_policy.pw_lockout;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->pw_policy.pw_lockout;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4815,9 +4827,9 @@ config_get_lastmod(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->lastmod;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->lastmod;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4827,9 +4839,9 @@ config_get_enquote_sup_oc(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->enquote_sup_oc;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->enquote_sup_oc;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4839,9 +4851,9 @@ config_get_nagle() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->nagle;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->nagle;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4850,9 +4862,9 @@ config_get_accesscontrol() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->accesscontrol;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->accesscontrol;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4862,7 +4874,7 @@ config_get_return_exact_case() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- retVal = slapdFrontendConfig->return_exact_case;
+ retVal = (int)slapdFrontendConfig->return_exact_case;
return retVal;
}
@@ -4872,9 +4884,9 @@ config_get_result_tweak() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->result_tweak;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->result_tweak;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4884,9 +4896,9 @@ config_get_security() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->security;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->security;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4896,9 +4908,9 @@ slapi_config_get_readonly() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->readonly;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->readonly;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4908,9 +4920,9 @@ config_get_schemacheck() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->schemacheck;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->schemacheck;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4920,9 +4932,9 @@ config_get_schemamod() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->schemamod;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->schemamod;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4932,9 +4944,9 @@ config_get_syntaxcheck() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->syntaxcheck;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->syntaxcheck;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4944,9 +4956,9 @@ config_get_syntaxlogging() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->syntaxlogging;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->syntaxlogging;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4956,9 +4968,9 @@ config_get_dn_validate_strict() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->dn_validate_strict;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->dn_validate_strict;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4968,9 +4980,9 @@ config_get_ds4_compatible_schema() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->ds4_compatible_schema;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->ds4_compatible_schema;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -4980,9 +4992,9 @@ config_get_schema_ignore_trailing_spaces() {
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->schema_ignore_trailing_spaces;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->schema_ignore_trailing_spaces;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -5074,11 +5086,13 @@ int
config_get_maxthreadsperconn(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
-
+#ifdef ATOMIC_GETSET_MAXTHREADSPERCONN
+ retVal = (int)slapdFrontendConfig->maxthreadsperconn;
+#else
CFG_LOCK_READ(slapdFrontendConfig);
retVal = slapdFrontendConfig->maxthreadsperconn;
CFG_UNLOCK_READ(slapdFrontendConfig);
-
+#endif
return retVal;
}
@@ -5113,9 +5127,13 @@ config_get_ioblocktimeout(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
+#ifndef ATOMIC_GETSET_IOBLOCKTIMEOUT
CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->ioblocktimeout;
+#endif
+ retVal = (int)slapdFrontendConfig->ioblocktimeout;
+#ifndef ATOMIC_GETSET_IOBLOCKTIMEOUT
CFG_UNLOCK_READ(slapdFrontendConfig);
+#endif
return retVal;
}
@@ -5318,7 +5336,7 @@ config_get_auditlog_logging_enabled(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- retVal = slapdFrontendConfig->auditlog_logging_enabled;
+ retVal = (int)slapdFrontendConfig->auditlog_logging_enabled;
return retVal;
}
@@ -5328,7 +5346,7 @@ config_get_accesslog_logging_enabled(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- retVal = slapdFrontendConfig->accesslog_logging_enabled;
+ retVal = (int)slapdFrontendConfig->accesslog_logging_enabled;
return retVal;
}
@@ -5383,9 +5401,9 @@ config_get_unauth_binds_switch(void)
{
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->allow_unauth_binds;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->allow_unauth_binds;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -5395,9 +5413,9 @@ config_get_require_secure_binds(void)
{
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->require_secure_binds;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->require_secure_binds;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -5407,9 +5425,9 @@ config_get_anon_access_switch(void)
{
int retVal = 0;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->allow_anon_access;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->allow_anon_access;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -5639,9 +5657,9 @@ config_get_minssf_exclude_rootdse()
{
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->minssf_exclude_rootdse;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->minssf_exclude_rootdse;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -5661,9 +5679,13 @@ config_set_max_filter_nest_level( const char *attrname, char
*value,
return retVal;
}
+#ifdef ATOMIC_GETSET_FILTER_NEST_LEVEL
+ PR_AtomicSet(&slapdFrontendConfig->max_filter_nest_level, atoi(value));
+#else
CFG_LOCK_WRITE(slapdFrontendConfig);
slapdFrontendConfig->max_filter_nest_level = atoi(value);
CFG_UNLOCK_WRITE(slapdFrontendConfig);
+#endif
return retVal;
}
@@ -5673,9 +5695,13 @@ config_get_max_filter_nest_level()
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
+#ifndef ATOMIC_GETSET_FILTER_NEST_LEVEL
CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->max_filter_nest_level;
+#endif
+ retVal = (int)slapdFrontendConfig->max_filter_nest_level;
+#ifndef ATOMIC_GETSET_FILTER_NEST_LEVEL
CFG_UNLOCK_READ(slapdFrontendConfig);
+#endif
return retVal;
}
@@ -5695,9 +5721,9 @@ config_get_ndn_cache_enabled(){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->ndn_cache_enabled;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->ndn_cache_enabled;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -6148,7 +6174,7 @@ int
config_get_mempool_switch()
{
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- return slapdFrontendConfig->mempool_switch;
+ return (int)slapdFrontendConfig->mempool_switch;
}
int
@@ -6221,7 +6247,7 @@ int
config_get_csnlogging()
{
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- return slapdFrontendConfig->csnlogging;
+ return (int)slapdFrontendConfig->csnlogging;
}
int
@@ -6243,7 +6269,7 @@ int
config_get_attrname_exceptions()
{
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- return slapdFrontendConfig->attrname_exceptions;
+ return (int)slapdFrontendConfig->attrname_exceptions;
}
int
@@ -6295,7 +6321,7 @@ config_get_rewrite_rfc1274()
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal;
- retVal = slapdFrontendConfig->rewrite_rfc1274;
+ retVal = (int)slapdFrontendConfig->rewrite_rfc1274;
return retVal;
}
@@ -6466,9 +6492,9 @@ config_get_force_sasl_external(void)
{
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->force_sasl_external;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->force_sasl_external;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -6494,9 +6520,9 @@ config_get_entryusn_global(void)
{
int retVal;
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- CFG_LOCK_READ(slapdFrontendConfig);
- retVal = slapdFrontendConfig->entryusn_global;
- CFG_UNLOCK_READ(slapdFrontendConfig);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->entryusn_global;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
return retVal;
}
@@ -7078,14 +7104,14 @@ config_set_accesslog_enabled(int value){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
char errorbuf[BUFSIZ];
- CFG_LOCK_WRITE(slapdFrontendConfig);
- slapdFrontendConfig->accesslog_logging_enabled = value;
+ CFG_ONOFF_LOCK_WRITE(slapdFrontendConfig);
+ slapdFrontendConfig->accesslog_logging_enabled = (int)value;
if(value){
log_set_logging(CONFIG_ACCESSLOG_LOGGING_ENABLED_ATTRIBUTE, "on",
SLAPD_ACCESS_LOG, errorbuf, CONFIG_APPLY);
} else {
log_set_logging(CONFIG_ACCESSLOG_LOGGING_ENABLED_ATTRIBUTE, "off",
SLAPD_ACCESS_LOG, errorbuf, CONFIG_APPLY);
}
- CFG_UNLOCK_WRITE(slapdFrontendConfig);
+ CFG_ONOFF_UNLOCK_WRITE(slapdFrontendConfig);
}
void
@@ -7093,14 +7119,14 @@ config_set_auditlog_enabled(int value){
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
char errorbuf[BUFSIZ];
- CFG_LOCK_WRITE(slapdFrontendConfig);
- slapdFrontendConfig->auditlog_logging_enabled = value;
+ CFG_ONOFF_LOCK_WRITE(slapdFrontendConfig);
+ slapdFrontendConfig->auditlog_logging_enabled = (int)value;
if(value){
log_set_logging(CONFIG_AUDITLOG_LOGGING_ENABLED_ATTRIBUTE, "on",
SLAPD_AUDIT_LOG, errorbuf, CONFIG_APPLY);
} else {
log_set_logging(CONFIG_AUDITLOG_LOGGING_ENABLED_ATTRIBUTE, "off",
SLAPD_AUDIT_LOG, errorbuf, CONFIG_APPLY);
}
- CFG_UNLOCK_WRITE(slapdFrontendConfig);
+ CFG_ONOFF_UNLOCK_WRITE(slapdFrontendConfig);
}
char *
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index 669c059..bee364f 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -339,6 +339,20 @@ typedef void (*VFPV)(); /* takes undefined arguments */
#define SLAPD_VALIDATE_CERT_ON 1
#define SLAPD_VALIDATE_CERT_WARN 2
+/* if the use of atomic get/set for config parameters is enabled, enable the use for the
specific parameters defined below */
+#define USE_ATOMIC_GETSET 1
+#ifdef USE_ATOMIC_GETSET
+#define ATOMIC_GETSET_MAXTHREADSPERCONN 1
+#define ATOMIC_GETSET_IOBLOCKTIMEOUT 1
+#define ATOMIC_GETSET_FILTER_NEST_LEVEL 1
+#define ATOMIC_GETSET_ONOFF 1
+typedef PRInt32 slapi_onoff_t;
+typedef PRInt32 slapi_int_t;
+#else
+typedef int slapi_onoff_t;
+typedef int slapi_int_t;
+#endif
+
struct subfilt {
char *sf_type;
char *sf_initial;
@@ -1520,9 +1534,9 @@ struct slapi_task {
/* End of interface to support online tasks **********************************/
typedef struct passwordpolicyarray {
- int pw_change; /* 1 - indicates that users are allowed to change the pwd */
- int pw_must_change; /* 1 - indicates that users must change pwd upon reset */
- int pw_syntax;
+ slapi_onoff_t pw_change; /* 1 - indicates that users are allowed to change the
pwd */
+ slapi_onoff_t pw_must_change; /* 1 - indicates that users must change pwd upon reset
*/
+ slapi_onoff_t pw_syntax;
int pw_minlength;
int pw_mindigits;
int pw_minalphas;
@@ -1533,20 +1547,20 @@ typedef struct passwordpolicyarray {
int pw_maxrepeats;
int pw_mincategories;
int pw_mintokenlength;
- int pw_exp;
+ slapi_onoff_t pw_exp;
long pw_maxage;
long pw_minage;
long pw_warning;
- int pw_history;
+ slapi_onoff_t pw_history;
int pw_inhistory;
- int pw_lockout;
+ slapi_onoff_t pw_lockout;
int pw_maxfailure;
- int pw_unlock;
+ slapi_onoff_t pw_unlock;
long pw_lockduration;
long pw_resetfailurecount;
int pw_gracelimit;
- int pw_is_legacy;
- int pw_track_update_time;
+ slapi_onoff_t pw_is_legacy;
+ slapi_onoff_t pw_track_update_time;
struct pw_scheme *pw_storagescheme;
} passwdPolicy;
@@ -2077,6 +2091,18 @@ typedef struct _slapdEntryPoints {
#define CFG_UNLOCK_WRITE(cfg) slapi_rwlock_unlock(cfg->cfg_rwlock)
#endif
+#ifdef ATOMIC_GETSET_ONOFF
+#define CFG_ONOFF_LOCK_READ(cfg)
+#define CFG_ONOFF_UNLOCK_READ(cfg)
+#define CFG_ONOFF_LOCK_WRITE(cfg)
+#define CFG_ONOFF_UNLOCK_WRITE(cfg)
+#else
+#define CFG_ONOFF_LOCK_READ(cfg) CFG_LOCK_READ(cfg)
+#define CFG_ONOFF_UNLOCK_READ(cfg) CFG_UNLOCK_READ(cfg)
+#define CFG_ONOFF_LOCK_WRITE(cfg) CFG_LOCK_WRITE(cfg)
+#define CFG_ONOFF_UNLOCK_WRITE(cfg) CFG_UNLOCK_WRITE(cfg)
+#endif
+
#define REFER_MODE_OFF 0
#define REFER_MODE_ON 1
@@ -2089,32 +2115,32 @@ typedef struct _slapdFrontendConfig {
PRLock *cfg_lock;
#endif
struct pw_scheme *rootpwstoragescheme;
- int accesscontrol;
+ slapi_onoff_t accesscontrol;
int groupevalnestlevel;
int idletimeout;
- int ioblocktimeout;
- int lastmod;
+ slapi_int_t ioblocktimeout;
+ slapi_onoff_t lastmod;
#if !defined(_WIN32) && !defined(AIX)
int maxdescriptors;
#endif /* !_WIN32 && !AIX */
int conntablesize;
- int maxthreadsperconn;
+ slapi_int_t maxthreadsperconn;
int outbound_ldap_io_timeout;
- int nagle;
+ slapi_onoff_t nagle;
int port;
- int readonly;
+ slapi_onoff_t readonly;
int reservedescriptors;
- int schemacheck;
- int schemamod;
- int syntaxcheck;
- int syntaxlogging;
- int dn_validate_strict;
- int ds4_compatible_schema;
- int schema_ignore_trailing_spaces;
+ slapi_onoff_t schemacheck;
+ slapi_onoff_t schemamod;
+ slapi_onoff_t syntaxcheck;
+ slapi_onoff_t syntaxlogging;
+ slapi_onoff_t dn_validate_strict;
+ slapi_onoff_t ds4_compatible_schema;
+ slapi_onoff_t schema_ignore_trailing_spaces;
int secureport;
- int security;
+ slapi_onoff_t security;
int SSLclientAuth;
- int ssl_check_hostname;
+ slapi_onoff_t ssl_check_hostname;
int validate_cert;
int sizelimit;
int SNMPenabled;
@@ -2144,19 +2170,19 @@ typedef struct _slapdFrontendConfig {
char **backendconfig;
char **include;
char **plugin;
- int plugin_track;
+ slapi_onoff_t plugin_track;
struct pw_scheme *pw_storagescheme;
- int pwpolicy_local;
- int pw_is_global_policy;
+ slapi_onoff_t pwpolicy_local;
+ slapi_onoff_t pw_is_global_policy;
passwdPolicy pw_policy;
/* ACCESS LOG */
- int accesslog_logging_enabled;
+ slapi_onoff_t accesslog_logging_enabled;
char *accesslog_mode;
int accesslog_maxnumlogs;
int accesslog_maxlogsize;
- int accesslog_rotationsync_enabled;
+ slapi_onoff_t accesslog_rotationsync_enabled;
int accesslog_rotationsynchour;
int accesslog_rotationsyncmin;
int accesslog_rotationtime;
@@ -2166,15 +2192,15 @@ typedef struct _slapdFrontendConfig {
int accesslog_exptime;
char *accesslog_exptimeunit;
int accessloglevel;
- int accesslogbuffering;
- int csnlogging;
+ slapi_onoff_t accesslogbuffering;
+ slapi_onoff_t csnlogging;
/* ERROR LOG */
- int errorlog_logging_enabled;
+ slapi_onoff_t errorlog_logging_enabled;
char *errorlog_mode;
int errorlog_maxnumlogs;
int errorlog_maxlogsize;
- int errorlog_rotationsync_enabled;
+ slapi_onoff_t errorlog_rotationsync_enabled;
int errorlog_rotationsynchour;
int errorlog_rotationsyncmin;
int errorlog_rotationtime;
@@ -2188,11 +2214,11 @@ typedef struct _slapdFrontendConfig {
/* AUDIT LOG */
char *auditlog; /* replication audit file */
int auditloglevel;
- int auditlog_logging_enabled;
+ slapi_onoff_t auditlog_logging_enabled;
char *auditlog_mode;
int auditlog_maxnumlogs;
int auditlog_maxlogsize;
- int auditlog_rotationsync_enabled;
+ slapi_onoff_t auditlog_rotationsync_enabled;
int auditlog_rotationsynchour;
int auditlog_rotationsyncmin;
int auditlog_rotationtime;
@@ -2201,20 +2227,20 @@ typedef struct _slapdFrontendConfig {
int auditlog_minfreespace;
int auditlog_exptime;
char *auditlog_exptimeunit;
- int auditlog_logging_hide_unhashed_pw;
+ slapi_onoff_t auditlog_logging_hide_unhashed_pw;
- int return_exact_case; /* Return attribute names with the same case
- * as they appear in at.conf */
+ slapi_onoff_t return_exact_case; /* Return attribute names with the same case
+ as they appear in at.conf */
- int result_tweak;
+ slapi_onoff_t result_tweak;
char *refer_url; /* for referral mode */
int refer_mode; /* for quick test */
int slapd_type; /* Directory type; Full or Lite */
ber_len_t maxbersize; /* Maximum BER element size we'll accept */
- int max_filter_nest_level;/* deepest nested filter we will accept */
- int enquote_sup_oc; /* put single quotes around an oc's
- superior oc in cn=schema */
+ slapi_int_t max_filter_nest_level;/* deepest nested filter we will accept */
+ slapi_onoff_t enquote_sup_oc; /* put single quotes around an oc's
+ superior oc in cn=schema */
char *certmap_basedn; /* Default Base DN for certmap */
@@ -2229,38 +2255,38 @@ typedef struct _slapdFrontendConfig {
char *bakdir; /* full path name of directory containing bakup files */
char *rundir; /* where pid, snmp stats, and ldapi files go */
char *saslpath; /* full path name of directory containing sasl plugins */
- int attrname_exceptions; /* if true, allow questionable attribute names */
- int rewrite_rfc1274; /* return attrs for both v2 and v3 names */
+ slapi_onoff_t attrname_exceptions; /* if true, allow questionable attribute names */
+ slapi_onoff_t rewrite_rfc1274; /* return attrs for both v2 and v3 names */
char *schemareplace; /* see CONFIG_SCHEMAREPLACE_* #defines below */
char *ldapi_filename; /* filename for ldapi socket */
- int ldapi_switch; /* switch to turn ldapi on/off */
- int ldapi_bind_switch; /* switch to turn ldapi auto binding on/off */
+ slapi_onoff_t ldapi_switch; /* switch to turn ldapi on/off */
+ slapi_onoff_t ldapi_bind_switch; /* switch to turn ldapi auto binding on/off */
char *ldapi_root_dn; /* DN to map root to over LDAPI */
- int ldapi_map_entries; /* turns ldapi entry bind mapping on/off */
+ slapi_onoff_t ldapi_map_entries; /* turns ldapi entry bind mapping on/off */
char *ldapi_uidnumber_type; /* type that contains uid number */
char *ldapi_gidnumber_type; /* type that contains gid number */
char *ldapi_search_base_dn; /* base dn to search for mapped entries */
char *ldapi_auto_dn_suffix; /* suffix to be appended to auto gen DNs */
- int slapi_counters; /* switch to turn slapi_counters on/off */
- int allow_unauth_binds; /* switch to enable/disable unauthenticated binds */
- int require_secure_binds; /* switch to require simple binds to use a secure channel */
- int allow_anon_access; /* switch to enable/disable anonymous access */
+ slapi_onoff_t slapi_counters; /* switch to turn slapi_counters on/off */
+ slapi_onoff_t allow_unauth_binds; /* switch to enable/disable unauthenticated
binds */
+ slapi_onoff_t require_secure_binds; /* switch to require simple binds to use a secure
channel */
+ slapi_onoff_t allow_anon_access; /* switch to enable/disable anonymous access */
int localssf; /* the security strength factor to assign to local conns (ldapi) */
int minssf; /* minimum security strength factor (for SASL and SSL/TLS) */
- int minssf_exclude_rootdse; /* ON: minssf is ignored when searching rootdse */
+ slapi_onoff_t minssf_exclude_rootdse; /* ON: minssf is ignored when searching rootdse
*/
size_t maxsasliosize; /* limit incoming SASL IO packet size */
char *anon_limits_dn; /* template entry for anonymous resource limits */
#ifndef _WIN32
struct passwd *localuserinfo; /* userinfo of localuser */
#endif /* _WIN32 */
#ifdef MEMPOOL_EXPERIMENTAL
- int mempool_switch; /* switch to turn memory pool on/off */
+ slapi_onoff_t mempool_switch; /* switch to turn memory pool on/off */
int mempool_maxfreelist; /* max free list length per memory pool item */
long system_page_size; /* system page size */
int system_page_bits; /* bit count to shift the system page size */
#endif /* MEMPOOL_EXPERIMENTAL */
- int force_sasl_external; /* force SIMPLE bind to be SASL/EXTERNAL if client cert
credentials were supplied */
- int entryusn_global; /* Entry USN: Use global counter */
+ slapi_onoff_t force_sasl_external; /* force SIMPLE bind to be SASL/EXTERNAL if
client cert credentials were supplied */
+ slapi_onoff_t entryusn_global; /* Entry USN: Use global counter */
char *allowed_to_delete_attrs;/* list of config attrs allowed to delete */
char *entryusn_import_init; /* Entry USN: determine the initital value of import */
int pagedsizelimit;
@@ -2268,14 +2294,14 @@ typedef struct _slapdFrontendConfig {
char *allowed_sasl_mechs; /* comma/space separated list of allowed sasl mechs */
/* disk monitoring */
- int disk_monitoring;
+ slapi_onoff_t disk_monitoring;
int disk_threshold;
int disk_grace_period;
- int disk_preserve_logging;
- int disk_logging_critical;
+ slapi_onoff_t disk_preserve_logging;
+ slapi_onoff_t disk_logging_critical;
/* normalized dn cache */
- int ndn_cache_enabled;
+ slapi_onoff_t ndn_cache_enabled;
size_t ndn_cache_max_size;
/* atomic settings */