* - 0 on success.
* - -1 on failure.
*/
-int xlat_fmt_to_cursor(TALLOC_CTX *ctx, fr_cursor_t **out,
+int xlat_fmt_to_cursor(TALLOC_CTX *ctx, fr_dcursor_t **out,
bool *tainted, request_t *request, char const *fmt)
{
tmpl_t *vpt;
fr_pair_t *vp;
- fr_cursor_t *cursor;
+ fr_dcursor_t *cursor;
tmpl_cursor_ctx_t cc;
fr_skip_whitespace(fmt); /* Not binary safe, but attr refs should only contain printable chars */
return -1;
}
- MEM(cursor = talloc(ctx, fr_cursor_t));
+ MEM(cursor = talloc(ctx, fr_dcursor_t));
talloc_steal(cursor, vpt);
vp = tmpl_cursor_init(NULL, NULL, &cc, cursor, request, vpt);
tmpl_cursor_clear(&cc);
*tainted = true;
break;
}
- } while ((vp = fr_cursor_next(cursor)));
+ } while ((vp = fr_dcursor_next(cursor)));
- fr_cursor_head(cursor); /* Reset */
+ fr_dcursor_head(cursor); /* Reset */
return 0;
}
request_t *request, char const *fmt)
{
fr_pair_t *vp;
- fr_cursor_t cursor;
+ fr_dcursor_t cursor;
tmpl_cursor_ctx_t cc;
tmpl_t *vpt;
RINDENT();
for (vp = tmpl_cursor_init(NULL, NULL, &cc, &cursor, request, vpt);
vp;
- vp = fr_cursor_next(&cursor)) {
+ vp = fr_dcursor_next(&cursor)) {
fr_dict_vendor_t const *vendor;
fr_table_num_ordered_t const *type;
size_t i;
switch (vp->da->type) {
case FR_TYPE_STRUCTURAL:
- if (!vp->vp_group) {
+ if (fr_pair_list_empty(&vp->vp_group)) {
RIDEBUG2("&%s.%s %s {}",
fr_table_str_by_value(pair_list_table, tmpl_list(vpt), "<INVALID>"),
vp->da->name,
{
tmpl_t *vpt = NULL;
fr_pair_t *vp;
- fr_cursor_t cursor, to_merge;
+ fr_dcursor_t cursor, to_merge;
tmpl_cursor_ctx_t cc;
fr_pair_list_t head;
ssize_t slen;
delim = *p;
- fr_cursor_init(&to_merge, &head);
+ fr_dcursor_init(&to_merge, &head);
vp = tmpl_cursor_init(NULL, NULL, &cc, &cursor, request, vpt);
while (vp) {
fr_assert(0);
}
- fr_cursor_append(&to_merge, nvp);
+ fr_dcursor_append(&to_merge, nvp);
p = q + 1; /* next */
/*
* Remove the unexploded version
*/
- vp = fr_cursor_remove(&cursor);
+ vp = fr_dcursor_remove(&cursor);
talloc_free(vp);
/*
* Remove sets cursor->current to
* the next iter value.
*/
- vp = fr_cursor_current(&cursor);
+ vp = fr_dcursor_current(&cursor);
continue;
next:
- vp = fr_cursor_next(&cursor);
+ vp = fr_dcursor_next(&cursor);
}
tmpl_cursor_clear(&cc);
- fr_cursor_head(&to_merge);
- fr_cursor_merge(&cursor, &to_merge);
+ fr_dcursor_head(&to_merge);
+ fr_dcursor_merge(&cursor, &to_merge);
talloc_free(vpt);
return snprintf(*out, outlen, "%i", count);
fr_value_box_t **in)
{
tmpl_t *vpt = NULL;
- fr_cursor_t cursor;
+ fr_dcursor_t cursor;
tmpl_cursor_ctx_t cc;
fr_value_box_t *vb;
for (vp = tmpl_cursor_init(NULL, NULL, &cc, &cursor, request, vpt);
vp;
- vp = fr_cursor_next(&cursor)) {
+ vp = fr_dcursor_next(&cursor)) {
fr_token_t op = vp->op;
char *buff;