diff options
author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-05-16 15:08:18 -0400 |
---|---|---|
committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-05-16 15:08:18 -0400 |
commit | 5298ebf02a99d54271c10a5bf333bbba58bbc4af (patch) | |
tree | b6543cb6cf2f3abad0c4c5a96132b43996e063e8 /src | |
parent | 952b790ce53cc530d75071895928a2c578503460 (diff) | |
download | slapi-nis-5298ebf02a99d54271c10a5bf333bbba58bbc4af.tar.gz slapi-nis-5298ebf02a99d54271c10a5bf333bbba58bbc4af.tar.xz slapi-nis-5298ebf02a99d54271c10a5bf333bbba58bbc4af.zip |
- switch to using virtual attribute APIs
Diffstat (limited to 'src')
-rw-r--r-- | src/format.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/format.c b/src/format.c index a7029ea..fb32aeb 100644 --- a/src/format.c +++ b/src/format.c @@ -406,18 +406,27 @@ static char * format_single(Slapi_PBlock *pb, Slapi_Entry *e, const char *attr, char ***visited_ndns) { - char **values, *ret; - int count; - values = slapi_entry_attr_get_charray(e, attr); - for (count = 0; (values != NULL) && (values[count] != NULL); count++) { - continue; + Slapi_ValueSet *value_set; + Slapi_Value *value; + char *ret, *actual_attr; + const char *cret; + int count, disposition, buffer_flags; + if (slapi_vattr_values_get(e, (char *) attr, &value_set, + &disposition, &actual_attr, + 0, &buffer_flags) != 0) { + return NULL; } + count = slapi_valueset_count(value_set); + ret = NULL; if (count == 1) { - ret = strdup(values[0]); - } else { - ret = NULL; + if (slapi_valueset_first_value(value_set, &value) == 0) { + cret = slapi_value_get_string(value); + if (cret != NULL) { + ret = strdup(cret); + } + } } - slapi_ch_array_free(values); + slapi_vattr_values_free(&value_set, &actual_attr, buffer_flags); return ret; } |