request->master_state = REQUEST_DONE;
}
+static inline CC_HINT(always_inline)
void unlang_interpret_request_stop(request_t *request)
{
unlang_stack_t *stack = request->stack;
unlang_interpret_mark_runnable(request);
/*
- * Signal all lower frames to exit.
+ * Signal all lower frames to exit, but the request can keep running.
*/
unlang_frame_signal(request, FR_SIGNAL_CANCEL, state->depth);
state->success = false;
if (!state->instruction) return;
if (unlang_interpret_push_instruction(request, state->instruction, RLM_MODULE_FAIL, true) < 0) {
- REDEBUG("Failed pushing timeout instruction - cancelling the request");
- unlang_interpret_request_stop(request);
+ unlang_interpret_signal(request, FR_SIGNAL_CANCEL); /* also stops the request and does cleanups */
}
}