![]() |
The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
Implementation of the unlang "parallel" keyword. More...
#include <freeradius-devel/server/rcode.h>
#include <freeradius-devel/server/signal.h>
#include <freeradius-devel/server/state.h>
#include <freeradius-devel/server/request.h>
#include <freeradius-devel/util/table.h>
#include "action.h"
#include "interpret.h"
#include "subrequest.h"
#include "interpret_priv.h"
#include "unlang_priv.h"
#include "parallel_priv.h"
#include "child_request_priv.h"
Go to the source code of this file.
Functions | |
static unlang_action_t | unlang_parallel (rlm_rcode_t *p_result, request_t *request, unlang_stack_frame_t *frame) |
static void | unlang_parallel_cancel_child (unlang_parallel_state_t *state, unlang_child_request_t *cr) |
Cancel a specific child. | |
void | unlang_parallel_init (void) |
static unlang_action_t | unlang_parallel_resume (rlm_rcode_t *p_result, request_t *request, unlang_stack_frame_t *frame) |
static void | unlang_parallel_signal (UNUSED request_t *request, unlang_stack_frame_t *frame, fr_signal_t action) |
Send a signal from parent request to all of it's children. | |
Implementation of the unlang "parallel" keyword.
Definition in file parallel.c.
|
static |
Definition at line 200 of file parallel.c.
|
inlinestatic |
Cancel a specific child.
For most states we just change the current state to CANCELLED. For the RUNNABLE state we need to signal the child to cancel itself.
We don't free any requests here, we just mark them up so their rcodes are ignored when the parent is resumed, the parent then frees the child, once we're sure its done being run through the intepreter.
Definition at line 52 of file parallel.c.
void unlang_parallel_init | ( | void | ) |
Definition at line 386 of file parallel.c.
|
static |
Definition at line 133 of file parallel.c.
|
static |
Send a signal from parent request to all of it's children.
Definition at line 107 of file parallel.c.