The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Loading...
Searching...
No Matches
Functions
parallel.c File Reference

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"
+ Include dependency graph for parallel.c:

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.
 

Detailed Description

Implementation of the unlang "parallel" keyword.

Id
c8efa28e7637bb174298605681b77f810b9c4e87

Definition in file parallel.c.

Function Documentation

◆ unlang_parallel()

static unlang_action_t unlang_parallel ( rlm_rcode_t p_result,
request_t request,
unlang_stack_frame_t frame 
)
static

Definition at line 200 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_cancel_child()

static void unlang_parallel_cancel_child ( unlang_parallel_state_t state,
unlang_child_request_t cr 
)
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.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_init()

void unlang_parallel_init ( void  )

Definition at line 386 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_resume()

static unlang_action_t unlang_parallel_resume ( rlm_rcode_t p_result,
request_t request,
unlang_stack_frame_t frame 
)
static

Definition at line 133 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_signal()

static void unlang_parallel_signal ( UNUSED request_t request,
unlang_stack_frame_t frame,
fr_signal_t  action 
)
static

Send a signal from parent request to all of it's children.

Definition at line 107 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: