diff options
| author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-07-03 15:49:24 -0400 |
|---|---|---|
| committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-07-03 15:49:24 -0400 |
| commit | de8dfd539a95d7d34ffcf8e873740e8079011994 (patch) | |
| tree | fb2805656e6993ae58bd9e843205b23d12c99a81 /src | |
| parent | 0b7de0dd675f9e9b6ebc708eacfe22c4a127cb38 (diff) | |
| download | slapi-nis-de8dfd539a95d7d34ffcf8e873740e8079011994.tar.gz slapi-nis-de8dfd539a95d7d34ffcf8e873740e8079011994.tar.xz slapi-nis-de8dfd539a95d7d34ffcf8e873740e8079011994.zip | |
- add more functions for reading vattr-stored configuration
Diffstat (limited to 'src')
| -rw-r--r-- | src/back-shr.c | 28 | ||||
| -rw-r--r-- | src/back-shr.h | 3 |
2 files changed, 28 insertions, 3 deletions
diff --git a/src/back-shr.c b/src/back-shr.c index 38a9949..20f476f 100644 --- a/src/back-shr.c +++ b/src/back-shr.c @@ -408,6 +408,28 @@ backend_shr_get_vattr_str(struct plugin_state *state, } return ret; } +unsigned int +backend_shr_get_vattr_uint(struct plugin_state *state, + Slapi_Entry *e, const char *attribute, + unsigned int default_value) +{ + Slapi_ValueSet *values; + Slapi_Value *value; + int disposition, buffer_flags, i; + char *actual_attr; + unsigned int ret; + ret = default_value; + if (slapi_vattr_values_get(e, (char *) attribute, + &values, &disposition, &actual_attr, + 0, &buffer_flags) == 0) { + i = slapi_valueset_first_value(values, &value); + if (i != -1) { + ret = slapi_value_get_uint(value); + } + slapi_vattr_values_free(&values, &actual_attr, buffer_flags); + } + return ret; +} char * backend_shr_get_vattr_filter(struct plugin_state *state, Slapi_Entry *e, const char *attribute) @@ -439,9 +461,9 @@ backend_shr_get_vattr_boolean(struct plugin_state *state, tmp = backend_shr_get_vattr_str(state, e, attribute); if (tmp != NULL) { /* FIXME: should we use nl_langinfo(YESEXPR) here? */ - if ((strcasecmp(cvalue, "yes") == 0) || - (strcasecmp(cvalue, "on") == 0) || - (strcasecmp(cvalue, "1") == 0)) { + if ((strcasecmp(tmp, "yes") == 0) || + (strcasecmp(tmp, "on") == 0) || + (strcasecmp(tmp, "1") == 0)) { ret = TRUE; } else { ret = FALSE; diff --git a/src/back-shr.h b/src/back-shr.h index 178043c..126bfe1 100644 --- a/src/back-shr.h +++ b/src/back-shr.h @@ -50,6 +50,9 @@ char **backend_shr_get_vattr_strlist(struct plugin_state *state, Slapi_Entry *e, const char *attribute); char *backend_shr_get_vattr_str(struct plugin_state *state, Slapi_Entry *e, const char *attribute); +unsigned int backend_shr_get_vattr_uint(struct plugin_state *state, + Slapi_Entry *e, const char *attribute, + unsigned int default_value); char *backend_shr_get_vattr_filter(struct plugin_state *state, Slapi_Entry *e, const char *attribute); bool_t backend_shr_get_vattr_boolean(struct plugin_state *state, |
