summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-31 13:23:13 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-31 13:23:13 -0400
commitf5d9210ffcd034bbefaad89f856bdc29a7f2e845 (patch)
tree005863539eb2960481120e484d86c7a6a5484df9 /src
parentc258ffc1e519df5e909a84d0ad4c7f858c59752a (diff)
downloadslapi-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.c48
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) :