From ba0d57922339a1f114db236da28112280f2ec9c1 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: May 07 2013 21:23:44 +0000 Subject: 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!) --- diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c index eb250ed..bfe11a6 100644 --- a/ldap/servers/slapd/libglobs.c +++ b/ldap/servers/slapd/libglobs.c @@ -1498,8 +1498,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; @@ -1650,12 +1649,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; } @@ -4344,8 +4340,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 b84dd15..d58d322 100644 --- a/ldap/servers/slapd/slap.h +++ b/ldap/servers/slapd/slap.h @@ -2331,7 +2331,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; slapi_int_t connection_buffer; /* values are CONNECTION_BUFFER_* below */