From: Alan T. DeKok Date: Fri, 1 Sep 2023 14:49:32 +0000 (-0400) Subject: add fr_pair_find_or_append_by_da() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=243f540f2e33181b0b278d2b39d8f3e0782d72d8;p=thirdparty%2Ffreeradius-server.git add fr_pair_find_or_append_by_da() it's used a lot more with nested attributes --- diff --git a/src/lib/util/pair.h b/src/lib/util/pair.h index 0f863298362..50bcf3135ee 100644 --- a/src/lib/util/pair.h +++ b/src/lib/util/pair.h @@ -503,6 +503,21 @@ int fr_pair_append_by_da_parent(TALLOC_CTX *ctx, fr_pair_t **out, fr_pair_list_ int fr_pair_update_by_da_parent(fr_pair_t *parent, fr_pair_t **out, fr_dict_attr_t const *da) CC_HINT(nonnull(1,3)); +static inline CC_HINT(nonnull(3,4)) int fr_pair_find_or_append_by_da(TALLOC_CTX *ctx, fr_pair_t **out, fr_pair_list_t *list, + fr_dict_attr_t const *da) +{ + fr_pair_t *vp; + + vp = fr_pair_find_by_da(list, NULL, da); + if (vp) { + *out = vp; + return 0; + } + + return fr_pair_append_by_da(ctx, out, list, da); +} + + int fr_pair_delete_by_da(fr_pair_list_t *head, fr_dict_attr_t const *da) CC_HINT(nonnull); fr_pair_t *fr_pair_delete(fr_pair_list_t *list, fr_pair_t *vp) CC_HINT(nonnull);