Usually it will only find one pair, but the case of list to list means a
whole list is returned.
int rcode = 0;
fr_pair_t *vp = NULL, *n;
fr_pair_list_t found;
- fr_pair_list_t vps;
request_t *context = request;
ssize_t slen;
char *str;
fr_pair_list_init(&found);
- fr_pair_list_init(&vps);
- *out = NULL;
+ fr_pair_list_clear(out);
MAP_VERIFY(map);
if (!fr_cond_assert(map->lhs != NULL)) return -1;
vp->op = T_OP_ADD;
}
- *out = found;
+ fr_tmp_pair_list_move(out, &found);
return 0;
}
goto error;
}
n->op = map->op;
- fr_pair_add(&vps, n);
- *out = vps;
+ fr_pair_add(out, n);
break;
case TMPL_TYPE_UNRESOLVED:
goto error;
}
n->op = map->op;
- fr_pair_add(&vps, n);
- *out = vps;
+ fr_pair_add(out, n);
break;
case TMPL_TYPE_ATTR:
vp->da = tmpl_da(map->lhs);
vp->op = map->op;
}
- *out = found;
+ fr_tmp_pair_list_move(out, &found);
}
break;
}
}
n->op = map->op;
- fr_pair_add(&vps, n);
- *out = vps;
+ fr_pair_add(out, n);
MAP_VERIFY(map);
break;