From 3a87621a3eeb76ce6ac3b18877874141c2dc102e Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 14 Aug 2009 13:51:02 -0400 Subject: Always save using member/memberOf First pass to remove the legacy option and make it just a property of the provider --- server/db/sysdb.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'server/db/sysdb.c') diff --git a/server/db/sysdb.c b/server/db/sysdb.c index 0cac339ed..00657f0b8 100644 --- a/server/db/sysdb.c +++ b/server/db/sysdb.c @@ -121,6 +121,30 @@ int sysdb_attrs_add_string(struct sysdb_attrs *attrs, return sysdb_attrs_add_val(attrs, name, &v); } +int sysdb_attrs_steal_string(struct sysdb_attrs *attrs, + const char *name, char *str) +{ + struct ldb_message_element *el = NULL; + struct ldb_val *vals; + int ret; + + ret = sysdb_attrs_get_el(attrs, name, &el); + + vals = talloc_realloc(attrs->a, el->values, + struct ldb_val, el->num_values+1); + if (!vals) return ENOMEM; + el->values = vals; + + /* now steal and assign the string */ + talloc_steal(el->values, str); + + el->values[el->num_values].data = (uint8_t *)str; + el->values[el->num_values].length = strlen(str); + el->num_values++; + + return EOK; +} + int sysdb_attrs_add_long(struct sysdb_attrs *attrs, const char *name, long value) { -- cgit