* - 0 if we allocated a new attribute.
* - -1 on failure.
*/
-#define pair_update_request(_attr, _da) fr_pair_update_by_da(request->request_ctx, _attr, _da, 0)
+#define pair_update_request(_attr, _da) fr_pair_update_by_da(request->request_ctx, _attr, _da)
/** Return or allocate a fr_pair_t in the reply list
*
* - 0 if we allocated a new attribute.
* - -1 on failure.
*/
-#define pair_update_reply(_attr, _da) fr_pair_update_by_da(request->reply_ctx, _attr, _da, 0)
+#define pair_update_reply(_attr, _da) fr_pair_update_by_da(request->reply_ctx, _attr, _da)
/** Return or allocate a fr_pair_t in the control list
*
* - 0 if we allocated a new attribute.
* - -1 on failure.
*/
-#define pair_update_control(_attr, _da) fr_pair_update_by_da(request->control_ctx, _attr, _da, 0)
+#define pair_update_control(_attr, _da) fr_pair_update_by_da(request->control_ctx, _attr, _da)
/** Return or allocate a fr_pair_t in the session_state list
*
* - 0 if we allocated a new attribute.
* - -1 on failure.
*/
-#define pair_update_session_state(_attr, _da) fr_pair_update_by_da(request->session_state_ctx, _attr, _da, 0)
+#define pair_update_session_state(_attr, _da) fr_pair_update_by_da(request->session_state_ctx, _attr, _da)
/** Delete one or move fr_pair_t in a list
*
* @param[out] out Pair we allocated or found. May be NULL if the caller doesn't
* care about manipulating the fr_pair_t.
* @param[in] da of attribute to locate or alloc.
- * @param[in] n update the n'th instance of this da.
- * Note: If we can't find the n'th instance the attribute created
- * won't necessarily be at index n. So use cases for this are
- * limited .
* @return
* - 1 if attribute already existed.
* - 0 if we allocated a new attribute.
* - -1 on failure.
*/
int fr_pair_update_by_da(fr_pair_t *parent, fr_pair_t **out,
- fr_dict_attr_t const *da, unsigned int n)
+ fr_dict_attr_t const *da)
{
fr_pair_t *vp;
- vp = fr_pair_find_by_da_idx(&parent->vp_group, da, n);
+ vp = fr_pair_find_by_da_idx(&parent->vp_group, da, 0);
if (vp) {
PAIR_VERIFY_WITH_LIST(&parent->vp_group, vp);
if (out) *out = vp;
fr_dict_attr_t const *da) CC_HINT(nonnull(3,4));
int fr_pair_update_by_da(fr_pair_t *parent, fr_pair_t **out,
- fr_dict_attr_t const *da, unsigned int n) CC_HINT(nonnull(1,3));
+ fr_dict_attr_t const *da) CC_HINT(nonnull(1,3));
int fr_pair_delete_by_da(fr_pair_list_t *head, fr_dict_attr_t const *da) CC_HINT(nonnull);
TEST_CHECK((group = fr_pair_afrom_da(autofree, fr_dict_attr_test_group)) != NULL);
TEST_CASE("Update Add using fr_pair_prepend_by_da()");
- TEST_CHECK(fr_pair_update_by_da(group, &vp, fr_dict_attr_test_uint32, 0) == 0); /* attribute doesn't exist in this group */
+ TEST_CHECK(fr_pair_update_by_da(group, &vp, fr_dict_attr_test_uint32) == 0); /* attribute doesn't exist in this group */
vp->vp_uint32 = 54321;
TEST_CASE("Expected fr_dict_attr_test_uint32 (vp->vp_uint32 == 54321)");