bool instantiated; //!< temporary flag until we fix more things
fr_dict_t const *dict; //!< dictionary for this xlat
+ fr_event_list_t *el; //! for run-time xlats
+
#ifndef NDEBUG
char const * _CONST file; //!< File where the xlat was allocated.
int line; //!< Line where the xlat was alocated.
MEM(node = xlat_exp_alloc(head, XLAT_TMPL, NULL, 0));
MEM(node->vpt = tmpl_alloc(node, TMPL_TYPE_XLAT, T_BARE_WORD, "", 1));
- ret = xlat_tokenize_expression(node->vpt, &child, in, &attr_p_rules, t_rules);
+ if (head->el) {
+ ret = xlat_tokenize_ephemeral_expression(node->vpt, &child, head->el, in, &attr_p_rules, t_rules);
+ } else {
+ ret = xlat_tokenize_expression(node->vpt, &child, in, &attr_p_rules, t_rules);
+ }
if (ret <= 0) {
talloc_free(node);
return ret;
xlat_exp_head_t *head;
MEM(head = xlat_exp_head_alloc(ctx));
+ head->el = el;
if (t_rules) {
head->dict = t_rules->attr.dict_def;