tmpl_rules_t _CONST rules;
};
-typedef struct tmpl_cursor_ctx_s tmpl_cursor_ctx_t;
+typedef struct tmpl_cursor_ctx_s tmpl_pair_cursor_ctx_t;
typedef struct tmpl_cursor_nested_s tmpl_cursor_nested_t;
typedef fr_pair_t *(*tmpl_cursor_eval_t)(fr_dlist_head_t *list_head, fr_pair_t *current, tmpl_cursor_nested_t *ns);
@code{.c}
static tmpl_t list = tmpl_init_initialiser_list(CURRENT_REQUEST, PAIR_LIST_REQUEST);
fr_dcursor_t cursor;
- tmpl_cursor_ctx_t cc,
+ tmpl_pair_cursor_ctx_t cc,
fr_pair_t *vp;
// Iterate over all pairs in the request list
fr_type_t dst_type)
CC_HINT(nonnull (2, 3, 4));
-fr_pair_t *tmpl_pair_cursor_init(int *err, TALLOC_CTX *ctx, tmpl_cursor_ctx_t *cc,
+fr_pair_t *tmpl_pair_cursor_init(int *err, TALLOC_CTX *ctx, tmpl_pair_cursor_ctx_t *cc,
fr_dcursor_t *cursor, request_t *request,
tmpl_t const *vpt);
-void tmpl_pair_cursor_clear(tmpl_cursor_ctx_t *cc);
+void tmpl_pair_cursor_clear(tmpl_pair_cursor_ctx_t *cc);
int tmpl_copy_pairs(TALLOC_CTX *ctx, fr_pair_list_t *out,
request_t *request, tmpl_t const *vpt);
}
static inline CC_HINT(always_inline)
-void _tmpl_cursor_pool_init(tmpl_cursor_ctx_t *cc)
+void _tmpl_cursor_pool_init(tmpl_pair_cursor_ctx_t *cc)
{
if (!cc->pool) MEM(cc->pool = talloc_pool(cc->ctx, sizeof(tmpl_cursor_nested_t) * 5));
}
*
*/
static inline CC_HINT(always_inline)
-void _tmpl_cursor_tlv_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_cursor_ctx_t *cc)
+void _tmpl_cursor_tlv_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_pair_cursor_ctx_t *cc)
{
tmpl_attr_t *prev = fr_dlist_prev(&cc->vpt->data.attribute.ar, ar);
*
*/
static inline CC_HINT(always_inline)
-void _tmpl_cursor_group_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_cursor_ctx_t *cc)
+void _tmpl_cursor_group_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_pair_cursor_ctx_t *cc)
{
tmpl_cursor_nested_t *ns;
*
*/
static inline CC_HINT(always_inline)
-void _tmpl_cursor_leaf_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_cursor_ctx_t *cc)
+void _tmpl_cursor_leaf_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_pair_cursor_ctx_t *cc)
{
tmpl_cursor_nested_t *ns = &cc->leaf;
}
static inline CC_HINT(always_inline)
-void _tmpl_cursor_list_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_cursor_ctx_t *cc)
+void _tmpl_cursor_list_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_pair_cursor_ctx_t *cc)
{
tmpl_cursor_nested_t *ns;
fr_dlist_insert_tail(&cc->nested, ns);
}
-static inline CC_HINT(always_inline) void _tmpl_cursor_eval_pop(tmpl_cursor_ctx_t *cc)
+static inline CC_HINT(always_inline) void _tmpl_cursor_eval_pop(tmpl_pair_cursor_ctx_t *cc)
{
tmpl_cursor_nested_t *ns = fr_dlist_pop_tail(&cc->nested);
* @return the vp evaluated.
*/
static inline CC_HINT(always_inline)
-fr_pair_t *_tmpl_cursor_eval(fr_dlist_head_t *list_head, fr_pair_t *curr, tmpl_cursor_ctx_t *cc)
+fr_pair_t *_tmpl_cursor_eval(fr_dlist_head_t *list_head, fr_pair_t *curr, tmpl_pair_cursor_ctx_t *cc)
{
tmpl_attr_t const *ar;
tmpl_cursor_nested_t *ns;
}
static inline CC_HINT(always_inline)
-void _tmpl_pair_cursor_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_cursor_ctx_t *cc)
+void _tmpl_pair_cursor_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list, tmpl_attr_t const *ar, tmpl_pair_cursor_ctx_t *cc)
{
if (fr_dlist_next(&cc->vpt->data.attribute.ar, ar)) switch (ar->ar_da->type) {
case FR_TYPE_TLV:
static void *_tmpl_cursor_next(fr_dlist_head_t *list, void *curr, void *uctx)
{
- tmpl_cursor_ctx_t *cc = uctx;
+ tmpl_pair_cursor_ctx_t *cc = uctx;
tmpl_t const *vpt = cc->vpt;
fr_pair_t *vp;
*
* @see tmpl_cursor_next
*/
-fr_pair_t *tmpl_pair_cursor_init(int *err, TALLOC_CTX *ctx, tmpl_cursor_ctx_t *cc,
+fr_pair_t *tmpl_pair_cursor_init(int *err, TALLOC_CTX *ctx, tmpl_pair_cursor_ctx_t *cc,
fr_dcursor_t *cursor, request_t *request, tmpl_t const *vpt)
{
fr_pair_t *vp = NULL;
/*
* Initialise the temporary cursor context
*/
- *cc = (tmpl_cursor_ctx_t){
+ *cc = (tmpl_pair_cursor_ctx_t){
.vpt = vpt,
.ctx = ctx,
.request = request,
/** Clear any temporary state allocations
*
*/
-void tmpl_pair_cursor_clear(tmpl_cursor_ctx_t *cc)
+void tmpl_pair_cursor_clear(tmpl_pair_cursor_ctx_t *cc)
{
if (!fr_dlist_num_elements(&cc->nested)) return;/* Help simplify dealing with unused cursor ctxs */
{
fr_pair_t *vp;
fr_dcursor_t from;
- tmpl_cursor_ctx_t cc;
+ tmpl_pair_cursor_ctx_t cc;
TMPL_VERIFY(vpt);
{
fr_pair_t *vp;
fr_dcursor_t from;
- tmpl_cursor_ctx_t cc;
+ tmpl_pair_cursor_ctx_t cc;
TMPL_VERIFY(vpt);
int tmpl_find_vp(fr_pair_t **out, request_t *request, tmpl_t const *vpt)
{
fr_dcursor_t cursor;
- tmpl_cursor_ctx_t cc;
+ tmpl_pair_cursor_ctx_t cc;
fr_pair_t *vp;
int err;
int tmpl_find_or_add_vp(fr_pair_t **out, request_t *request, tmpl_t const *vpt)
{
fr_dcursor_t cursor;
- tmpl_cursor_ctx_t cc;
+ tmpl_pair_cursor_ctx_t cc;
fr_pair_t *vp;
int err;
TALLOC_CTX *list_ctx = NULL;
- tmpl_cursor_ctx_t cc;
+ tmpl_pair_cursor_ctx_t cc;
tmpl_cursor_nested_t *ns = NULL;
tmpl_request_t *rr = NULL;
/*
* Initialise the temporary cursor context
*/
- cc = (tmpl_cursor_ctx_t){
+ cc = (tmpl_pair_cursor_ctx_t){
.vpt = vpt,
.ctx = ctx,
.request = request,