ldap/servers/slapd/libglobs.c | 17 +++++++++--------
ldap/servers/slapd/slap.h | 2 +-
2 files changed, 10 insertions(+), 9 deletions(-)
New commits:
commit 655bd4d8b193785d0acfb901760c70645e499cef
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Tue May 7 16:52:41 2013 -0400
Ticket 47355 - dse.ldif doesn't replicate update to nsslapd-sasl-mapping-fallback
Bug Description: Setting the feature on and off through ldapmodify can leave the
dse.ldif
in an inconsistent state.
Fix Description: Using a Slapi_Counter is not necessary, and it caused issues. Set
the config
type back to integer.
https://fedorahosted.org/389/ticket/47355
reviewed by: richm(Thanks!)
(cherry picked from commit ba0d57922339a1f114db236da28112280f2ec9c1)
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c
index 9780b2e..fc87e86 100644
--- a/ldap/servers/slapd/libglobs.c
+++ b/ldap/servers/slapd/libglobs.c
@@ -1483,8 +1483,7 @@ FrontendConfig_init () {
init_ndn_cache_enabled = cfg->ndn_cache_enabled = LDAP_OFF;
cfg->ndn_cache_max_size = NDN_DEFAULT_SIZE;
cfg->ignore_vattrs = slapi_counter_new();
- cfg->sasl_mapping_fallback = slapi_counter_new();
- init_sasl_mapping_fallback = LDAP_OFF;
+ init_sasl_mapping_fallback = cfg->sasl_mapping_fallback = LDAP_OFF;
cfg->sasl_max_bufsize = SLAPD_DEFAULT_SASL_MAXBUFSIZE;
cfg->unhashed_pw_switch = SLAPD_UNHASHED_PW_ON;
init_return_orig_type = cfg->return_orig_type = LDAP_OFF;
@@ -1633,12 +1632,9 @@ config_set_sasl_mapping_fallback (const char *attrname, char
*value, char *error
{
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
int retVal = LDAP_SUCCESS;
- int val;
- retVal = config_set_onoff ( attrname, value, &val, errorbuf, apply);
- if(retVal == LDAP_SUCCESS){
- slapi_counter_set_value(slapdFrontendConfig->sasl_mapping_fallback, val);
- }
+ retVal = config_set_onoff ( attrname, value,
&(slapdFrontendConfig->sasl_mapping_fallback), errorbuf, apply);
+
return retVal;
}
@@ -4294,8 +4290,13 @@ int
config_get_sasl_mapping_fallback()
{
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+ int retVal;
- return slapi_counter_get_value(slapdFrontendConfig->sasl_mapping_fallback);
+ CFG_ONOFF_LOCK_READ(slapdFrontendConfig);
+ retVal = (int)slapdFrontendConfig->sasl_mapping_fallback;
+ CFG_ONOFF_UNLOCK_READ(slapdFrontendConfig);
+
+ return retVal;
}
int
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index 384ebfb..06eef47 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -2318,7 +2318,7 @@ typedef struct _slapdFrontendConfig {
/* atomic settings */
Slapi_Counter *ignore_vattrs;
- Slapi_Counter *sasl_mapping_fallback;
+ slapi_onoff_t sasl_mapping_fallback;
slapi_onoff_t unhashed_pw_switch; /* switch to on/off/nolog unhashed pw */
slapi_onoff_t enable_turbo_mode;
} slapdFrontendConfig_t;