diff options
| author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-07-31 13:23:13 -0400 |
|---|---|---|
| committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-07-31 13:23:13 -0400 |
| commit | f5d9210ffcd034bbefaad89f856bdc29a7f2e845 (patch) | |
| tree | 005863539eb2960481120e484d86c7a6a5484df9 /src | |
| parent | c258ffc1e519df5e909a84d0ad4c7f858c59752a (diff) | |
| download | slapi-nis-f5d9210ffcd034bbefaad89f856bdc29a7f2e845.tar.gz slapi-nis-f5d9210ffcd034bbefaad89f856bdc29a7f2e845.tar.xz slapi-nis-f5d9210ffcd034bbefaad89f856bdc29a7f2e845.zip | |
- when gathering data, suppress empty groups
- when reading NIS configuration, treat having an explicitly specified
key-format or keys-format as reason to discard the defaults for both,
and treat value-format and values-format similarly
Diffstat (limited to 'src')
| -rw-r--r-- | src/back-nis.c | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/src/back-nis.c b/src/back-nis.c index 915b5cf..ba30bef 100644 --- a/src/back-nis.c +++ b/src/back-nis.c @@ -256,18 +256,20 @@ backend_gather_data(struct plugin_state *state, Slapi_Entry *e, return NULL; } } - for (i = 0; i < n_groups; i++) { - groups[i] = format_get_data_set(state, e, domain, map, + for (i = 0, j = 0; i < n_groups; i++) { + groups[j] = format_get_data_set(state, e, domain, map, group_formats[i], disallowed_chars, ref_attrs, inref_attrs, - &group_lengths[i]); - if (groups[i] != NULL) { - for (j = 0; groups[i][j] != NULL; j++) { + &group_lengths[j]); + if (groups[j] != NULL) { + for (k = 0; groups[j][k] != NULL; k++) { n++; } + j++; } } + n_groups = j; ret = malloc((n + 1) * sizeof(char *)); lengths = malloc(n * sizeof(ret_lengths[0])); if ((ret == NULL) || (ret_lengths == NULL)) { @@ -505,28 +507,32 @@ backend_set_config_read_config(struct plugin_state *state, Slapi_Entry *e, domain, map); use_key_formats = key_formats ? backend_shr_dup_strlist_unless_empty(key_formats) : - default_key_format ? - backend_shr_dup_strlist_n((char **) &default_key_format, - 1) : - NULL; + (keys_formats ? NULL : + (default_key_format ? + backend_shr_dup_strlist_n((char **) &default_key_format, + 1) : + NULL)); use_keys_formats = keys_formats ? backend_shr_dup_strlist_unless_empty(keys_formats) : - default_keys_format ? - backend_shr_dup_strlist_n((char **) &default_keys_format, - 1) : - NULL; + (key_formats ? NULL : + (default_keys_format ? + backend_shr_dup_strlist_n((char **) &default_keys_format, + 1) : + NULL)); use_value_formats = value_formats ? backend_shr_dup_strlist_unless_empty(value_formats) : - default_value_format ? - backend_shr_dup_strlist_n((char **) &default_value_format, - 1) : - NULL; + (values_formats ? NULL : + (default_value_format ? + backend_shr_dup_strlist_n((char **) &default_value_format, + 1) : + NULL)); use_values_formats = values_formats ? backend_shr_dup_strlist_unless_empty(values_formats) : - default_values_format ? - backend_shr_dup_strlist_n((char **) &default_values_format, - 1) : - NULL; + (value_formats ? NULL : + (default_values_format ? + backend_shr_dup_strlist_n((char **) &default_values_format, + 1) : + NULL)); use_bases = backend_shr_dup_strlist(bases); use_disallowed_chars = disallowed_chars ? strdup(disallowed_chars) : |
