The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Loading...
Searching...
No Matches
Data Structures | Functions
finally.c File Reference

Unlang "finally" keyword evaluation. More...

#include <freeradius-devel/server/state.h>
#include <freeradius-devel/server/signal.h>
#include <freeradius-devel/server/pair.h>
#include <freeradius-devel/unlang/unlang_priv.h>
#include <freeradius-devel/unlang/action.h>
#include <freeradius-devel/unlang/finally.h>
#include <freeradius-devel/unlang/interpret.h>
#include <freeradius-devel/util/timer.h>
+ Include dependency graph for finally.c:

Go to the source code of this file.

Data Structures

struct  unlang_frame_state_finally_t
 

Functions

static unlang_action_t unlang_finally (UNUSED rlm_rcode_t *p_result, request_t *request, UNUSED unlang_stack_frame_t *frame)
 
void unlang_finally_init (void)
 
int unlang_finally_push_instruction (request_t *request, void *instruction, fr_time_delta_t min_time, bool top_frame)
 Push a finally instructtion on the stack, to be evaluated as the stack is unwound.
 
static void unlang_timeout_handler (UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now, void *ctx)
 

Detailed Description

Unlang "finally" keyword evaluation.

Id
1307234c2c59bfd78e52ae68c614c2302bec11d9

Used for running policy after a virtual server.

Definition in file finally.c.


Data Structure Documentation

◆ unlang_frame_state_finally_t

struct unlang_frame_state_finally_t

Definition at line 37 of file finally.c.

+ Collaboration diagram for unlang_frame_state_finally_t:
Data Fields
unlang_t * instruction to run on timeout
fr_time_delta_t min_time minimum time to run the finally instruction.
request_t * request

Function Documentation

◆ unlang_finally()

static unlang_action_t unlang_finally ( UNUSED rlm_rcode_t p_result,
request_t request,
UNUSED unlang_stack_frame_t frame 
)
static

Definition at line 57 of file finally.c.

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

◆ unlang_finally_init()

void unlang_finally_init ( void  )

Definition at line 159 of file finally.c.

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

◆ unlang_finally_push_instruction()

int unlang_finally_push_instruction ( request_t request,
void *  instruction,
fr_time_delta_t  min_time,
bool  top_frame 
)

Push a finally instructtion on the stack, to be evaluated as the stack is unwound.

Parameters
[in]requestto push timeout onto
[in]instructionto run as we unwind
[in]min_timemax time to wait for the finally instruction to finish. This only applies if the request timeout timer has already fired, or has less than max_time to execute. i.e. this is a guarantee of a minimum amount of time for the finally instruction to run.
[in]top_frameSet to UNLANG_TOP_FRAME if the interpreter should return. Set to UNLANG_SUB_FRAME if the interprer should continue.
Returns
  • 0 on success.
  • -1 on failure.

Static instruction for performing xlat evaluations

Definition at line 101 of file finally.c.

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

◆ unlang_timeout_handler()

static void unlang_timeout_handler ( UNUSED fr_timer_list_t tl,
UNUSED fr_time_t  now,
void *  ctx 
)
static

Definition at line 43 of file finally.c.

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