![]() |
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 "mod_action.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 (unlang_result_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 (unlang_result_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 198 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 53 of file parallel.c.
void unlang_parallel_init | ( | void | ) |
Definition at line 380 of file parallel.c.
|
static |
Definition at line 134 of file parallel.c.
|
static |
Send a signal from parent request to all of it's children.
Definition at line 108 of file parallel.c.