static unlang_action_t unlang_tmpl_resume(rlm_rcode_t *p_result, request_t *request, unlang_stack_frame_t *frame)
{
unlang_frame_state_tmpl_t *state = talloc_get_type_abort(frame->state, unlang_frame_state_tmpl_t);
+ unlang_tmpl_t *ut = unlang_generic_to_tmpl(frame->instruction);
+
+ if (tmpl_eval_cast(request, &state->list, ut->tmpl) < 0) {
+ RPEDEBUG("Failed casting expansion");
+ *p_result = RLM_MODULE_FAIL;
+ return UNLANG_ACTION_CALCULATE_RESULT;
+ }
if (state->out) fr_dlist_move(state->out, &state->list);
case XLAT_TMPL:
fr_assert(tmpl_is_exec(node->vpt));
+ if (tmpl_eval_cast(ctx, result, node->vpt) < 0) {
+ fr_dlist_talloc_free(result);
+ return XLAT_ACTION_FAIL;
+ }
+
/*
* First entry is the command to run. Subsequent entries are the options to pass to the
* command.