*/
static unlang_resume_t *unlang_resume_alloc(REQUEST *request,
fr_unlang_resume_callback_t callback,
- fr_unlang_action_t signal_callback, void const *ctx)
+ fr_unlang_action_t signal_callback, void *ctx)
{
unlang_resume_t *mr;
unlang_stack_t *stack = request->stack;
unlang_t *instruction = frame->instruction;
unlang_resume_t *mr = unlang_generic_to_resume(instruction);
unlang_stack_state_modcall_t *modcall_state = NULL;
- void *resume_ctx;
void *instance;
RDEBUG3("Resuming in %s", mr->self.debug_name);
- memcpy(&resume_ctx, &mr->resume_ctx, sizeof(resume_ctx));
memcpy(&instance, &mr->instance, sizeof(instance));
request->module = mr->self.debug_name;
* Do the internal resume function.
*/
if (unlang_ops_resume[mr->parent_type]) {
- *presult = request->rcode = unlang_ops_resume[mr->parent_type](request, stack, instance, mr->thread, resume_ctx);
+ *presult = request->rcode = unlang_ops_resume[mr->parent_type](request, stack, instance, mr->thread, mr->resume_ctx);
} else {
rad_assert(mr->parent_type == UNLANG_TYPE_MODULE_CALL);
* Lock is noop unless instance->mutex is set.
*/
safe_lock(mr->module_instance);
- *presult = request->rcode = mr->callback(request, instance, mr->thread, resume_ctx);
+ *presult = request->rcode = mr->callback(request, instance, mr->thread, mr->resume_ctx);
safe_unlock(mr->module_instance);
}
unlang_stack_frame_t *frame;
unlang_stack_t *stack = request->stack;
unlang_resume_t *mr;
- void *resume_ctx;
void *instance;
rad_assert(stack->depth > 0);
mr = unlang_generic_to_resume(frame->instruction);
if (!mr->signal_callback) return;
- memcpy(&resume_ctx, &mr->resume_ctx, sizeof(resume_ctx));
memcpy(&instance, &mr->instance, sizeof(instance));
- mr->signal_callback(request, instance, mr->thread, resume_ctx, action);
+ mr->signal_callback(request, instance, mr->thread, mr->resume_ctx, action);
}
/** Yield a request back to the interpreter from within a module
* @return always returns RLM_MODULE_YIELD.
*/
rlm_rcode_t unlang_module_yield(REQUEST *request, fr_unlang_resume_callback_t callback,
- fr_unlang_action_t signal_callback, void const *ctx)
+ fr_unlang_action_t signal_callback, void *ctx)
{
unlang_stack_t *stack = request->stack;
unlang_stack_frame_t *frame = &stack->frame[stack->depth];