static xlat_action_t xlat_test(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request,
- UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED fr_value_box_list_t *in)
{
return XLAT_ACTION_DONE;
}
}
static rlm_rcode_t mod_map_proc(UNUSED void *mod_inst, UNUSED void *proc_inst, UNUSED request_t *request,
- UNUSED FR_DLIST_HEAD(fr_value_box_list) *src, UNUSED map_list_t const *maps)
+ UNUSED fr_value_box_list_t *src, UNUSED map_list_t const *maps)
{
return RLM_MODULE_FAIL;
}
static xlat_action_t aka_sim_xlat_id_method_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
char const *method;
fr_aka_sim_id_type_t type_hint;
*/
static xlat_action_t aka_sim_xlat_id_type_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
char const *type;
fr_aka_sim_id_type_t type_hint;
*/
static xlat_action_t aka_sim_id_3gpp_temporary_id_key_index_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *id = fr_value_box_list_head(in);
fr_value_box_t *vb;
*/
static xlat_action_t aka_sim_3gpp_temporary_id_decrypt_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
uint8_t tag;
char out_tag = '\0', *buff;
*/
static xlat_action_t aka_sim_3gpp_temporary_id_encrypt_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
char encrypted[AKA_SIM_3GPP_PSEUDONYM_LEN + 1];
uint8_t tag = 0;
size_t fr_jpath_escape_func(UNUSED request_t *request, char *out, size_t outlen,
char const *in, UNUSED void *arg);
-int fr_jpath_evaluate_leaf(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out,
+int fr_jpath_evaluate_leaf(TALLOC_CTX *ctx, fr_value_box_list_t *out,
fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,
json_object *root, fr_jpath_node_t const *jpath);
* - 0 on no match.
* - -1 on error.
*/
-static int jpath_evaluate(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *tail,
+static int jpath_evaluate(TALLOC_CTX *ctx, fr_value_box_list_t *tail,
fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,
json_object *object, fr_jpath_node_t const *jpath)
{
* - 0 on no match.
* - -1 on error.
*/
-int fr_jpath_evaluate_leaf(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out,
+int fr_jpath_evaluate_leaf(TALLOC_CTX *ctx, fr_value_box_list_t *out,
fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,
json_object *root, fr_jpath_node_t const *jpath)
{
* - >= 0 number of array elements in argv
* - <0 on error
*/
-static int exec_value_box_list_to_argv(TALLOC_CTX *ctx, char ***argv_p, FR_DLIST_HEAD(fr_value_box_list) const *in)
+static int exec_value_box_list_to_argv(TALLOC_CTX *ctx, char ***argv_p, fr_value_box_list_t const *in)
{
char **argv;
unsigned int i = 0;
* would allow finer-grained control over the attributes to put into
* the environment.
*/
-int fr_exec_fork_nowait(request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args,
+int fr_exec_fork_nowait(request_t *request, fr_value_box_list_t *args,
fr_pair_list_t *env_pairs, bool env_escape, bool env_inherit)
{
*/
int fr_exec_fork_wait(pid_t *pid_p,
int *stdin_fd, int *stdout_fd, int *stderr_fd,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args,
+ request_t *request, fr_value_box_list_t *args,
fr_pair_list_t *env_pairs, bool env_escape, bool env_inherit)
{
int argc;
* - -1 on failure
*/
int fr_exec_start(TALLOC_CTX *ctx, fr_exec_state_t *exec, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *args,
+ fr_value_box_list_t *args,
fr_pair_list_t *env_pairs, bool env_escape, bool env_inherit,
bool need_stdin,
bool store_stdout, TALLOC_CTX *stdout_ctx,
void fr_exec_cleanup(fr_exec_state_t *exec, int signal);
-int fr_exec_fork_nowait(request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args,
+int fr_exec_fork_nowait(request_t *request, fr_value_box_list_t *args,
fr_pair_list_t *env_pairs, bool env_escape, bool env_inherit);
-int fr_exec_fork_wait(pid_t *pid_p,
+int fr_exec_fork_wait(pid_t *pid_p,
int *stdin_fd, int *stdout_fd, int *stderr_fd,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args,
+ request_t *request, fr_value_box_list_t *args,
fr_pair_list_t *env_pairs, bool env_escape, bool env_inherit);
int fr_exec_start(TALLOC_CTX *ctx, fr_exec_state_t *exec, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *args,
+ fr_value_box_list_t *args,
fr_pair_list_t *env_pairs, bool env_escape, bool env_inherit,
bool need_stdin,
bool store_stdout, TALLOC_CTX *stdout_ctx,
*/
static xlat_action_t xlat_config(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
char const *value;
CONF_PAIR *cp;
int map_to_list_mod(TALLOC_CTX *ctx, vp_list_mod_t **out,
request_t *request, map_t const *map,
- FR_DLIST_HEAD(fr_value_box_list) *lhs_result, FR_DLIST_HEAD(fr_value_box_list) *rhs_result);
+ fr_value_box_list_t *lhs_result, fr_value_box_list_t *rhs_result);
int map_to_request(request_t *request, map_t const *map,
radius_map_getvalue_t func, void *ctx);
*/
int map_to_list_mod(TALLOC_CTX *ctx, vp_list_mod_t **out,
request_t *request, map_t const *original,
- FR_DLIST_HEAD(fr_value_box_list) *lhs_result, FR_DLIST_HEAD(fr_value_box_list) *rhs_result)
+ fr_value_box_list_t *lhs_result, fr_value_box_list_t *rhs_result)
{
vp_list_mod_t *n = NULL;
map_t map_tmp;
map_t const *mutated = original;
fr_dcursor_t values;
- FR_DLIST_HEAD(fr_value_box_list) head;
+ fr_value_box_list_t head;
TALLOC_CTX *tmp_ctx = NULL;
MAP_VERIFY(original);
* @param[in,out] result Result of expanding the map input. May be consumed
* by the map processor.
*/
-rlm_rcode_t map_proc(request_t *request, map_proc_inst_t const *inst, FR_DLIST_HEAD(fr_value_box_list) *result)
+rlm_rcode_t map_proc(request_t *request, map_proc_inst_t const *inst, fr_value_box_list_t *result)
{
return inst->proc->evaluate(inst->proc->mod_inst, inst->data, request, result, inst->maps);
}
* - #RLM_MODULE_FAIL - If an error occurred performing the mapping.
*/
typedef rlm_rcode_t (*map_proc_func_t)(void *mod_inst, void *proc_inst, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *result, map_list_t const *maps);
+ fr_value_box_list_t *result, map_list_t const *maps);
/** Allocate new instance data for a map processor
*
map_proc_inst_t *map_proc_instantiate(TALLOC_CTX *ctx, map_proc_t const *proc,
CONF_SECTION *cs, tmpl_t const *src, map_list_t const *maps);
-rlm_rcode_t map_proc(request_t *request, map_proc_inst_t const *inst, FR_DLIST_HEAD(fr_value_box_list) *src);
+rlm_rcode_t map_proc(request_t *request, map_proc_inst_t const *inst, fr_value_box_list_t *src);
#ifdef __cplusplus
}
void tmpl_extents_debug(fr_dlist_head_t *head) CC_HINT(nonnull);
-int tmpl_eval_pair(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, request_t *request, tmpl_t const *vpt);
+int tmpl_eval_pair(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t *request, tmpl_t const *vpt);
-int tmpl_eval(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, request_t *request, tmpl_t const *vpt);
+int tmpl_eval(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t *request, tmpl_t const *vpt);
-int tmpl_eval_cast(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, tmpl_t const *vpt);
+int tmpl_eval_cast(TALLOC_CTX *ctx, fr_value_box_list_t *out, tmpl_t const *vpt);
/** @} */
ssize_t tmpl_preparse(char const **out, size_t *outlen, char const *in, size_t inlen,
bool tmpl_async_required(tmpl_t const *vpt) CC_HINT(nonnull);
-int tmpl_value_list_insert_tail(FR_DLIST_HEAD(fr_value_box_list) *list, fr_value_box_t *vb, tmpl_t const *vpt) CC_HINT(nonnull);
+int tmpl_value_list_insert_tail(fr_value_box_list_t *list, fr_value_box_t *vb, tmpl_t const *vpt) CC_HINT(nonnull);
void tmpl_rules_child_init(TALLOC_CTX *ctx, tmpl_rules_t *out, tmpl_rules_t const *parent, tmpl_t *vpt) CC_HINT(nonnull);
* - <0 for "cast failed"
* - 0 for success
*/
-int tmpl_value_list_insert_tail(FR_DLIST_HEAD(fr_value_box_list) *list, fr_value_box_t *box, tmpl_t const *vpt)
+int tmpl_value_list_insert_tail(fr_value_box_list_t *list, fr_value_box_t *box, tmpl_t const *vpt)
{
if (fr_type_is_null(tmpl_rules_cast(vpt)) ||
(box->type == tmpl_rules_cast(vpt))) {
* - <0 on memory allocation errors.
* - 0 success.
*/
-static int tmpl_eval_pair_virtual(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out,
+static int tmpl_eval_pair_virtual(TALLOC_CTX *ctx, fr_value_box_list_t *out,
request_t *request, tmpl_t const *vpt)
{
fr_radius_packet_t *packet = NULL;
fr_value_box_t *value;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
/*
* Virtual attributes always have a count of 1
* - <0 we failed getting a value for the attribute.
* - 0 we successfully evaluated the tmpl
*/
-int tmpl_eval_pair(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, request_t *request, tmpl_t const *vpt)
+int tmpl_eval_pair(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t *request, tmpl_t const *vpt)
{
fr_pair_t *vp = NULL;
fr_value_box_t *value;
tmpl_dcursor_ctx_t cc;
int ret = 0;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
fr_assert(tmpl_is_attr(vpt));
* - <0 we failed getting a value for the tmpl
* - 0 we successfully evaluated the tmpl
*/
-int tmpl_eval(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, request_t *request, tmpl_t const *vpt)
+int tmpl_eval(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t *request, tmpl_t const *vpt)
{
char *p;
fr_value_box_t *value;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
if (tmpl_needs_resolving(vpt)) {
fr_strerror_const("Cannot evaluate unresolved tmpl");
* - <0 the cast failed
* - 0 we successfully evaluated the tmpl
*/
-int tmpl_eval_cast(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *list, tmpl_t const *vpt)
+int tmpl_eval_cast(TALLOC_CTX *ctx, fr_value_box_list_t *list, tmpl_t const *vpt)
{
fr_type_t cast = tmpl_rules_cast(vpt);
fr_value_box_t *vb;
*/
xlat_action_t trigger_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_pair_list_t *head = NULL;
fr_dict_attr_t const *da;
typedef struct {
char *command; //!< Name of the trigger.
xlat_exp_head_t *xlat; //!< xlat representation of the trigger args.
- FR_DLIST_HEAD(fr_value_box_list) args; //!< Arguments to pass to the trigger exec.
+ fr_value_box_list_t args; //!< Arguments to pass to the trigger exec.
fr_exec_state_t exec; //!< Used for asynchronous execution.
fr_time_delta_t timeout; //!< How long the trigger has to run.
xlat_action_t trigger_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in);
+ request_t *request, fr_value_box_list_t *in);
int trigger_exec_init(CONF_SECTION const *cs);
#include "group_priv.h"
typedef struct {
- FR_DLIST_HEAD(fr_value_box_list) out; //!< Head of the result of a nested
+ fr_value_box_list_t out; //!< Head of the result of a nested
///< expansion.
bool success; //!< If set, where to record the result
///< of the execution.
#include "edit_priv.h"
typedef struct {
- FR_DLIST_HEAD(fr_value_box_list) result; //!< result of expansion
+ fr_value_box_list_t result; //!< result of expansion
tmpl_t const *vpt; //!< expanded tmpl
tmpl_t *to_free; //!< tmpl to free.
bool create; //!< whether we need to create the VP
static xlat_action_t unlang_foreach_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in);
+ request_t *request, UNUSED fr_value_box_list_t *in);
#define FOREACH_REQUEST_DATA (void *)unlang_foreach_xlat
*/
static xlat_action_t unlang_foreach_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
fr_pair_t *vp;
int const *inst = xctx->inst;
static xlat_action_t unlang_cancel_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args);
+ request_t *request, fr_value_box_list_t *args);
/** Signal the request to stop executing
*
*/
static xlat_action_t unlang_cancel_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *timeout;
fr_event_list_t *el = unlang_interpret_event_list(request);
*/
static xlat_action_t unlang_interpret_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
unlang_stack_t *stack = request->stack;
int depth = stack->depth;
uint32_t limit;
request_t *request;
- FR_DLIST_HEAD(fr_value_box_list) result;
+ fr_value_box_list_t result;
} unlang_frame_state_limit_t;
/** Send a signal (usually stop) to a request
fr_dlist_head_t vlm_head; //!< Head of list of VP List Mod.
- FR_DLIST_HEAD(fr_value_box_list) lhs_result; //!< Result of expanding the LHS
- FR_DLIST_HEAD(fr_value_box_list) rhs_result; //!< Result of expanding the RHS.
+ fr_value_box_list_t lhs_result; //!< Result of expanding the LHS
+ fr_value_box_list_t rhs_result; //!< Result of expanding the RHS.
unlang_update_state_t state; //!< What we're currently doing.
} unlang_frame_state_update_t;
*
*/
typedef struct {
- FR_DLIST_HEAD(fr_value_box_list) src_result; //!< Result of expanding the map source.
+ fr_value_box_list_t src_result; //!< Result of expanding the map source.
} unlang_frame_state_map_proc_t;
/** Apply a list of modifications on one or more fr_pair_t lists.
* @return
* - UNLANG_ACTION_PUSHED_CHILD
*/
-unlang_action_t unlang_module_yield_to_xlat(TALLOC_CTX *ctx, bool *p_success, FR_DLIST_HEAD(fr_value_box_list) *out,
+unlang_action_t unlang_module_yield_to_xlat(TALLOC_CTX *ctx, bool *p_success, fr_value_box_list_t *out,
request_t *request, xlat_exp_head_t const *exp,
unlang_module_resume_t resume,
unlang_module_signal_t signal, void *rctx)
* @return
* - UNLANG_ACTION_PUSHED_CHILD
*/
-unlang_action_t unlang_module_yield_to_tmpl(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out,
+unlang_action_t unlang_module_yield_to_tmpl(TALLOC_CTX *ctx, fr_value_box_list_t *out,
request_t *request, tmpl_t const *vpt,
unlang_tmpl_args_t *args,
unlang_module_resume_t resume,
unlang_module_resume_t resume,
unlang_module_signal_t signal, void *rctx);
-unlang_action_t unlang_module_yield_to_xlat(TALLOC_CTX *ctx, bool *p_success, FR_DLIST_HEAD(fr_value_box_list) *out,
+unlang_action_t unlang_module_yield_to_xlat(TALLOC_CTX *ctx, bool *p_success, fr_value_box_list_t *out,
request_t *request, xlat_exp_head_t const *xlat,
unlang_module_resume_t resume,
unlang_module_signal_t signal, void *rctx);
-unlang_action_t unlang_module_yield_to_tmpl(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out,
+unlang_action_t unlang_module_yield_to_tmpl(TALLOC_CTX *ctx, fr_value_box_list_t *out,
request_t *request, tmpl_t const *vpt,
unlang_tmpl_args_t *args,
unlang_module_resume_t resume,
rindent_t indent;
fr_event_timer_t const *ev;
- FR_DLIST_HEAD(fr_value_box_list) result;
+ fr_value_box_list_t result;
} unlang_frame_state_timeout_t;
static void unlang_timeout_handler(UNUSED fr_event_list_t *el, UNUSED fr_time_t now, void *ctx)
* @param[in] args where the status of exited programs will be stored.
* Used only for #TMPL_TYPE_EXEC.
*/
-unlang_action_t unlang_tmpl_push(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, request_t *request,
+unlang_action_t unlang_tmpl_push(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t *request,
tmpl_t const *tmpl, unlang_tmpl_args_t *args)
{
unlang_stack_t *stack = request->stack;
*/
typedef unlang_action_t (*fr_unlang_tmpl_resume_t)(rlm_rcode_t *p_result, request_t *request, void *rctx);
-int unlang_tmpl_push(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out,
+int unlang_tmpl_push(TALLOC_CTX *ctx, fr_value_box_list_t *out,
request_t *request, tmpl_t const *tmpl, unlang_tmpl_args_t *args)
CC_HINT(warn_unused_result);
*/
typedef struct {
TALLOC_CTX *ctx; //!< for allocating value boxes
- FR_DLIST_HEAD(fr_value_box_list) *out; //!< output list if the exec succeeds
- FR_DLIST_HEAD(fr_value_box_list) list; //!< our intermediate working list
+ fr_value_box_list_t *out; //!< output list if the exec succeeds
+ fr_value_box_list_t list; //!< our intermediate working list
void *rctx; //!< for resume
fr_unlang_tmpl_resume_t resume; //!< resumption handler
/*
* For func and alternate
*/
- FR_DLIST_HEAD(fr_value_box_list) out; //!< Head of the result of a nested
+ fr_value_box_list_t out; //!< Head of the result of a nested
///< expansion.
bool alternate; //!< record which alternate branch we
///< previously took.
* - 0 on success.
* - -1 on failure.
*/
-static int unlang_xlat_push_internal(TALLOC_CTX *ctx, bool *p_success, FR_DLIST_HEAD(fr_value_box_list) *out,
+static int unlang_xlat_push_internal(TALLOC_CTX *ctx, bool *p_success, fr_value_box_list_t *out,
request_t *request, xlat_exp_head_t const *xlat, xlat_exp_t *node, bool top_frame)
{
/** Static instruction for performing xlat evaluations
* - 0 on success.
* - -1 on failure.
*/
-int unlang_xlat_push(TALLOC_CTX *ctx, bool *p_success, FR_DLIST_HEAD(fr_value_box_list) *out,
+int unlang_xlat_push(TALLOC_CTX *ctx, bool *p_success, fr_value_box_list_t *out,
request_t *request, xlat_exp_head_t const *xlat, bool top_frame)
{
(void) talloc_get_type_abort_const(xlat, xlat_exp_head_t);
* - 0 on success.
* - -1 on failure.
*/
-int unlang_xlat_push_node(TALLOC_CTX *ctx, bool *p_success, FR_DLIST_HEAD(fr_value_box_list) *out,
+int unlang_xlat_push_node(TALLOC_CTX *ctx, bool *p_success, fr_value_box_list_t *out,
request_t *request, xlat_exp_t *node)
{
return unlang_xlat_push_internal(ctx, p_success, out, request, NULL, node, UNLANG_TOP_FRAME);
* - XLAT_ACTION_FAIL the xlat function failed.
*/
typedef xlat_action_t (*xlat_func_t)(TALLOC_CTX *ctx, fr_dcursor_t *out,
- xlat_ctx_t const *xctx, request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in);
+ xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in);
/** A callback when the request gets a fr_state_signal_t.
*
int unlang_xlat_timeout_add(request_t *request, fr_unlang_xlat_timeout_t callback,
void const *rctx, fr_time_t when);
-int unlang_xlat_push(TALLOC_CTX *ctx, bool *p_success, FR_DLIST_HEAD(fr_value_box_list) *out,
+int unlang_xlat_push(TALLOC_CTX *ctx, bool *p_success, fr_value_box_list_t *out,
request_t *request, xlat_exp_head_t const *head, bool top_frame)
CC_HINT(warn_unused_result);
*/
static xlat_action_t xlat_redundant_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_redundant_inst_t const *xri = talloc_get_type_abort_const(xctx->inst, xlat_redundant_inst_t);
xlat_redundant_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_redundant_rctx_t);
/*
* Push the next child...
*/
- if (unlang_xlat_push(ctx, &rctx->last_success, (FR_DLIST_HEAD(fr_value_box_list) *)out->dlist,
+ if (unlang_xlat_push(ctx, &rctx->last_success, (fr_value_box_list_t *)out->dlist,
request, *rctx->current, UNLANG_SUB_FRAME) < 0) goto error;
return XLAT_ACTION_PUSH_UNLANG;
*/
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_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_redundant_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_redundant_rctx_t);
xlat_action_t xa = rctx->last_success ? XLAT_ACTION_DONE : XLAT_ACTION_FAIL;
*/
static xlat_action_t xlat_redundant(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_redundant_inst_t const *xri = talloc_get_type_abort_const(xctx->inst, xlat_redundant_inst_t);
xlat_redundant_rctx_t *rctx;
fr_assert(0);
}
- if (unlang_xlat_push(ctx, &rctx->last_success, (FR_DLIST_HEAD(fr_value_box_list) *)out->dlist,
+ if (unlang_xlat_push(ctx, &rctx->last_success, (fr_value_box_list_t *)out->dlist,
request, *rctx->current, UNLANG_SUB_FRAME) < 0) return XLAT_ACTION_FAIL;
return XLAT_ACTION_PUSH_UNLANG;
*/
static xlat_action_t xlat_func_debug(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
int level = 0;
fr_value_box_t *vb, *lvl_vb;
*/
static xlat_action_t xlat_func_debug_attr(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_pair_t *vp;
fr_dcursor_t cursor;
*/
static xlat_action_t xlat_func_flatten(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_pair_t *vp;
tmpl_t *vpt;
*/
static xlat_action_t xlat_func_unflatten(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_pair_t *vp;
tmpl_t *vpt;
static xlat_action_t xlat_func_untaint(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *vb;
static xlat_action_t xlat_func_taint(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *vb;
*/
static xlat_action_t xlat_func_explode(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *strings;
- FR_DLIST_HEAD(fr_value_box_list) *list;
+ fr_value_box_list_t *list;
fr_value_box_t *delim_vb;
ssize_t delim_len;
char const *delim;
*/
static xlat_action_t xlat_func_integer(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *in_vb;
char const *p;
*/
static xlat_action_t xlat_func_map(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
map_t *map = NULL;
int ret;
*/
static xlat_action_t xlat_func_next_time(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
long num;
*/
static xlat_action_t xlat_eval_resume(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- UNUSED request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_eval_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_eval_rctx_t);
xlat_action_t xa = rctx->last_success ? XLAT_ACTION_DONE : XLAT_ACTION_FAIL;
*/
static xlat_action_t xlat_func_eval(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
/*
* These are escaping rules applied to the
if (unlang_xlat_yield(request, xlat_eval_resume, NULL, rctx) != XLAT_ACTION_YIELD) goto error;
- if (unlang_xlat_push(ctx, &rctx->last_success, (FR_DLIST_HEAD(fr_value_box_list) *)out->dlist,
+ if (unlang_xlat_push(ctx, &rctx->last_success, (fr_value_box_list_t *)out->dlist,
request, rctx->ex, UNLANG_SUB_FRAME) < 0) goto error;
return XLAT_ACTION_PUSH_UNLANG;
*/
static xlat_action_t xlat_func_expr(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
/*
* These are escaping rules applied to the
if (unlang_xlat_yield(request, xlat_eval_resume, NULL, rctx) != XLAT_ACTION_YIELD) goto error;
- if (unlang_xlat_push(ctx, &rctx->last_success, (FR_DLIST_HEAD(fr_value_box_list) *)out->dlist,
+ if (unlang_xlat_push(ctx, &rctx->last_success, (fr_value_box_list_t *)out->dlist,
request, rctx->ex, UNLANG_SUB_FRAME) < 0) goto error;
return XLAT_ACTION_PUSH_UNLANG;
*/
static xlat_action_t xlat_func_lpad(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *values;
fr_value_box_t *pad;
fr_value_box_t *fill;
- FR_DLIST_HEAD(fr_value_box_list) *list;
+ fr_value_box_list_t *list;
size_t pad_len;
*/
static xlat_action_t xlat_func_rpad(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *values;
- FR_DLIST_HEAD(fr_value_box_list) *list;
+ fr_value_box_list_t *list;
fr_value_box_t *pad;
/* coverity[dereference] */
size_t pad_len;
*/
static xlat_action_t xlat_func_base64_encode(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
size_t alen;
ssize_t elen;
*/
static xlat_action_t xlat_func_base64_decode(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
size_t alen;
ssize_t declen = 0;
*/
static xlat_action_t xlat_func_bin(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *result;
char const *p, *end;
*/
static xlat_action_t xlat_func_cast(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *name;
fr_value_box_t *arg;
*/
static xlat_action_t xlat_func_concat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *result;
fr_value_box_t *list;
fr_value_box_t *separator;
- FR_DLIST_HEAD(fr_value_box_list) *to_concat;
+ fr_value_box_list_t *to_concat;
char *buff;
char const *sep;
*/
static xlat_action_t xlat_func_hex(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ UNUSED request_t *request, fr_value_box_list_t *args)
{
char *new_buff;
fr_value_box_t *bin;
} hmac_type;
static xlat_action_t xlat_hmac(TALLOC_CTX *ctx, fr_dcursor_t *out,
- FR_DLIST_HEAD(fr_value_box_list) *args, uint8_t *digest, int digest_len, hmac_type type)
+ fr_value_box_list_t *args, uint8_t *digest, int digest_len, hmac_type type)
{
fr_value_box_t *vb, *data, *key;
*/
static xlat_action_t xlat_func_hmac_md5(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
uint8_t digest[MD5_DIGEST_LENGTH];
return xlat_hmac(ctx, out, in, digest, MD5_DIGEST_LENGTH, HMAC_MD5);
*/
static xlat_action_t xlat_func_hmac_sha1(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
uint8_t digest[SHA1_DIGEST_LENGTH];
return xlat_hmac(ctx, out, in, digest, SHA1_DIGEST_LENGTH, HMAC_SHA1);
*/
static xlat_action_t xlat_func_join(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *arg = NULL, *vb, *p;
return XLAT_ACTION_DONE;
}
-static void ungroup(fr_dcursor_t *out, FR_DLIST_HEAD(fr_value_box_list) *in)
+static void ungroup(fr_dcursor_t *out, fr_value_box_list_t *in)
{
fr_value_box_t *vb;
*/
static xlat_action_t xlat_func_ungroup(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *arg = NULL;
*/
static xlat_action_t xlat_func_length(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *vb = NULL;
*/
static xlat_action_t xlat_func_md4(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ UNUSED request_t *request, fr_value_box_list_t *args)
{
uint8_t digest[MD5_DIGEST_LENGTH];
fr_value_box_t *vb;
*/
static xlat_action_t xlat_func_md5(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ UNUSED request_t *request, fr_value_box_list_t *args)
{
uint8_t digest[MD5_DIGEST_LENGTH];
fr_value_box_t *vb;
*/
static xlat_action_t xlat_func_module(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
fr_value_box_t *vb = NULL;
*/
static xlat_action_t xlat_func_pack(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *vb;
*/
static xlat_action_t xlat_func_pairs(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
tmpl_t *vpt = NULL;
fr_dcursor_t cursor;
*/
static xlat_action_t xlat_func_rand(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
int64_t result;
fr_value_box_t *vb;
*/
static xlat_action_t xlat_func_randstr(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
/*
* Lookup tables for randstr char classes
*/
static xlat_action_t xlat_func_regex(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *in_head = fr_value_box_list_head(in);
*/
static xlat_action_t xlat_func_sha1(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ UNUSED request_t *request, fr_value_box_list_t *args)
{
uint8_t digest[SHA1_DIGEST_LENGTH];
fr_sha1_ctx sha1_ctx;
#ifdef HAVE_OPENSSL_EVP_H
static xlat_action_t xlat_evp_md(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args, EVP_MD const *md)
+ UNUSED request_t *request, fr_value_box_list_t *args, EVP_MD const *md)
{
uint8_t digest[EVP_MAX_MD_SIZE];
unsigned int digestlen;
static xlat_action_t xlat_func_##_md(TALLOC_CTX *ctx, fr_dcursor_t *out,\
xlat_ctx_t const *xctx, \
request_t *request,\
- FR_DLIST_HEAD(fr_value_box_list) *in)\
+ fr_value_box_list_t *in)\
{\
return xlat_evp_md(ctx, out, xctx, request, in, EVP_##_md_func());\
}
*/
static xlat_action_t xlat_func_string(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *in_head = fr_value_box_list_pop_head(in);
*/
static xlat_action_t xlat_func_strlen(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ UNUSED request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *vb;
fr_value_box_t *in_head;
*/
static xlat_action_t xlat_func_subst_regex(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *args)
+ fr_value_box_list_t *args)
{
char const *p, *q, *end;
char const *regex;
#else
UNUSED xlat_ctx_t const *xctx,
#endif
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
char const *p, *q, *end;
char *vb_str;
*/
static xlat_action_t xlat_func_time(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *arg;
fr_value_box_t *vb;
* If upper is true, change to uppercase, otherwise, change to lowercase
*/
static xlat_action_t xlat_change_case(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args, bool upper)
+ UNUSED request_t *request, fr_value_box_list_t *args, bool upper)
{
char *p;
char const *end;
*/
static xlat_action_t xlat_func_tolower(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
return xlat_change_case(ctx, out, request, in, false);
}
*/
static xlat_action_t xlat_func_toupper(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
return xlat_change_case(ctx, out, request, in, true);
}
*/
static xlat_action_t xlat_func_urlquote(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ UNUSED request_t *request, fr_value_box_list_t *args)
{
char const *p, *end;
char *buff_p;
*/
static xlat_action_t xlat_func_urlunquote(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
char const *p, *end;
char *buff_p;
*/
static xlat_action_t protocol_decode_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
int decoded;
fr_value_box_t *vb;
*/
static xlat_action_t protocol_encode_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
tmpl_t *vpt;
fr_pair_t *vp;
* @param[in] args from previous expansion.
* @param[in] line Unused
*/
-static inline void xlat_debug_log_expansion(request_t *request, xlat_exp_t const *node, FR_DLIST_HEAD(fr_value_box_list) const *args, UNUSED int line)
+static inline void xlat_debug_log_expansion(request_t *request, xlat_exp_t const *node, fr_value_box_list_t const *args, UNUSED int line)
{
if (node->flags.constant) return;
* @param[in] node which was expanded.
* @param[in] result of the expansion.
*/
-static inline void xlat_debug_log_list_result(request_t *request, xlat_exp_t const *node, FR_DLIST_HEAD(fr_value_box_list) const *result)
+static inline void xlat_debug_log_list_result(request_t *request, xlat_exp_t const *node, fr_value_box_list_t const *result)
{
if (node->flags.constant) return;
* - XLAT_ACTION_DONE on success.
* - XLAT_ACTION_FAIL on failure.
*/
-static xlat_action_t xlat_process_arg_list(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *list, request_t *request,
+static xlat_action_t xlat_process_arg_list(TALLOC_CTX *ctx, fr_value_box_list_t *list, request_t *request,
char const *name, xlat_arg_parser_t const *arg, unsigned int arg_num)
{
fr_value_box_t *vb;
* @param[in] func to call
*/
static inline CC_HINT(always_inline)
-xlat_action_t xlat_process_args(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *list,
+xlat_action_t xlat_process_args(TALLOC_CTX *ctx, fr_value_box_list_t *list,
request_t *request, xlat_t const *func)
{
xlat_arg_parser_t const *arg_p = func->args;
* - false - If the return values were incorrect.
*/
static inline CC_HINT(nonnull(1,2,3))
-bool xlat_process_return(request_t *request, xlat_t const *func, FR_DLIST_HEAD(fr_value_box_list) const *returned, fr_value_box_t *pos)
+bool xlat_process_return(request_t *request, xlat_t const *func, fr_value_box_list_t const *returned, fr_value_box_t *pos)
{
unsigned int count = 0;
*
*/
static inline CC_HINT(always_inline)
-xlat_action_t xlat_eval_one_letter(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out,
+xlat_action_t xlat_eval_one_letter(TALLOC_CTX *ctx, fr_value_box_list_t *out,
request_t *request, char letter)
{
typedef struct {
int status;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
} xlat_exec_rctx_t;
static xlat_action_t xlat_exec_resume(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- UNUSED request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_exec_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_exec_rctx_t);
return XLAT_ACTION_FAIL;
}
- fr_value_box_list_move((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist, &rctx->list);
+ fr_value_box_list_move((fr_value_box_list_t *)out->dlist, &rctx->list);
return XLAT_ACTION_DONE;
}
xlat_action_t xlat_frame_eval_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_exp_head_t const **child,
request_t *request, xlat_exp_head_t const *head, xlat_exp_t const **in,
- FR_DLIST_HEAD(fr_value_box_list) *result, xlat_func_t resume, void *rctx)
+ fr_value_box_list_t *result, xlat_func_t resume, void *rctx)
{
xlat_action_t xa;
xlat_exp_t const *node = *in;
fr_dcursor_next(out); /* Wind to the start of this functions output */
RDEBUG2("| --> %pV", fr_dcursor_current(out));
if (node->call.func &&
- !xlat_process_return(request, node->call.func, (FR_DLIST_HEAD(fr_value_box_list) *)out->dlist,
+ !xlat_process_return(request, node->call.func, (fr_value_box_list_t *)out->dlist,
fr_dcursor_current(out))) {
return XLAT_ACTION_FAIL;
}
xlat_action_t xlat_frame_eval_repeat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_exp_head_t const **child, bool *alternate,
request_t *request, xlat_exp_head_t const *head, xlat_exp_t const **in,
- FR_DLIST_HEAD(fr_value_box_list) *result)
+ fr_value_box_list_t *result)
{
xlat_exp_t const *node = *in;
{
xlat_action_t xa;
xlat_thread_inst_t *t;
- FR_DLIST_HEAD(fr_value_box_list) result_copy;
+ fr_value_box_list_t result_copy;
t = xlat_thread_instance_find(node);
fr_assert(t);
REXDENT();
xlat_debug_log_result(request, *in, fr_dcursor_current(out));
if (!xlat_process_return(request, node->call.func,
- (FR_DLIST_HEAD(fr_value_box_list) *)out->dlist,
+ (fr_value_box_list_t *)out->dlist,
fr_dcursor_current(out))) return XLAT_ACTION_FAIL;
RINDENT();
break;
xlat_debug_log_list_result(request, *in, result);
VALUE_BOX_TALLOC_LIST_VERIFY(result);
- fr_value_box_list_move((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist, result);
+ fr_value_box_list_move((fr_value_box_list_t *)out->dlist, result);
}
break;
* First entry is the command to run. Subsequent entries are the options to pass to the
* command.
*/
- fr_value_box_list_move((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist, result);
+ fr_value_box_list_move((fr_value_box_list_t *)out->dlist, result);
break;
default:
{
xlat_action_t xa = XLAT_ACTION_DONE;
xlat_exp_t const *node;
- FR_DLIST_HEAD(fr_value_box_list) result; /* tmp list so debug works correctly */
+ fr_value_box_list_t result; /* tmp list so debug works correctly */
fr_value_box_t *value;
fr_value_box_list_init(&result);
for (node = *in; node; node = xlat_exp_next(head, node)) {
*in = node; /* Update node in our caller */
fr_dcursor_tail(out); /* Needed for debugging */
- VALUE_BOX_TALLOC_LIST_VERIFY((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist);
+ VALUE_BOX_TALLOC_LIST_VERIFY((fr_value_box_list_t *)out->dlist);
fr_assert(fr_value_box_list_num_elements(&result) == 0); /* Should all have been moved */
goto finish;
}
xlat_debug_log_list_result(request, *in, &result);
- fr_value_box_list_move((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist, &result);
+ fr_value_box_list_move((fr_value_box_list_t *)out->dlist, &result);
continue;
case XLAT_TMPL:
*/
if (tmpl_eval_cast(ctx, &result, node->vpt) < 0) goto fail;
- fr_value_box_list_move((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist, &result);
+ fr_value_box_list_move((fr_value_box_list_t *)out->dlist, &result);
continue;
} else if (tmpl_is_attr(node->vpt)) {
}
xlat_debug_log_list_result(request, node, &result);
- fr_value_box_list_move((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist, &result);
+ fr_value_box_list_move((fr_value_box_list_t *)out->dlist, &result);
continue;
case XLAT_VIRTUAL:
}
finish:
- VALUE_BOX_TALLOC_LIST_VERIFY((FR_DLIST_HEAD(fr_value_box_list) *)out->dlist);
+ VALUE_BOX_TALLOC_LIST_VERIFY((fr_value_box_list_t *)out->dlist);
XLAT_DEBUG("** [%i] %s << %s", unlang_interpret_stack_depth(request),
__FUNCTION__, fr_table_str_by_value(xlat_action_table, xa, "<INVALID>"));
static ssize_t xlat_eval_sync(TALLOC_CTX *ctx, char **out, request_t *request, xlat_exp_head_t const * const head,
xlat_escape_legacy_t escape, void const *escape_ctx)
{
- FR_DLIST_HEAD(fr_value_box_list) result;
+ fr_value_box_list_t result;
bool success = false;
TALLOC_CTX *pool = talloc_new(NULL);
rlm_rcode_t rcode;
* For tainted boxes perform the requested escaping
*/
while ((vb = fr_value_box_list_next(&result, vb))) {
- FR_DLIST_ENTRY(fr_value_box_list) entry;
+ fr_value_box_entry_t entry;
size_t len, real_len;
char *escaped;
my_argv[i++] = talloc_steal(my_argv, node->group);
}
- fr_value_box_list_talloc_free((FR_DLIST_HEAD(fr_value_box_list) *)&head->dlist);
+ fr_value_box_list_talloc_free((fr_value_box_list_t *)&head->dlist);
return count;
}
static xlat_action_t xlat_binary_op(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in,
+ request_t *request, fr_value_box_list_t *in,
fr_token_t op,
fr_type_t default_type, fr_dict_attr_t const *enumv)
{
*/
static xlat_action_t xlat_paircmp_func(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *dst, *vb_da, *vb;
fr_dict_attr_t const *da;
#define XLAT_BINARY_FUNC(_name, _op) \
static xlat_action_t xlat_func_ ## _name(TALLOC_CTX *ctx, fr_dcursor_t *out, \
xlat_ctx_t const *xctx, \
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in) \
+ request_t *request, fr_value_box_list_t *in) \
{ \
return xlat_binary_op(ctx, out, xctx, request, in, _op, FR_TYPE_NULL, NULL); \
}
#define XLAT_CMP_FUNC(_name, _op) \
static xlat_action_t xlat_func_ ## _name(TALLOC_CTX *ctx, fr_dcursor_t *out, \
xlat_ctx_t const *xctx, \
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in) \
+ request_t *request, fr_value_box_list_t *in) \
{ \
return xlat_binary_op(ctx, out, xctx, request, in, _op, FR_TYPE_BOOL, attr_expr_bool_enum); \
}
typedef struct {
bool last_success;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
} xlat_regex_rctx_t;
static fr_slen_t xlat_expr_print_regex(fr_sbuff_t *out, xlat_exp_t const *node, void *instance, fr_sbuff_escape_rules_t const *e_rules)
* - 0 for "no match".
* - 1 for "match".
*/
-static xlat_action_t xlat_regex_match(TALLOC_CTX *ctx, request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in, regex_t **preg,
+static xlat_action_t xlat_regex_match(TALLOC_CTX *ctx, request_t *request, fr_value_box_list_t *in, regex_t **preg,
fr_dcursor_t *out, fr_token_t op)
{
uint32_t subcaptures;
len = vb->vb_length;
} else {
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
fr_value_box_list_init(&list);
fr_value_box_list_insert_head(&list, vb);
static xlat_action_t xlat_regex_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
xlat_regex_inst_t const *inst = talloc_get_type_abort_const(xctx->inst, xlat_regex_inst_t);
xlat_regex_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_regex_rctx_t);
static xlat_action_t xlat_regex_op(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in,
+ request_t *request, fr_value_box_list_t *in,
fr_token_t op)
{
xlat_regex_inst_t const *inst = talloc_get_type_abort_const(xctx->inst, xlat_regex_inst_t);
#define XLAT_REGEX_FUNC(_name, _op) \
static xlat_action_t xlat_func_ ## _name(TALLOC_CTX *ctx, fr_dcursor_t *out, \
xlat_ctx_t const *xctx, \
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in) \
+ request_t *request, fr_value_box_list_t *in) \
{ \
return xlat_regex_op(ctx, out, xctx, request, in, _op); \
}
bool last_success;
fr_value_box_t *box; //!< output value-box
int current;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
} xlat_logical_rctx_t;
static fr_slen_t xlat_expr_print_logical(fr_sbuff_t *out, xlat_exp_t const *node, void *instance, fr_sbuff_escape_rules_t const *e_rules)
*
* Empty lists are not truthy.
*/
-static bool xlat_logical_match(fr_value_box_t **dst, FR_DLIST_HEAD(fr_value_box_list) const *in, bool logical_or)
+static bool xlat_logical_match(fr_value_box_t **dst, fr_value_box_list_t const *in, bool logical_or)
{
fr_value_box_t *last = NULL;
static xlat_action_t xlat_logical_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in);
+ request_t *request, fr_value_box_list_t *in);
/** Process one argument of a logical operation.
*
*/
static xlat_action_t xlat_logical_process_arg(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_logical_inst_t const *inst = talloc_get_type_abort_const(xctx->inst, xlat_logical_inst_t);
xlat_logical_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_logical_rctx_t);
*/
static xlat_action_t xlat_logical_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
xlat_logical_inst_t const *inst = talloc_get_type_abort_const(xctx->inst, xlat_logical_inst_t);
xlat_logical_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_logical_rctx_t);
*/
static xlat_action_t xlat_func_logical(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
xlat_logical_rctx_t *rctx;
static xlat_action_t xlat_func_unary_op(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in, fr_token_t op)
+ request_t *request, fr_value_box_list_t *in, fr_token_t op)
{
int rcode;
fr_value_box_t *dst, *group, *vb;
static xlat_action_t xlat_func_unary_not(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- UNUSED request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *dst, *group, *vb;
static xlat_action_t xlat_func_unary_minus(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
return xlat_func_unary_op(ctx, out, xctx, request, in, T_SUB);
}
static xlat_action_t xlat_func_unary_complement(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
return xlat_func_unary_op(ctx, out, xctx, request, in, T_COMPLEMENT);
}
*/
static xlat_action_t xlat_func_rcode(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *args)
+ request_t *request, fr_value_box_list_t *args)
{
fr_value_box_t *vb;
fr_value_box_t *src;
typedef struct {
bool last_success;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
} xlat_exists_rctx_t;
static xlat_arg_parser_t const xlat_func_exists_arg[] = {
static xlat_action_t xlat_exists_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_exists_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, xlat_exists_rctx_t);
ssize_t slen;
*/
static xlat_action_t xlat_func_exists(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
xlat_exists_inst_t const *inst = talloc_get_type_abort_const(xctx->inst, xlat_exists_inst_t);
xlat_exists_rctx_t *rctx;
*/
int xlat_decode_value_box_list(TALLOC_CTX *ctx, fr_pair_list_t *out,
request_t *request, void *decode_ctx, fr_pair_decode_t decode,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
int decoded = 0;
fr_value_box_t *vb = NULL;
xlat_action_t xlat_frame_eval_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_exp_head_t const **child,
request_t *request, xlat_exp_head_t const *head, xlat_exp_t const **in,
- FR_DLIST_HEAD(fr_value_box_list) *result, xlat_func_t resume, void *rctx);
+ fr_value_box_list_t *result, xlat_func_t resume, void *rctx);
xlat_action_t xlat_frame_eval_repeat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_exp_head_t const **child, bool *alternate,
request_t *request, xlat_exp_head_t const *head, xlat_exp_t const **in,
- FR_DLIST_HEAD(fr_value_box_list) *result) CC_HINT(nonnull(1,2,3,5));
+ fr_value_box_list_t *result) CC_HINT(nonnull(1,2,3,5));
xlat_action_t xlat_frame_eval(TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_exp_head_t const **child,
request_t *request, xlat_exp_head_t const *head, xlat_exp_t const **in);
void unlang_xlat_init(void);
-int unlang_xlat_push_node(TALLOC_CTX *ctx, bool *p_success, FR_DLIST_HEAD(fr_value_box_list) *out,
+int unlang_xlat_push_node(TALLOC_CTX *ctx, bool *p_success, fr_value_box_list_t *out,
request_t *request, xlat_exp_t *node);
int xlat_decode_value_box_list(TALLOC_CTX *ctx, fr_pair_list_t *out,
request_t *request, void *decode_ctx, fr_pair_decode_t decode,
- FR_DLIST_HEAD(fr_value_box_list) *in);
+ fr_value_box_list_t *in);
/*
* xlat_expr.c
*/
#include <freeradius-devel/unlang/xlat_priv.h>
#include <freeradius-devel/util/calc.h>
-static void xlat_value_list_to_xlat(xlat_exp_head_t *head, FR_DLIST_HEAD(fr_value_box_list) *list)
+static void xlat_value_list_to_xlat(xlat_exp_head_t *head, fr_value_box_list_t *list)
{
fr_value_box_t *box;
xlat_exp_t *node;
{
int rcode;
bool success;
- FR_DLIST_HEAD(fr_value_box_list) list;
+ fr_value_box_list_t list;
xlat_flags_t our_flags;
if (!head->flags.can_purify) return 0;
/** Apply a set of operations in order to create an output box.
*
*/
-int fr_value_calc_list_op(TALLOC_CTX *ctx, fr_value_box_t *box, fr_token_t op, FR_DLIST_HEAD(fr_value_box_list) const *list)
+int fr_value_calc_list_op(TALLOC_CTX *ctx, fr_value_box_t *box, fr_token_t op, fr_value_box_list_t const *list)
{
/*
* For octets and string and prepend / append, figure out
* This implementation is arguably wrong... it should be checking individual entries in list1 against individual entries in list2.
* Instead, it checks if ANY entry in list1 matches ANY entry in list2.
*/
-int fr_value_calc_list_cmp(TALLOC_CTX *ctx, fr_value_box_t *dst, FR_DLIST_HEAD(fr_value_box_list) const *list1, fr_token_t op, FR_DLIST_HEAD(fr_value_box_list) const *list2)
+int fr_value_calc_list_cmp(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_list_t const *list1, fr_token_t op, fr_value_box_list_t const *list2)
{
int rcode;
bool invert = false;
int fr_value_calc_unary_op(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_token_t op, fr_value_box_t const *src) CC_HINT(nonnull(1));
-int fr_value_calc_list_op(TALLOC_CTX *ctx, fr_value_box_t *box, fr_token_t op, FR_DLIST_HEAD(fr_value_box_list) const *list);
+int fr_value_calc_list_op(TALLOC_CTX *ctx, fr_value_box_t *box, fr_token_t op, fr_value_box_list_t const *list);
-int fr_value_calc_list_cmp(TALLOC_CTX *ctx, fr_value_box_t *dst, FR_DLIST_HEAD(fr_value_box_list) const *list1, fr_token_t op, FR_DLIST_HEAD(fr_value_box_list) const *list2) CC_HINT(nonnull);
+int fr_value_calc_list_cmp(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_list_t const *list1, fr_token_t op, fr_value_box_list_t const *list2) CC_HINT(nonnull);
#ifdef __cplusplus
}
case 'M':
{
- FR_DLIST_HEAD(fr_value_box_list) const *in = va_arg(ap_q, FR_DLIST_HEAD(fr_value_box_list) const *);
+ fr_value_box_list_t const *in = va_arg(ap_q, fr_value_box_list_t const *);
if (!in) {
subst = talloc_strdup(NULL, "(null)");
* - 0 on success
* - -1 on failure
*/
-int fr_uri_escape(FR_DLIST_HEAD(fr_value_box_list) *uri, fr_uri_part_t const *uri_parts, void *uctx)
+int fr_uri_escape(fr_value_box_list_t *uri, fr_uri_part_t const *uri_parts, void *uctx)
{
fr_uri_part_t const *uri_part;
fr_sbuff_t sbuff;
#define XLAT_URI_PART_TERMINATOR { .name = NULL, .terminals = NULL, .tainted_allowed = false, .func = NULL }
-int fr_uri_escape(FR_DLIST_HEAD(fr_value_box_list) *uri, fr_uri_part_t const *uri_parts, void *uctx);
+int fr_uri_escape(fr_value_box_list_t *uri, fr_uri_part_t const *uri_parts, void *uctx);
#ifdef __cplusplus
}
case FR_TYPE_GROUP:
return fr_value_box_list_concat_in_place(ctx,
- dst, UNCONST(FR_DLIST_HEAD(fr_value_box_list) *, &src->vb_group),
+ dst, UNCONST(fr_value_box_list_t *, &src->vb_group),
FR_TYPE_STRING,
FR_VALUE_BOX_LIST_NONE, false,
SIZE_MAX);
case FR_TYPE_GROUP:
return fr_value_box_list_concat_in_place(ctx,
- dst, UNCONST(FR_DLIST_HEAD(fr_value_box_list) *, &src->vb_group),
+ dst, UNCONST(fr_value_box_list_t *, &src->vb_group),
FR_TYPE_OCTETS,
FR_VALUE_BOX_LIST_NONE, false,
SIZE_MAX);
/*
* Store list poiters to restore later - fr_value_box_cast clears them
*/
- FR_DLIST_ENTRY(fr_value_box_list) entry = vb->entry;
+ fr_value_box_entry_t entry = vb->entry;
/*
* Simple case, destination type and current
*/
FR_SBUFF_IN_CHAR_RETURN(&our_out, '{');
FR_SBUFF_RETURN(fr_value_box_list_concat_as_string,
- NULL, &our_out, UNCONST(FR_DLIST_HEAD(fr_value_box_list) *, &data->vb_group),
+ NULL, &our_out, UNCONST(fr_value_box_list_t *, &data->vb_group),
", ", (sizeof(", ") - 1), e_rules,
0, false, true);
FR_SBUFF_IN_CHAR_RETURN(&our_out, '}');
* - <0 how many additional bytes we would have needed to
* concat the next box.
*/
-ssize_t fr_value_box_list_concat_as_string(bool *tainted, fr_sbuff_t *sbuff, FR_DLIST_HEAD(fr_value_box_list) *list,
+ssize_t fr_value_box_list_concat_as_string(bool *tainted, fr_sbuff_t *sbuff, fr_value_box_list_t *list,
char const *sep, size_t sep_len, fr_sbuff_escape_rules_t const *e_rules,
fr_value_box_list_action_t proc_action, bool flatten, bool printable)
{
* - <0 how many additional bytes we would have needed to
* concat the next box.
*/
-ssize_t fr_value_box_list_concat_as_octets(bool *tainted, fr_dbuff_t *dbuff, FR_DLIST_HEAD(fr_value_box_list) *list,
+ssize_t fr_value_box_list_concat_as_octets(bool *tainted, fr_dbuff_t *dbuff, fr_value_box_list_t *list,
uint8_t const *sep, size_t sep_len,
fr_value_box_list_action_t proc_action, bool flatten)
{
* - -1 on failure.
*/
int fr_value_box_list_concat_in_place(TALLOC_CTX *ctx,
- fr_value_box_t *out, FR_DLIST_HEAD(fr_value_box_list) *list, fr_type_t type,
+ fr_value_box_t *out, fr_value_box_list_t *list, fr_type_t type,
fr_value_box_list_action_t proc_action, bool flatten,
size_t max_size)
{
fr_value_box_t *head_vb = fr_value_box_list_head(list);
bool tainted = false;
- FR_DLIST_ENTRY(fr_value_box_list) entry;
+ fr_value_box_entry_t entry;
if (fr_value_box_list_empty(list)) {
fr_strerror_const("Invalid arguments. List contains no elements");
* @param[in] free whether to free any group boxes which have had
* their children removed.
*/
-void fr_value_box_flatten(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *list, bool steal, bool free)
+void fr_value_box_flatten(TALLOC_CTX *ctx, fr_value_box_list_t *list, bool steal, bool free)
{
fr_value_box_list_foreach_safe(list, child) {
if (!fr_type_is_structural(child->type)) continue;
* - NULL on error.
* - The concatenation of the string values of the value box list on success.
*/
-char *fr_value_box_list_aprint(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) const *list, char const *delim,
+char *fr_value_box_list_aprint(TALLOC_CTX *ctx, fr_value_box_list_t const *list, char const *delim,
fr_sbuff_escape_rules_t const *e_rules)
{
fr_value_box_t const *vb = fr_value_box_list_head(list);
* - A duplicate list of value boxes, allocated in the context of 'ctx'
* - NULL on error, or empty input list.
*/
-int fr_value_box_list_acopy(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, FR_DLIST_HEAD(fr_value_box_list) const *in)
+int fr_value_box_list_acopy(TALLOC_CTX *ctx, fr_value_box_list_t *out, fr_value_box_list_t const *in)
{
fr_value_box_t const *in_p = NULL;
* - true if a list member is tainted.
* - false if no list members are tainted.
*/
-bool fr_value_box_list_tainted(FR_DLIST_HEAD(fr_value_box_list) const *head)
+bool fr_value_box_list_tainted(fr_value_box_list_t const *head)
{
fr_value_box_t *vb = NULL;
*
* @param[in] head of list.
*/
-void fr_value_box_list_taint(FR_DLIST_HEAD(fr_value_box_list) *head)
+void fr_value_box_list_taint(fr_value_box_list_t *head)
{
fr_value_box_t *vb = NULL;
*
* @param[in] head of list.
*/
-void fr_value_box_list_untaint(FR_DLIST_HEAD(fr_value_box_list) *head)
+void fr_value_box_list_untaint(fr_value_box_list_t *head)
{
fr_value_box_t *vb = NULL;
}
}
-void fr_value_box_list_verify(char const *file, int line, FR_DLIST_HEAD(fr_value_box_list) const *list, bool talloced)
+void fr_value_box_list_verify(char const *file, int line, fr_value_box_list_t const *list, bool talloced)
{
fr_value_box_list_foreach(list, vb) fr_value_box_verify(file, line, vb, talloced);
}
#define INFO_INDENT(_fmt, ...) FR_FAULT_LOG("%*s"_fmt, depth * 2, " ", ## __VA_ARGS__)
static void _fr_value_box_debug(fr_value_box_t const *vb, int depth, int idx);
-static void _fr_value_box_list_debug(FR_DLIST_HEAD(fr_value_box_list) const *head, int depth)
+static void _fr_value_box_list_debug(fr_value_box_list_t const *head, int depth)
{
int i = 0;
*
* @note Call directly from the debugger
*/
-void fr_value_box_list_debug(FR_DLIST_HEAD(fr_value_box_list) const *head)
+void fr_value_box_list_debug(fr_value_box_list_t const *head)
{
_fr_value_box_list_debug(head, 0);
}
/** @name List and cursor type definitions
*/
FR_DLIST_TYPES(fr_value_box_list)
+FR_DLIST_TYPEDEFS(fr_value_box_list, fr_value_box_list_t, fr_value_box_entry_t)
FR_DCURSOR_DLIST_TYPES(fr_value_box_dcursor, fr_value_box_list, fr_value_box_t)
/** @{ */
size_t size; //!< System specific file/memory size.
fr_time_delta_t time_delta; //!< a delta time in nanoseconds
- FR_DLIST_HEAD(fr_value_box_list) children; //!< for groups
+ fr_value_box_list_t children; //!< for groups
} fr_value_box_datum_t;
/** Union containing all data types supported by the server
bool tainted; //!< i.e. did it come from an untrusted source
uint16_t _CONST safe; //!< more detailed safety
- FR_DLIST_ENTRY(fr_value_box_list) entry; //!< Doubly linked list entry.
+ fr_value_box_entry_t entry; //!< Doubly linked list entry.
fr_dict_attr_t const *enumv; //!< Enumeration values.
* - false if the list has fewer than min boxes.
*/
static inline CC_HINT(nonnull)
-bool fr_value_box_list_len_min(FR_DLIST_HEAD(fr_value_box_list) const *list, unsigned int min)
+bool fr_value_box_list_len_min(fr_value_box_list_t const *list, unsigned int min)
{
unsigned int i = fr_value_box_list_num_elements(list);
*
* @{
*/
-ssize_t fr_value_box_list_concat_as_string(bool *tainted, fr_sbuff_t *sbuff, FR_DLIST_HEAD(fr_value_box_list) *list,
+ssize_t fr_value_box_list_concat_as_string(bool *tainted, fr_sbuff_t *sbuff, fr_value_box_list_t *list,
char const *sep, size_t sep_len, fr_sbuff_escape_rules_t const *e_rules,
fr_value_box_list_action_t proc_action, bool flatten, bool printable)
CC_HINT(nonnull(2,3));
-ssize_t fr_value_box_list_concat_as_octets(bool *tainted, fr_dbuff_t *dbuff, FR_DLIST_HEAD(fr_value_box_list) *list,
+ssize_t fr_value_box_list_concat_as_octets(bool *tainted, fr_dbuff_t *dbuff, fr_value_box_list_t *list,
uint8_t const *sep, size_t sep_len,
fr_value_box_list_action_t proc_action, bool flatten)
CC_HINT(nonnull(2,3));
int fr_value_box_list_concat_in_place(TALLOC_CTX *ctx,
- fr_value_box_t *out, FR_DLIST_HEAD(fr_value_box_list) *list, fr_type_t type,
+ fr_value_box_t *out, fr_value_box_list_t *list, fr_type_t type,
fr_value_box_list_action_t proc_action, bool flatten,
size_t max_size)
CC_HINT(nonnull(2,3));
-void fr_value_box_flatten(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *list, bool steal, bool free)
+void fr_value_box_flatten(TALLOC_CTX *ctx, fr_value_box_list_t *list, bool steal, bool free)
CC_HINT(nonnull(2));
-char *fr_value_box_list_aprint(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) const *list, char const *delim,
+char *fr_value_box_list_aprint(TALLOC_CTX *ctx, fr_value_box_list_t const *list, char const *delim,
fr_sbuff_escape_rules_t const *e_rules)
CC_HINT(nonnull(2));
-int fr_value_box_list_acopy(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *out, FR_DLIST_HEAD(fr_value_box_list) const *in)
+int fr_value_box_list_acopy(TALLOC_CTX *ctx, fr_value_box_list_t *out, fr_value_box_list_t const *in)
CC_HINT(nonnull(2,3));
-bool fr_value_box_list_tainted(FR_DLIST_HEAD(fr_value_box_list) const *head)
+bool fr_value_box_list_tainted(fr_value_box_list_t const *head)
CC_HINT(nonnull(1));
-void fr_value_box_list_taint(FR_DLIST_HEAD(fr_value_box_list) *head)
+void fr_value_box_list_taint(fr_value_box_list_t *head)
CC_HINT(nonnull(1));
-void fr_value_box_list_untaint(FR_DLIST_HEAD(fr_value_box_list) *head)
+void fr_value_box_list_untaint(fr_value_box_list_t *head)
CC_HINT(nonnull(1));
/** @} */
void fr_value_box_verify(char const *file, int line, fr_value_box_t const *vb, bool talloced)
CC_HINT(nonnull(3));
-void fr_value_box_list_verify(char const *file, int line, FR_DLIST_HEAD(fr_value_box_list) const *list, bool talloced)
+void fr_value_box_list_verify(char const *file, int line, fr_value_box_list_t const *list, bool talloced)
CC_HINT(nonnull(3));
#ifdef WITH_VERIFY_PTR
*
* @{
*/
-void fr_value_box_list_debug(FR_DLIST_HEAD(fr_value_box_list) const *head);
+void fr_value_box_list_debug(fr_value_box_list_t const *head);
void fr_value_box_debug(fr_value_box_t const *vb);
/** @} */
*/
static xlat_action_t always_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_always_t *inst = talloc_get_type_abort(xctx->mctx->inst->data, rlm_always_t);
module_instance_t *mi = inst->mi;
static CC_HINT(nonnull)
xlat_action_t cache_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_cache_entry_t *c = NULL;
rlm_cache_t *inst = talloc_get_type_abort(xctx->mctx->inst->data, rlm_cache_t);
*/
static xlat_action_t xlat_func_chap_password(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
uint8_t chap_password[1 + RADIUS_CHAP_CHALLENGE_LENGTH];
fr_value_box_t *vb;
*/
static xlat_action_t cipher_rsa_encrypt_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_cipher_rsa_thread_inst_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_cipher_rsa_thread_inst_t);
*/
static xlat_action_t cipher_rsa_sign_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_cipher_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_cipher_t);
rlm_cipher_rsa_thread_inst_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_cipher_rsa_thread_inst_t);
*/
static xlat_action_t cipher_rsa_decrypt_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_cipher_rsa_thread_inst_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_cipher_rsa_thread_inst_t);
*/
static xlat_action_t cipher_rsa_verify_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_cipher_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_cipher_t);
rlm_cipher_rsa_thread_inst_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_cipher_rsa_thread_inst_t);
*/
static xlat_action_t cipher_fingerprint_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_cipher_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_cipher_t);
char const *md_name;
*/
static xlat_action_t cipher_serial_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
rlm_cipher_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_cipher_t);
ASN1_INTEGER const *serial;
static xlat_action_t cipher_certificate_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_cipher_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_cipher_t);
char const *attribute = fr_value_box_list_head(in)->vb_strvalue;
* - #RLM_MODULE_FAIL if an error occurred.
*/
static rlm_rcode_t map_proc_client(UNUSED void *mod_inst, UNUSED void *proc_inst, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *client_override, map_list_t const *maps)
+ fr_value_box_list_t *client_override, map_list_t const *maps)
{
rlm_rcode_t rcode = RLM_MODULE_OK;
map_t const *map = NULL;
*/
static xlat_action_t xlat_client(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
char const *value = NULL;
fr_ipaddr_t ip;
#include <freeradius-devel/server/map_proc.h>
static rlm_rcode_t mod_map_proc(void *mod_inst, UNUSED void *proc_inst, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *key, map_list_t const *maps);
+ fr_value_box_list_t *key, map_list_t const *maps);
/*
* Define a structure for our module configuration.
* - #RLM_MODULE_FAIL if an error occurred.
*/
static rlm_rcode_t mod_map_proc(void *mod_inst, UNUSED void *proc_inst, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *key, map_list_t const *maps)
+ fr_value_box_list_t *key, map_list_t const *maps)
{
rlm_csv_t *inst = talloc_get_type_abort(mod_inst, rlm_csv_t);
fr_value_box_t *key_head = fr_value_box_list_head(key);
*/
static xlat_action_t xlat_date_convert(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_date_t const *inst = talloc_get_type_abort(xctx->mctx->inst->data, rlm_date_t);
struct tm tminfo;
static xlat_action_t xlat_delay_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
fr_time_t *yielded_at = talloc_get_type_abort(xctx->rctx, fr_time_t);
fr_time_delta_t delayed;
*/
static xlat_action_t xlat_delay(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_delay_t const *inst = talloc_get_type_abort(xctx->mctx->inst->data, rlm_delay_t);
fr_time_t resume_at, *yielded_at;
*/
static xlat_action_t xlat_dict_attr_by_num(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_dict_attr_t const *da;
fr_value_box_t *attr = fr_value_box_list_head(in);
*/
static xlat_action_t xlat_dict_attr_by_oid(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
unsigned int attr = 0;
fr_dict_attr_t const *parent = fr_dict_root(request->dict);
*/
static xlat_action_t xlat_vendor(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_pair_t *vp;
fr_dict_vendor_t const *vendor;
*/
static xlat_action_t xlat_vendor_num(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_pair_t *vp;
fr_value_box_t *attr = fr_value_box_list_head(in);
*/
static xlat_action_t xlat_attr(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_pair_t *vp;
fr_value_box_t *attr = fr_value_box_list_head(in);
*/
static xlat_action_t xlat_attr_num(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_pair_t *vp;
fr_value_box_t *attr = fr_value_box_list_head(in);
*/
static xlat_action_t escape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_escape_t const *inst = talloc_get_type_abort(xctx->mctx->inst->data, rlm_escape_t);
fr_value_box_t *arg = fr_value_box_list_head(in);
*/
static xlat_action_t unescape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *arg = fr_value_box_list_head(in);
char const *p, *end;
static xlat_action_t exec_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
fr_exec_state_t *exec = talloc_get_type_abort(xctx->rctx, fr_exec_state_t);
fr_value_box_t *vb;
*/
static xlat_action_t exec_xlat(TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_exec_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_exec_t);
fr_pair_list_t *env_pairs = NULL;
request_t *request)
{
rlm_exec_t const *inst = talloc_get_type_abort_const(mctx->inst->data, rlm_exec_t);
- FR_DLIST_HEAD(fr_value_box_list) *box = talloc_get_type_abort(mctx->rctx, FR_DLIST_HEAD(fr_value_box_list));
+ fr_value_box_list_t *box = talloc_get_type_abort(mctx->rctx, fr_value_box_list_t);
fr_pair_list_t *env_pairs = NULL;
/*
}
typedef struct {
- FR_DLIST_HEAD(fr_value_box_list) box;
+ fr_value_box_list_t box;
int status;
} rlm_exec_ctx_t;
* Do the asynchronous xlat expansion.
*/
if (!inst->wait) {
- FR_DLIST_HEAD(fr_value_box_list) *box = talloc_zero(ctx, FR_DLIST_HEAD(fr_value_box_list));
+ fr_value_box_list_t *box = talloc_zero(ctx, fr_value_box_list_t);
fr_value_box_list_init(box);
return unlang_module_yield_to_xlat(request, NULL, box, request, tmpl_xlat(inst->tmpl),
static xlat_action_t xlat_icmp_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- UNUSED request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ UNUSED request_t *request, UNUSED fr_value_box_list_t *in)
{
rlm_icmp_echo_t *echo = talloc_get_type_abort(xctx->rctx, rlm_icmp_echo_t);
rlm_icmp_thread_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_icmp_thread_t);
*/
static xlat_action_t xlat_icmp(TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_icmp_t *inst = talloc_get_type_abort(xctx->mctx->inst->data, rlm_icmp_t);
rlm_icmp_thread_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_icmp_thread_t);
*/
static xlat_action_t xlat_idna(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_idn_t const *inst = talloc_get_type_abort(xctx->mctx->inst->data, rlm_idn_t);
char *idna = NULL;
*/
static xlat_action_t json_quote_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *vb;
fr_value_box_t *in_head = fr_value_box_list_head(in);
*/
static xlat_action_t jpath_validate_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *path = fr_value_box_list_head(in);
fr_jpath_node_t *head;
*/
static xlat_action_t json_encode_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_json_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_json_t);
fr_json_format_t const *format = inst->format;
fr_pair_t *vp;
rlm_json_jpath_to_eval_t *to_eval = uctx;
fr_value_box_t *value;
- FR_DLIST_HEAD(fr_value_box_list) head;
+ fr_value_box_list_t head;
int ret;
fr_pair_list_free(out);
* - #RLM_MODULE_FAIL if a fault occurred.
*/
static rlm_rcode_t mod_map_proc(UNUSED void *mod_inst, void *proc_inst, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *json, map_list_t const *maps)
+ fr_value_box_list_t *json, map_list_t const *maps)
{
rlm_rcode_t rcode = RLM_MODULE_UPDATED;
struct json_tokener *tok;
*/
static xlat_action_t ldap_escape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *vb, *in_vb = fr_value_box_list_head(in);
fr_sbuff_t sbuff;
*/
static xlat_action_t ldap_unescape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_value_box_t *vb, *in_vb = fr_value_box_list_head(in);
fr_sbuff_t sbuff;
*/
static xlat_action_t ldap_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
fr_ldap_query_t *query = talloc_get_type_abort(xctx->rctx, fr_ldap_query_t);
fr_ldap_connection_t *ldap_conn = query->ldap_conn;
*/
static xlat_action_t ldap_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
fr_ldap_thread_t *t = talloc_get_type_abort(xctx->mctx->thread, fr_ldap_thread_t);
fr_value_box_t *uri_components, *uri;
* - #RLM_MODULE_FAIL if an error occurred.
*/
static rlm_rcode_t mod_map_proc(void *mod_inst, UNUSED void *proc_inst, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *url, map_list_t const *maps)
+ fr_value_box_list_t *url, map_list_t const *maps)
{
rlm_rcode_t rcode = RLM_MODULE_UPDATED;
rlm_ldap_t *inst = talloc_get_type_abort(mod_inst, rlm_ldap_t);
static xlat_action_t linelog_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *args)
+ fr_value_box_list_t *args)
{
rlm_linelog_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_linelog_t);
struct iovec vector[2];
*/
static xlat_action_t mschap_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
size_t data_len;
uint8_t const *data = NULL;
* - 0 on success
* - -1 on failure
*/
-static int perl_vblist_to_av(AV *av, FR_DLIST_HEAD(fr_value_box_list) *head) {
+static int perl_vblist_to_av(AV *av, fr_value_box_list_t *head) {
fr_value_box_t *vb = NULL;
SV *sv;
* - 0 on success
* - -1 on failure
*/
-static int perl_sv_to_vblist(TALLOC_CTX *ctx, FR_DLIST_HEAD(fr_value_box_list) *list, request_t *request, SV *sv) {
+static int perl_sv_to_vblist(TALLOC_CTX *ctx, fr_value_box_list_t *list, request_t *request, SV *sv) {
fr_value_box_t *vb = NULL;
char *tmp;
STRLEN len;
*/
static xlat_action_t perl_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_perl_thread_t const *t = talloc_get_type_abort_const(xctx->mctx->thread, rlm_perl_thread_t);
int count, i;
fr_value_box_t *arg = NULL, *child;
SV *sv;
AV *av;
- FR_DLIST_HEAD(fr_value_box_list) list, sub_list;
+ fr_value_box_list_t list, sub_list;
fr_value_box_t *vb = NULL;
fr_value_box_list_init(&list);
*/
static xlat_action_t redis_remap_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_redis_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_redis_t);
*/
static xlat_action_t redis_node_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_redis_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_redis_t);
*/
static xlat_action_t redis_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_redis_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_redis_t);
xlat_action_t action = XLAT_ACTION_DONE;
static xlat_action_t rest_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
rlm_rest_xlat_rctx_t *rctx = talloc_get_type_abort(xctx->rctx, rlm_rest_xlat_rctx_t);
int hcode;
*/
static xlat_action_t rest_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
xlat_ctx_t const *xctx, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
rlm_rest_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_rest_t);
rlm_rest_thread_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_rest_thread_t);
*/
static xlat_action_t soh_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
fr_value_box_t *in_head = fr_value_box_list_head(in);
fr_value_box_t *vb;
size_t len;
rlm_sql_handle_t *handle;
rlm_sql_t *inst = talloc_get_type_abort(uctx, rlm_sql_t);
- FR_DLIST_ENTRY(fr_value_box_list) entry;
+ fr_value_box_entry_t entry;
handle = fr_pool_connection_get(inst->pool, request);
if (!handle) {
*/
static xlat_action_t sql_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_sql_handle_t *handle = NULL;
rlm_sql_row_t row;
* - #RLM_MODULE_FAIL if a fault occurred.
*/
static rlm_rcode_t mod_map_proc(void *mod_inst, UNUSED void *proc_inst, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *query, map_list_t const *maps)
+ fr_value_box_list_t *query, map_list_t const *maps)
{
rlm_sql_t *inst = talloc_get_type_abort(mod_inst, rlm_sql_t);
rlm_sql_handle_t *handle = NULL;
*/
static xlat_action_t trigger_test_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
fr_value_box_t *in_head = fr_value_box_list_head(in);
fr_value_box_t *vb;
*/
static xlat_action_t test_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
fr_value_box_t *vb_p = NULL;
fr_value_box_t *vb;
fr_type_t return_type; //!< Data type to parse results into
bool has_priority; //!< Does the returned data start with a priority field
uint16_t count; //!< Number of results to return
- FR_DLIST_HEAD(fr_value_box_list) list; //!< Where to put the parsed results
+ fr_value_box_list_t list; //!< Where to put the parsed results
TALLOC_CTX *out_ctx; //!< CTX to allocate parsed results in
fr_event_timer_t const *ev; //!< Event for timeout
} unbound_request_t;
*/
static xlat_action_t xlat_unbound_resume(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, UNUSED FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, UNUSED fr_value_box_list_t *in)
{
fr_value_box_t *vb;
unbound_request_t *ur = talloc_get_type_abort(xctx->rctx, unbound_request_t);
*/
static xlat_action_t xlat_unbound(TALLOC_CTX *ctx, fr_dcursor_t *out,
xlat_ctx_t const *xctx,
- request_t *request, FR_DLIST_HEAD(fr_value_box_list) *in)
+ request_t *request, fr_value_box_list_t *in)
{
rlm_unbound_t const *inst = talloc_get_type_abort_const(xctx->mctx->inst->data, rlm_unbound_t);
rlm_unbound_thread_t *t = talloc_get_type_abort(xctx->mctx->thread, rlm_unbound_thread_t);
*/
static xlat_action_t unpack_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
UNUSED xlat_ctx_t const *xctx, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
size_t len, input_len, offset;
fr_type_t type;
*/
static xlat_action_t modhex_to_hex_xlat(UNUSED TALLOC_CTX *ctx, fr_dcursor_t * out,
UNUSED xlat_ctx_t const *xctx, request_t *request,
- FR_DLIST_HEAD(fr_value_box_list) *in)
+ fr_value_box_list_t *in)
{
ssize_t len;
fr_value_box_t *arg = fr_value_box_list_pop_head(in);