summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-03 15:49:24 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-03 15:49:24 -0400
commitde8dfd539a95d7d34ffcf8e873740e8079011994 (patch)
treefb2805656e6993ae58bd9e843205b23d12c99a81 /src
parent0b7de0dd675f9e9b6ebc708eacfe22c4a127cb38 (diff)
downloadslapi-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.c28
-rw-r--r--src/back-shr.h3
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,