summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-06-25 18:54:55 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-06-25 18:54:55 -0400
commit26b86dbea2d07b7cb5d71502dbc7333b1c00a93d (patch)
treee1e0c999ff247e99f35cee2d9b293f5a6fa41c37 /src
parent7548b0dc3c1893b4221feb801b91825bfd36c64a (diff)
downloadslapi-nis-26b86dbea2d07b7cb5d71502dbc7333b1c00a93d.tar.gz
slapi-nis-26b86dbea2d07b7cb5d71502dbc7333b1c00a93d.tar.xz
slapi-nis-26b86dbea2d07b7cb5d71502dbc7333b1c00a93d.zip
- clean up to not set defaults which we may not be overriding
Diffstat (limited to 'src')
-rw-r--r--src/backend.c25
-rw-r--r--src/defaults.c42
2 files changed, 40 insertions, 27 deletions
diff --git a/src/backend.c b/src/backend.c
index 70be087..1ca125d 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -50,7 +50,7 @@
#include "plugin.h"
#include "map.h"
-#define MAP_CONFIGURATION_FILTER "(objectClass=*)(" MAP_CONFIGURATION_BASE_ATTR "=*)(" MAP_CONFIGURATION_DOMAIN_ATTR "=*)(" MAP_CONFIGURATION_MAP_ATTR "=*)"
+#define MAP_CONFIGURATION_FILTER "(&(objectClass=*)(" MAP_CONFIGURATION_BASE_ATTR "=*)(" MAP_CONFIGURATION_DOMAIN_ATTR "=*)(" MAP_CONFIGURATION_MAP_ATTR "=*))"
/* The data we ask the map cache to keep, for us, for each map. */
struct backend_map_data {
@@ -551,7 +551,7 @@ backend_map_config_read_config(struct plugin_state *state, Slapi_Entry *e,
&disposition, &actual_attr,
0, &buffer_flags) == 0) {
key_formats = malloc((slapi_valueset_count(values) + 1) *
- (sizeof (char *)));
+ sizeof (char *));
if (key_formats != NULL) {
i = 0;
for (j = slapi_valueset_first_value(values, &value);
@@ -561,16 +561,16 @@ backend_map_config_read_config(struct plugin_state *state, Slapi_Entry *e,
key_formats[i++] = strdup(cvalue);
}
key_formats[i] = NULL;
- slapi_vattr_values_free(&values, &actual_attr,
- buffer_flags);
}
+ slapi_vattr_values_free(&values, &actual_attr,
+ buffer_flags);
}
keys_formats = NULL;
if (slapi_vattr_values_get(e, MAP_CONFIGURATION_KEYS_ATTR, &values,
&disposition, &actual_attr,
0, &buffer_flags) == 0) {
keys_formats = malloc((slapi_valueset_count(values) + 1) *
- (sizeof (char *)));
+ sizeof (char *));
if (keys_formats != NULL) {
i = 0;
for (j = slapi_valueset_first_value(values, &value);
@@ -580,9 +580,9 @@ backend_map_config_read_config(struct plugin_state *state, Slapi_Entry *e,
keys_formats[i++] = strdup(cvalue);
}
keys_formats[i] = NULL;
- slapi_vattr_values_free(&values, &actual_attr,
- buffer_flags);
}
+ slapi_vattr_values_free(&values, &actual_attr,
+ buffer_flags);
}
value_format = NULL;
if (slapi_vattr_values_get(e, MAP_CONFIGURATION_VALUE_ATTR, &values,
@@ -634,12 +634,16 @@ backend_map_config_read_config(struct plugin_state *state, Slapi_Entry *e,
domain, map);
use_key_formats = key_formats ?
backend_dup_strlist(key_formats) :
+ default_key_format ?
backend_dup_strlist_n((char **) &default_key_format,
- 1);
+ 1) :
+ NULL;
use_keys_formats = keys_formats ?
backend_dup_strlist(keys_formats) :
+ default_keys_format ?
backend_dup_strlist_n((char **) &default_keys_format,
- 1);
+ 1) :
+ NULL;
use_value_format = value_format ?
strdup(value_format) :
strdup(default_value_format);
@@ -663,7 +667,9 @@ backend_map_config_read_config(struct plugin_state *state, Slapi_Entry *e,
ret->disallowed_chars = use_disallowed_chars;
ret->entry_filter = use_entry_filter;
ret->key_formats = use_key_formats;
+ ret->n_key_formats = 0;
ret->keys_formats = use_keys_formats;
+ ret->n_keys_formats = 0;
ret->value_format = use_value_format;
ret->ref_attrs = NULL;
ret->inref_attrs = NULL;
@@ -952,6 +958,7 @@ backend_startup(struct plugin_state *state)
Slapi_PBlock *pb;
char *attrs = NULL;
backend_read_params(state);
+
pb = slapi_pblock_new();
slapi_log_error(SLAPI_LOG_PLUGIN,
state->plugin_desc->spd_id,
diff --git a/src/defaults.c b/src/defaults.c
index 08dc59f..455a07f 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -171,24 +171,6 @@ defaults_get_map_config(const char *mapname,
const char **disallowed_chars)
{
unsigned int i;
- if (secure) {
- *secure = DEFAULT_MAP_SECURE;
- }
- if (filter) {
- *filter = DEFAULT_ENTRY_FILTER;
- }
- if (key_format) {
- *key_format = DEFAULT_KEY_FORMAT;
- }
- if (keys_format) {
- *keys_format = DEFAULT_KEYS_FORMAT;
- }
- if (value_format) {
- *value_format = DEFAULT_VALUE_FORMAT;
- }
- if (disallowed_chars) {
- *disallowed_chars = DEFAULT_DISALLOWED_CHARS;
- }
for (i = 0; i < sizeof(config) / sizeof(config[0]); i++) {
bool_t match;
match = FALSE;
@@ -205,6 +187,9 @@ defaults_get_map_config(const char *mapname,
}
break;
}
+ if (!match) {
+ continue;
+ }
if (secure) {
*secure = config[i].secure;
}
@@ -223,5 +208,26 @@ defaults_get_map_config(const char *mapname,
if (disallowed_chars) {
*disallowed_chars = config[i].disallowed_chars;
}
+ break;
+ }
+ if (i >= (sizeof(config) / sizeof(config[0]))) {
+ if (secure) {
+ *secure = DEFAULT_MAP_SECURE;
+ }
+ if (filter) {
+ *filter = DEFAULT_ENTRY_FILTER;
+ }
+ if (key_format) {
+ *key_format = DEFAULT_KEY_FORMAT;
+ }
+ if (keys_format) {
+ *keys_format = DEFAULT_KEYS_FORMAT;
+ }
+ if (value_format) {
+ *value_format = DEFAULT_VALUE_FORMAT;
+ }
+ if (disallowed_chars) {
+ *disallowed_chars = DEFAULT_DISALLOWED_CHARS;
+ }
}
}