From: Alan T. DeKok Date: Fri, 7 Jul 2023 18:18:36 +0000 (-0400) Subject: print out structural pairs, too X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c40f5c24be263fd1fd772efe0a299fd4ce53bbb;p=thirdparty%2Ffreeradius-server.git print out structural pairs, too --- diff --git a/src/lib/util/pair.c b/src/lib/util/pair.c index 4d8ee158a73..a3ff2b00089 100644 --- a/src/lib/util/pair.c +++ b/src/lib/util/pair.c @@ -3628,16 +3628,6 @@ void fr_pair_list_afrom_box(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_t cons fr_pair_list_tainted(out); } -/* - * print.c doesn't include pair.h, and doing so causes too many knock-on effects. - */ -void fr_fprintf_pair(FILE *fp, char const *msg, fr_pair_t const *vp) -{ - if (msg) fputs(msg, fp); - - fr_fprintf(fp, "%s %s %pV\n", vp->da->name, fr_tokens[vp->op], &vp->data); -} - static const char spaces[] = " "; static void fprintf_pair_list(FILE *fp, fr_pair_list_t const *list, int depth) @@ -3660,3 +3650,19 @@ void fr_fprintf_pair_list(FILE *fp, fr_pair_list_t const *list) { fprintf_pair_list(fp, list, 0); } + +/* + * print.c doesn't include pair.h, and doing so causes too many knock-on effects. + */ +void fr_fprintf_pair(FILE *fp, char const *msg, fr_pair_t const *vp) +{ + if (msg) fputs(msg, fp); + + if (fr_type_is_leaf(vp->da->type)) { + fr_fprintf(fp, "%s %s %pV\n", vp->da->name, fr_tokens[vp->op], &vp->data); + } else { + fprintf(fp, "%s = {\n", vp->da->name); + fprintf_pair_list(fp, &vp->vp_group, 1); + fprintf(fp, "}\n"); + } +}