diff options
author | Simo Sorce <ssorce@redhat.com> | 2009-11-04 15:35:00 -0500 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2009-11-06 17:26:09 -0500 |
commit | a281b662f3634d15928d2757f6ea03c963ffbe32 (patch) | |
tree | 4c1260da3e62c0f08b469ef6a2905aabaf5cb1f1 /server/providers/ldap/sdap.c | |
parent | eda1d66399659430f372c342fbcbd10e34a3d75c (diff) | |
download | sssd-a281b662f3634d15928d2757f6ea03c963ffbe32.tar.gz sssd-a281b662f3634d15928d2757f6ea03c963ffbe32.tar.xz sssd-a281b662f3634d15928d2757f6ea03c963ffbe32.zip |
Make useful function more broadly available.
Diffstat (limited to 'server/providers/ldap/sdap.c')
-rw-r--r-- | server/providers/ldap/sdap.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/server/providers/ldap/sdap.c b/server/providers/ldap/sdap.c index 5da698a1e..d9bb323ea 100644 --- a/server/providers/ldap/sdap.c +++ b/server/providers/ldap/sdap.c @@ -421,4 +421,31 @@ bool sdap_rootdse_sasl_mech_is_supported(struct sysdb_attrs *rootdse, return false; } +int build_attrs_from_map(TALLOC_CTX *memctx, + struct sdap_attr_map *map, + size_t size, const char ***_attrs) +{ + char **attrs; + int i, j; + + attrs = talloc_array(memctx, char *, size + 1); + if (!attrs) return ENOMEM; + + /* first attribute is "objectclass" not the specifc one */ + attrs[0] = talloc_strdup(memctx, "objectClass"); + if (!attrs[0]) return ENOMEM; + + /* add the others */ + for (i = j = 1; i < size; i++) { + if (map[i].name) { + attrs[j] = map[i].name; + j++; + } + } + attrs[j] = NULL; + + *_attrs = (const char **)attrs; + + return EOK; +} |