diff options
| author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-05-16 18:35:28 -0400 |
|---|---|---|
| committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-05-16 18:35:28 -0400 |
| commit | 82ec8e499f87136252e4e9361dcf8ea2c14c6294 (patch) | |
| tree | 0f7dce5718c15231eedde81cf5c4324018a0c56d /src/backend.c | |
| parent | 8ab5f4b2f802331090068ab3fb655238e561a9a8 (diff) | |
| download | slapi-nis-82ec8e499f87136252e4e9361dcf8ea2c14c6294.tar.gz slapi-nis-82ec8e499f87136252e4e9361dcf8ea2c14c6294.tar.xz slapi-nis-82ec8e499f87136252e4e9361dcf8ea2c14c6294.zip | |
- add a table of defaults
- add a "match" format function ("regmatch" is still needed)
Diffstat (limited to 'src/backend.c')
| -rw-r--r-- | src/backend.c | 42 |
1 files changed, 18 insertions, 24 deletions
diff --git a/src/backend.c b/src/backend.c index a004eae..8347497 100644 --- a/src/backend.c +++ b/src/backend.c @@ -286,43 +286,38 @@ backend_map_config_entry(struct plugin_state *state, Slapi_Entry *e, Slapi_PBlock *pb; char **base; int i; - char *entry_filter, *use_entry_filter, *key_attribute, *value_attribute; - char *use_key_attribute, *use_value_attribute; - char *use_attrs[3]; /* XXX */ + char *entry_filter, *use_entry_filter, *key_format, *value_format; + const char *use_key_format, *use_value_format; + const char *default_filter, *default_key_format, *default_value_format; struct backend_map_data cb_data; pb = slapi_pblock_new(); - /* Read the NIS entry search base, entry search filter, and the names - * of the key and value attributes. */ + /* Read the NIS entry search base, entry search filter, and the key and + * value formats. */ + defaults_get_map_config(map, &default_filter, + &default_key_format, &default_value_format); base = slapi_entry_attr_get_charray(e, "base"); entry_filter = slapi_entry_attr_get_charptr(e, "filter"); - key_attribute = slapi_entry_attr_get_charptr(e, "key"); - value_attribute = slapi_entry_attr_get_charptr(e, "value"); + key_format = slapi_entry_attr_get_charptr(e, "keyFormat"); + value_format = slapi_entry_attr_get_charptr(e, "valueFormat"); /* Perform substitutions on the filter, so that it can include the map * name without having to explicitly list it. We need this because * RFC2307bis actually stores the map name in each entry, so it's * useful to be able to filter on it. */ use_entry_filter = backend_map_config_filter(entry_filter ? entry_filter : - DEFAULT_ENTRY_FILTER, + default_filter, domain, map); - /* If the key and value attributes aren't set, we'll use compiled-in + /* If the key and value formats aren't set, we'll use compiled-in * defaults. */ - use_key_attribute = key_attribute ? - key_attribute : - DEFAULT_KEY_ATTRIBUTE; - use_value_attribute = value_attribute ? - value_attribute : - DEFAULT_VALUE_ATTRIBUTE; + use_key_format = key_format ? key_format : default_key_format; + use_value_format = value_format ? value_format : default_value_format; /* Now get ready to search for entries which need to be in the map. */ - use_attrs[0] = use_key_attribute; /* XXX */ - use_attrs[1] = use_value_attribute; /* XXX */ - use_attrs[2] = NULL; /* XXX */ cb_data.state = state; cb_data.domain = (char *) domain; cb_data.map = (char *) map; - cb_data.key_fmt = use_key_attribute; - cb_data.value_fmt = use_value_attribute; + cb_data.key_fmt = strdup(use_key_format); + cb_data.value_fmt = strdup(use_value_format); cb_data.filter = use_entry_filter; cb_data.bases = base; slapi_log_error(SLAPI_LOG_PLUGIN, @@ -344,7 +339,7 @@ backend_map_config_entry(struct plugin_state *state, Slapi_Entry *e, base[i], LDAP_SCOPE_SUB, use_entry_filter, - use_attrs, 0, + NULL, 0, NULL, NULL, state->plugin_identity, @@ -356,9 +351,8 @@ backend_map_config_entry(struct plugin_state *state, Slapi_Entry *e, slapi_free_search_results_internal(pb); } /* Clean up. */ - free(use_entry_filter); - slapi_ch_free_string(&value_attribute); - slapi_ch_free_string(&key_attribute); + slapi_ch_free_string(&value_format); + slapi_ch_free_string(&key_format); slapi_ch_free_string(&entry_filter); slapi_ch_array_free(base); slapi_pblock_destroy(pb); |
