Lines Matching refs:attrs
283 int sysdb_attrs_get_el_ext(struct sysdb_attrs *attrs, const char *name,
289 for (i = 0; i < attrs->num; i++) {
290 if (strcasecmp(name, attrs->a[i].name) == 0)
291 e = &(attrs->a[i]);
295 e = talloc_realloc(attrs, attrs->a,
296 struct ldb_message_element, attrs->num+1);
298 attrs->a = e;
300 e[attrs->num].name = talloc_strdup(e, name);
301 if (!e[attrs->num].name) return ENOMEM;
303 e[attrs->num].num_values = 0;
304 e[attrs->num].values = NULL;
305 e[attrs->num].flags = 0;
307 e = &(attrs->a[attrs->num]);
308 attrs->num++;
320 int sysdb_attrs_get_el(struct sysdb_attrs *attrs, const char *name,
323 return sysdb_attrs_get_el_ext(attrs, name, true, el);
326 int sysdb_attrs_get_string(struct sysdb_attrs *attrs, const char *name,
332 ret = sysdb_attrs_get_el_ext(attrs, name, false, &el);
345 int sysdb_attrs_get_int32_t(struct sysdb_attrs *attrs, const char *name,
353 ret = sysdb_attrs_get_el_ext(attrs, name, false, &el);
371 int sysdb_attrs_get_uint32_t(struct sysdb_attrs *attrs, const char *name,
379 ret = sysdb_attrs_get_el_ext(attrs, name, false, &el);
397 int sysdb_attrs_get_uint16_t(struct sysdb_attrs *attrs, const char *name,
405 ret = sysdb_attrs_get_el_ext(attrs, name, false, &el);
423 errno_t sysdb_attrs_get_bool(struct sysdb_attrs *attrs, const char *name,
429 ret = sysdb_attrs_get_el_ext(attrs, name, false, &el);
468 int sysdb_attrs_get_string_array(struct sysdb_attrs *attrs, const char *name,
475 ret = sysdb_attrs_get_el_ext(attrs, name, false, &el);
490 static int sysdb_attrs_add_val_int(struct sysdb_attrs *attrs,
499 ret = sysdb_attrs_get_el(attrs, name, &el);
514 vals = talloc_realloc(attrs->a, el->values,
529 int sysdb_attrs_add_val(struct sysdb_attrs *attrs,
532 return sysdb_attrs_add_val_int(attrs, name, false, val);
536 int sysdb_attrs_add_val_safe(struct sysdb_attrs *attrs,
539 return sysdb_attrs_add_val_int(attrs, name, true, val);
542 int sysdb_attrs_add_string_safe(struct sysdb_attrs *attrs,
550 return sysdb_attrs_add_val_safe(attrs, name, &v);
553 int sysdb_attrs_add_string(struct sysdb_attrs *attrs,
561 return sysdb_attrs_add_val(attrs, name, &v);
564 int sysdb_attrs_add_lower_case_string(struct sysdb_attrs *attrs, bool safe,
570 if (attrs == NULL || str == NULL) {
574 lc_str = sss_tc_utf8_str_tolower(attrs, str);
581 ret = sysdb_attrs_add_string_safe(attrs, name, lc_str);
583 ret = sysdb_attrs_add_string(attrs, name, lc_str);
590 int sysdb_attrs_add_mem(struct sysdb_attrs *attrs, const char *name,
597 return sysdb_attrs_add_val(attrs, name, &v);
600 int sysdb_attrs_add_base64_blob(struct sysdb_attrs *attrs, const char *name,
610 v.data = sss_base64_decode(attrs, base64_str, &v.length);
616 ret = sysdb_attrs_add_val(attrs, name, &v);
621 int sysdb_attrs_add_bool(struct sysdb_attrs *attrs,
625 return sysdb_attrs_add_string(attrs, name, "TRUE");
628 return sysdb_attrs_add_string(attrs, name, "FALSE");
631 int sysdb_attrs_steal_string(struct sysdb_attrs *attrs,
638 ret = sysdb_attrs_get_el(attrs, name, &el);
643 vals = talloc_realloc(attrs->a, el->values,
658 int sysdb_attrs_add_long(struct sysdb_attrs *attrs,
665 str = talloc_asprintf(attrs, "%ld", value);
671 ret = sysdb_attrs_add_val(attrs, name, &v);
677 int sysdb_attrs_add_uint32(struct sysdb_attrs *attrs,
685 str = talloc_asprintf(attrs, "%lu", val);
691 ret = sysdb_attrs_add_val(attrs, name, &v);
697 int sysdb_attrs_add_time_t(struct sysdb_attrs *attrs,
705 str = talloc_asprintf(attrs, "%lld", val);
711 ret = sysdb_attrs_add_val(attrs, name, &v);
717 int sysdb_attrs_add_lc_name_alias(struct sysdb_attrs *attrs,
720 return sysdb_attrs_add_lower_case_string(attrs, false, SYSDB_NAME_ALIAS,
724 int sysdb_attrs_add_lc_name_alias_safe(struct sysdb_attrs *attrs,
727 return sysdb_attrs_add_lower_case_string(attrs, true, SYSDB_NAME_ALIAS,
779 int sysdb_attrs_users_from_str_list(struct sysdb_attrs *attrs,
790 ret = sysdb_attrs_get_el(attrs, attr_name, &el);
797 vals = talloc_realloc(attrs->a, el->values,
960 int sysdb_attrs_replace_name(struct sysdb_attrs *attrs, const char *oldname,
967 if (attrs == NULL || oldname == NULL || newname == NULL) return EINVAL;
969 for (i = 0; i < attrs->num; i++) {
970 if (strcasecmp(oldname, attrs->a[i].name) == 0) {
971 e = &(attrs->a[i]);
973 if (strcasecmp(newname, attrs->a[i].name) == 0) {
981 dummy = talloc_strdup(attrs, newname);
1002 struct sysdb_attrs **attrs,
1015 /* Assume that every attrs entry contains the attr_name
1026 /* Loop through all entries in attrs */
1029 for (i = 0; i < attrs[attr_idx]->num; i++) {
1030 if (strcasecmp(attrs[attr_idx]->a[i].name, attr_name) == 0) {
1036 (const char *)attrs[attr_idx]->a[i].values[0].data);
1078 const char *attrs[2] = {attr_name, NULL};
1087 attrs, NULL);
1260 struct sysdb_attrs *attrs,
1277 ret = sysdb_attrs_get_el(attrs,
1294 ret = sysdb_attrs_get_el(attrs, SYSDB_ORIG_DN, &orig_dn_el);
1377 struct sysdb_attrs *attrs,
1397 ret = sysdb_attrs_get_el(attrs,
1551 struct sysdb_attrs ***attrs)
1573 *attrs = a;
1580 struct sysdb_attrs *attrs,
1594 msg->elements = talloc_array(msg, struct ldb_message_element, attrs->num);
1600 for (int i = 0; i < attrs->num; i++) {
1601 msg->elements[i] = attrs->a[i];
1604 msg->num_elements = attrs->num;
1657 struct sysdb_attrs **attrs,
1667 if (num_attrs == 0 || attrs == NULL) {
1672 ret = sysdb_attrs_get_string(attrs[i], SYSDB_USN, ¤t);
1915 struct sysdb_attrs *attrs,
1924 const char *attrnames[attrs->num+1];
1946 attrs, mod_op);
1951 for (int i = 0; i < attrs->num; i++) {
1952 attrnames[i] = attrs->a[i].name;
1954 attrnames[attrs->num] = NULL;