summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-06-26 12:54:41 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-06-26 12:54:41 -0400
commit0487c34fec189add296bd4177b67a05cd13d7aab (patch)
tree80c3dba9062070345b346b9c907776d8a5fd7fea /src
parentb78784c5c2e228da4863b24dab0ac33430b91e4f (diff)
- don't require a disallowed_chars setting
- handle filter settings without enclosing parentheses
Diffstat (limited to 'src')
-rw-r--r--src/backend.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/backend.c b/src/backend.c
index 1ca125d..f57707b 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -230,13 +230,13 @@ backend_copy_cb_data(const struct backend_map_data *data)
if ((ret->domain == NULL) ||
(ret->map == NULL) ||
(ret->bases == NULL) ||
- (ret->disallowed_chars == NULL) ||
(ret->entry_filter == NULL) ||
((ret->key_formats == NULL) && (ret->keys_formats == NULL)) ||
(ret->value_format == NULL)) {
backend_free_map_data(ret);
return NULL;
- } return ret;
+ }
+ return ret;
}
/* Given a map-entry directory entry, determine which keys it should have,
@@ -542,7 +542,20 @@ backend_map_config_read_config(struct plugin_state *state, Slapi_Entry *e,
i = slapi_valueset_first_value(values, &value);
if (i != -1) {
cvalue = slapi_value_get_string(value);
- entry_filter = strdup(cvalue);
+ if (strlen(cvalue) > 1) {
+ if ((cvalue[0] != '(') ||
+ (cvalue[strlen(cvalue) - 1] != ')')) {
+ entry_filter = malloc(strlen(cvalue) +
+ 3);
+ if (entry_filter != NULL) {
+ sprintf(entry_filter, "(%s)",
+ cvalue);
+ }
+ }
+ }
+ if (entry_filter == NULL) {
+ entry_filter = strdup(cvalue);
+ }
}
slapi_vattr_values_free(&values, &actual_attr, buffer_flags);
}