///< with a '&'.
bool was_oid; //!< Was originally a numeric OID.
- fr_dict_attr_t const *list; //!< List to search or insert in.
- ///< deprecated.
-
FR_DLIST_HEAD(tmpl_request_list) rr; //!< Request to search or insert in.
FR_DLIST_HEAD(tmpl_attr_list) ar; //!< Head of the attribute reference list.
} attribute;
static inline fr_dict_attr_t const *tmpl_list(tmpl_t const *vpt)
{
- tmpl_assert_type(tmpl_is_attr(vpt) ||
- tmpl_is_attr_unresolved(vpt));
+ if (!tmpl_attr_head_is_list(vpt)) return NULL;
- return vpt->data.attribute.list;
+ return tmpl_attr_list_head(tmpl_attr(vpt))->ar_da;
}
/** @} */
i++;
}
- FR_FAULT_LOG("list: %s", tmpl_list_name(vpt->data.attribute.list, "<INVALID>"));
+ FR_FAULT_LOG("list: %s", tmpl_list_name(tmpl_list(vpt), "<INVALID>"));
tmpl_attr_ref_list_debug(tmpl_attr(vpt));
}
tmpl_request_list_talloc_reverse_free(&dst->data.attribute.rr);
tmpl_request_ref_list_copy(dst, &dst->data.attribute.rr, &src->data.attribute.rr);
- /*
- * Remove me...
- */
- dst->data.attribute.list = src->data.attribute.list;
-
TMPL_ATTR_VERIFY(dst);
return 0;
void tmpl_attr_set_list(tmpl_t *vpt, fr_dict_attr_t const *list)
{
tmpl_attr_t *ref = tmpl_attr_list_head(tmpl_attr(vpt));
- vpt->data.attribute.list = list;
if (tmpl_attr_is_list_attr(ref)) ref->da = list;
TMPL_ATTR_VERIFY(vpt);
* first.
*/
tmpl_attr_list_insert_head(tmpl_attr(vpt), ar);
- vpt->data.attribute.list = ar->ar_da;
}
tmpl_set_name(vpt, T_BARE_WORD, fr_sbuff_start(&our_name), fr_sbuff_used(&our_name));
fr_assert(ar != NULL);
if (tmpl_attr_is_list_attr(ar)) vpt->rules.attr.list_def = ar->ar_da;
-
- vpt->data.attribute.list = vpt->rules.attr.list_def;
}
if (!tmpl_substr_terminal_check(&our_name, p_rules)) {