return (modcallable *)p;
}
-int modcall(rlm_components_t component, modcallable *c, REQUEST *request);
+rlm_rcode_t unlang_interpret(REQUEST *request, modcallable *c, rlm_components_t component);
#ifdef __cplusplus
}
/*
* Interpret the various types of blocks.
*/
-static void unlang_interpret(REQUEST *request, unlang_stack_t *stack, rlm_rcode_t *presult, int *ppriority)
+static void unlang_run(REQUEST *request, unlang_stack_t *stack, rlm_rcode_t *presult, int *ppriority)
{
modcallable *c;
int priority;
*
* What did Paul Graham say about Lisp...?
*/
-int modcall(rlm_components_t component, modcallable *c, REQUEST *request)
+rlm_rcode_t unlang_interpret(REQUEST *request, modcallable *c, rlm_components_t component)
{
int priority;
rlm_rcode_t result;
unlang_stack_t stack;
+ if (!c) return default_component_results[component];
+
memset(&stack, 0, sizeof(stack));
result = default_component_results[component];
/*
* Call the main handler.
*/
- unlang_interpret(request, &stack, &result, &priority);
+ unlang_run(request, &stack, &result, &priority);
/*
* Return the result.
request->module = NULL;
request->component = section_type_value[comp].section;
- rcode = modcall(comp, list, request);
+ rcode = unlang_interpret(request, list, comp);
request->component = component;
request->module = module;