From: Alan T. DeKok Date: Tue, 4 Jul 2023 14:27:13 +0000 (-0400) Subject: hack to allow nested attributes X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65585c435a6ded6bc6dfcd9c3e14030c8d2ff970;p=thirdparty%2Ffreeradius-server.git hack to allow nested attributes --- diff --git a/src/lib/server/password.c b/src/lib/server/password.c index e282b0eb9a3..cb0347ea8ed 100644 --- a/src/lib/server/password.c +++ b/src/lib/server/password.c @@ -965,6 +965,7 @@ fr_pair_t *password_find(bool *ephemeral, TALLOC_CTX *ctx, request_t *request, { fr_dcursor_t cursor; fr_pair_t *known_good; + fr_pair_t *password_tlv; if (fr_pair_find_by_da(&request->control_pairs, NULL, attr_user) != NULL) { RWDEBUG("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); @@ -975,7 +976,17 @@ fr_pair_t *password_find(bool *ephemeral, TALLOC_CTX *ctx, request_t *request, RWDEBUG("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); } - for (known_good = fr_pair_dcursor_by_ancestor_init(&cursor, &request->control_pairs, attr_root); + /* + * Allow nested (or not); + */ + password_tlv = fr_pair_find_by_da(&request->control_pairs, NULL, attr_root); + if (!password_tlv) { + known_good = fr_pair_dcursor_by_ancestor_init(&cursor, &request->control_pairs, attr_root); + } else { + known_good = fr_pair_dcursor_init(&cursor, &password_tlv->vp_group); + } + + for ( /* nothing */; known_good; known_good = fr_dcursor_next(&cursor)) { password_info_t *info;