浏览代码

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!)
Mark Reynolds 12 年之前
父节点
当前提交
ba0d579223
共有 2 个文件被更改,包括 10 次插入9 次删除
  1. 9 8
      ldap/servers/slapd/libglobs.c
  2. 1 1
      ldap/servers/slapd/slap.h

+ 9 - 8
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

+ 1 - 1
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 */