diff options
author | Sumit Bose <sbose@redhat.com> | 2013-12-10 10:14:02 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-12-19 20:26:27 +0100 |
commit | 91c41b25f3d2e5a6074d1dd73c3355f9159d2cae (patch) | |
tree | a8fc624ca452f58001b1be5111588468dbf30638 /src | |
parent | fd56e9302454869c636c2e40322eec52391b4c4f (diff) | |
download | sssd-91c41b25f3d2e5a6074d1dd73c3355f9159d2cae.tar.gz sssd-91c41b25f3d2e5a6074d1dd73c3355f9159d2cae.tar.xz sssd-91c41b25f3d2e5a6074d1dd73c3355f9159d2cae.zip |
Add sysdb_attrs_get_int32_tsssd-1.11.2-18.el7
Diffstat (limited to 'src')
-rw-r--r-- | src/db/sysdb.c | 26 | ||||
-rw-r--r-- | src/db/sysdb.h | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/db/sysdb.c b/src/db/sysdb.c index 2a4be5800..0e07ed608 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -366,6 +366,32 @@ int sysdb_attrs_get_string(struct sysdb_attrs *attrs, const char *name, return EOK; } +int sysdb_attrs_get_int32_t(struct sysdb_attrs *attrs, const char *name, + int32_t *value) +{ + struct ldb_message_element *el; + int ret; + char *endptr; + int32_t val; + + ret = sysdb_attrs_get_el_ext(attrs, name, false, &el); + if (ret) { + return ret; + } + + if (el->num_values != 1) { + return ERANGE; + } + + errno = 0; + val = strtoint32((const char *) el->values[0].data, &endptr, 10); + if (errno != 0) return errno; + if (*endptr) return EINVAL; + + *value = val; + return EOK; +} + int sysdb_attrs_get_uint32_t(struct sysdb_attrs *attrs, const char *name, uint32_t *value) { diff --git a/src/db/sysdb.h b/src/db/sysdb.h index 9bcd7be09..255a135f0 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -294,6 +294,8 @@ errno_t sysdb_attrs_get_bool(struct sysdb_attrs *attrs, const char *name, bool *value); int sysdb_attrs_get_uint16_t(struct sysdb_attrs *attrs, const char *name, uint16_t *value); +int sysdb_attrs_get_int32_t(struct sysdb_attrs *attrs, const char *name, + int32_t *value); int sysdb_attrs_get_uint32_t(struct sysdb_attrs *attrs, const char *name, uint32_t *value); |