![]() |
The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
Register xlat functions for calling redundant xlats. More...
#include <freeradius-devel/unlang/interpret.h>#include <freeradius-devel/unlang/xlat_redundant.h>#include <freeradius-devel/unlang/xlat_func.h>#include <freeradius-devel/unlang/xlat_priv.h>#include <freeradius-devel/server/module.h>#include <freeradius-devel/server/module_rlm.h>#include <freeradius-devel/util/rand.h>
Include dependency graph for xlat_redundant.c:Go to the source code of this file.
Data Structures | |
| struct | xlat_redundant_func_t |
| struct | xlat_redundant_inst_t |
| struct | xlat_redundant_rctx_t |
| struct | xlat_redundant_t |
Enumerations | |
| enum | xlat_redundant_type_t { XLAT_REDUNDANT_INVALID = 0 , XLAT_REDUNDANT , XLAT_LOAD_BALANCE , XLAT_REDUNDANT_LOAD_BALANCE } |
Functions | |
| static int8_t | module_qualified_xlat_cmp (void const *a, void const *b) |
| static int8_t | module_xlat_cmp (void const *a, void const *b) |
| Compare two module_rlm_xlat_t based on whether they have the same name. | |
| static xlat_exp_t * | xlat_exp_func_alloc (TALLOC_CTX *ctx, xlat_t const *func, xlat_exp_head_t const *args, fr_dict_t const *dict) |
| Allocate an xlat node to call an xlat function. | |
| static xlat_action_t | xlat_load_balance_resume (UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out, xlat_ctx_t const *xctx, UNUSED request_t *request, UNUSED fr_value_box_list_t *in) |
| Pass back the result from a single redundant child call. | |
| static void | xlat_mark_safe_for (xlat_exp_head_t *head, fr_value_box_safe_for_t safe_for) |
| static xlat_action_t | xlat_redundant (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *in) |
| xlat "redundant", "load-balance" and "redundant-load-balance" processing | |
| static void | xlat_redundant_add_xlat (xlat_redundant_t *xr, xlat_t const *x) |
| static int | xlat_redundant_instantiate (xlat_inst_ctx_t const *xctx) |
| Allocate additional nodes for evaluation. | |
| static xlat_action_t | xlat_redundant_resume (TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, UNUSED fr_value_box_list_t *in) |
| Pass back the result from a single redundant child call. | |
| int | xlat_register_redundant (CONF_SECTION *cs) |
| Registers a redundant xlat. | |
Variables | |
| static xlat_arg_parser_t const | xlat_redundant_args [] |
Register xlat functions for calling redundant xlats.
Definition in file xlat_redundant.c.
| struct xlat_redundant_func_t |
Definition at line 55 of file xlat_redundant.c.
Collaboration diagram for xlat_redundant_func_t:| Data Fields | ||
|---|---|---|
| fr_dlist_t | entry | Entry in the redundant function list. |
| xlat_t const * | func | Resolved xlat function. |
| struct xlat_redundant_inst_t |
Definition at line 66 of file xlat_redundant.c.
Collaboration diagram for xlat_redundant_inst_t:| Data Fields | ||
|---|---|---|
| xlat_exp_head_t ** | ex | Array of xlat expressions created by tokenizing the arguments to the redundant xlat, then duplicating them multiple times, one for each xlat function that may be called. |
| xlat_redundant_t * | xr | Information about the redundant xlat. |
| struct xlat_redundant_rctx_t |
Definition at line 74 of file xlat_redundant.c.
Collaboration diagram for xlat_redundant_rctx_t:| Data Fields | ||
|---|---|---|
| xlat_exp_head_t ** | current | Last function called, used for redundant xlats. |
| xlat_exp_head_t ** | first |
First function called. Used for redundant-load-balance. |
| unlang_result_t | last_result | Did the last call succeed? |
| struct xlat_redundant_t |
Definition at line 60 of file xlat_redundant.c.
Collaboration diagram for xlat_redundant_t:| Data Fields | ||
|---|---|---|
| CONF_SECTION * | cs | That this redundant xlat list was created from. |
| fr_dlist_head_t | funcs | List of redundant xlat functions. |
| xlat_redundant_type_t | type | Type of redundant xlat expression. |
Definition at line 41 of file xlat_redundant.c.
|
static |
Definition at line 407 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Compare two module_rlm_xlat_t based on whether they have the same name.
Definition at line 384 of file xlat_redundant.c.
Here is the caller graph for this function:
|
static |
Allocate an xlat node to call an xlat function.
| [in] | ctx | to allocate the new node in. |
| [in] | func | to call. |
| [in] | args | Arguments to the function. Will be copied, and freed when the new xlat node is freed. |
| [in] | dict | the dictionary |
Definition at line 216 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Pass back the result from a single redundant child call.
Definition at line 128 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 194 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 370 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Allocate additional nodes for evaluation.
Definition at line 272 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Pass back the result from a single redundant child call.
Definition at line 85 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int xlat_register_redundant | ( | CONF_SECTION * | cs | ) |
Registers a redundant xlat.
These xlats wrap the xlat methods of the modules in a redundant section, emulating the behaviour of a redundant section, but over xlats.
Definition at line 430 of file xlat_redundant.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 364 of file xlat_redundant.c.
1.9.8