]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
more "squash nested names"
authorAlan T. DeKok <aland@freeradius.org>
Thu, 15 Jan 2026 16:38:48 +0000 (11:38 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 15 Jan 2026 17:20:14 +0000 (12:20 -0500)
add it to more code, and correct the output for all code paths.

src/lib/server/log.c
src/lib/unlang/edit.c
src/lib/unlang/xlat_builtin.c
src/lib/util/pair_print.c

index 28926b0323c42ec16bad1580705e4ae56001ba40..d011ea8ab02a2e6c8a13dd7054e0eae9823af013 100644 (file)
@@ -779,7 +779,6 @@ static inline CC_HINT(always_inline) fr_sbuff_t *log_request_oid_buff(void)
 void log_request_pair(fr_log_lvl_t lvl, request_t *request,
                      fr_pair_t const *parent, fr_pair_t const *vp, char const *prefix)
 {
-       fr_dict_attr_t const    *parent_da = NULL;
        fr_sbuff_t              *oid_buff;
        char const              *name;
 
@@ -791,23 +790,20 @@ void log_request_pair(fr_log_lvl_t lvl, request_t *request,
 
        oid_buff = log_request_oid_buff();
 
-       if (parent && (parent->vp_type != FR_TYPE_GROUP)) parent_da = parent->da;
-       if (fr_dict_attr_oid_print(oid_buff, parent_da, vp->da, false) <= 0) return;
+       if (fr_pair_print_name(oid_buff, parent ? parent->da : NULL, &vp) <= 0) return;
 
        /*
         *      Recursively print grouped attributes.
         */
        switch (vp->vp_type) {
        case FR_TYPE_STRUCTURAL:
-               RDEBUGX(lvl, "%s%pV {", prefix ? prefix : "",
-                       fr_box_strvalue_len(fr_sbuff_start(oid_buff), fr_sbuff_used(oid_buff)));
+               RDEBUGX(lvl, "%s%s{", prefix ? prefix : "", fr_sbuff_start(oid_buff));
                log_request_pair_list(lvl, request, vp, &vp->vp_group, NULL);
                RDEBUGX(lvl, "}");
                break;
 
        case FR_TYPE_QUOTED:
-               RDEBUGX(lvl, "%s%pV = \"%pV\"", prefix ? prefix : "",
-                       fr_box_strvalue_len(fr_sbuff_start(oid_buff), fr_sbuff_used(oid_buff)),
+               RDEBUGX(lvl, "%s%s\"%pV\"", prefix ? prefix : "", fr_sbuff_start(oid_buff),
                        &vp->data);
                break;
 
@@ -818,8 +814,7 @@ void log_request_pair(fr_log_lvl_t lvl, request_t *request,
                 *      Manually add enum prefix when printing.
                 */
                if ((name = fr_value_box_enum_name(&vp->data)) != NULL) {
-                       RDEBUGX(lvl, "%s%pV = ::%s", prefix ? prefix : "",
-                               fr_box_strvalue_len(fr_sbuff_start(oid_buff), fr_sbuff_used(oid_buff)),
+                       RDEBUGX(lvl, "%s::%s", prefix ? prefix : "", fr_sbuff_start(oid_buff),
                                name);
                        break;
                }
index e8098556336d48b52732fee46cc3bceb4a076bb8..f16aebbc8ebd0a58a3c77aa741257d7c9492a96b 100644 (file)
@@ -231,7 +231,6 @@ static void edit_debug_attr_vp(request_t *request, fr_pair_t const *vp, map_t co
                }
        } else {
                size_t slen;
-               char const *name;
                fr_sbuff_t sbuff;
                char buffer[1024];
 
@@ -242,16 +241,14 @@ static void edit_debug_attr_vp(request_t *request, fr_pair_t const *vp, map_t co
                 */
                if (!RDEBUG_ENABLED3) {
                        slen = fr_pair_print_name(&sbuff, NULL, &vp);
-                       if (slen <= 0) return;
-                       name = buffer;
-
                } else {
-                       name = vp->da->name;
+                       slen = fr_sbuff_in_sprintf(&sbuff, "%s %s ", vp->da->name, fr_tokens[vp->op]);
                }
+               if (slen <= 0) return;
 
                switch (vp->vp_type) {
                case FR_TYPE_STRUCTURAL:
-                        RDEBUG2("%s = {", name);
+                        RDEBUG2("%s{", buffer);
                        RINDENT();
                        edit_debug_attr_list(request, &vp->vp_group, NULL);
                        REXDENT();
@@ -260,7 +257,7 @@ static void edit_debug_attr_vp(request_t *request, fr_pair_t const *vp, map_t co
 
                default:
                        if (fr_pair_print_value_quoted(&sbuff, vp, T_DOUBLE_QUOTED_STRING) <= 0) return;
-                       RDEBUG2("%s", fr_sbuff_start(&sbuff));
+                       RDEBUG2("%s", buffer);
                        break;
                }
        }
index 02629f5a33f6a0f18e3f0f289858adb6f97ebec8..843bab79fda6d574cf7972f890c3d9cd58e3af48 100644 (file)
@@ -134,24 +134,24 @@ static void xlat_debug_attr_vp(request_t *request, fr_pair_t const *vp)
        fr_table_num_ordered_t const    *type;
        size_t                          i;
        ssize_t                         slen;
-       char const                      *name;
+       fr_sbuff_t                      sbuff;
        char                            buffer[1024];
 
+       sbuff = FR_SBUFF_OUT(buffer, sizeof(buffer));
+
        /*
         *      Squash the names down if necessary.
         */
        if (!RDEBUG_ENABLED3) {
-               slen = fr_pair_print_name(&FR_SBUFF_OUT(buffer, sizeof(buffer)), NULL, &vp);
-               if (slen <= 0) return;
-               name = buffer;
-
+               slen = fr_pair_print_name(&sbuff, NULL, &vp);
        } else {
-               name = vp->da->name;
+               slen = fr_sbuff_in_sprintf(&sbuff, "%s %s ", vp->da->name, fr_tokens[vp->op]);
        }
+       if (slen <= 0) return;
 
        switch (vp->vp_type) {
        case FR_TYPE_STRUCTURAL:
-               RIDEBUG2("%s = {", name);
+               RIDEBUG2("%s{", buffer);
                RINDENT();
                xlat_debug_attr_list(request, &vp->vp_group);
                REXDENT();
@@ -159,7 +159,8 @@ static void xlat_debug_attr_vp(request_t *request, fr_pair_t const *vp)
                break;
 
        default:
-               RIDEBUG2("%s = %pV", name, &vp->data);
+               if (fr_pair_print_value_quoted(&sbuff, vp, T_DOUBLE_QUOTED_STRING) <= 0) return;
+               RIDEBUG2("%s", buffer);
        }
 
        if (!RDEBUG_ENABLED3) return;
index 2cb91a1635502a1735bdcff5436d416c70f804bc..a9d56d075af189c4ac9cc2ededc7284061c68130 100644 (file)
@@ -357,7 +357,7 @@ static void fr_pair_list_log_sbuff(fr_log_t const *log, int lvl, fr_pair_t const
                 */
                switch (child->vp_type) {
                case FR_TYPE_STRUCTURAL:
-                       fr_log(log, L_DBG, file, line, "%*s%*s {", lvl * 2, "",
+                       fr_log(log, L_DBG, file, line, "%*s%*s{", lvl * 2, "",
                               (int) fr_sbuff_used(sbuff), fr_sbuff_start(sbuff));
                        _fr_pair_list_log(log, lvl + 1, child, &child->vp_group, file, line);
                        fr_log(log, L_DBG, file, line, "%*s}", lvl * 2, "");
@@ -410,13 +410,13 @@ static void fr_pair_list_debug_sbuff(FILE *fp, int lvl, fr_pair_t const *parent,
                 */
                switch (child->vp_type) {
                case FR_TYPE_STRUCTURAL:
-                       fprintf(fp, "%*s%*s {\n", lvl * 2, "", (int) fr_sbuff_used(sbuff), fr_sbuff_start(sbuff));
+                       fprintf(fp, "%*s%*s{\n", lvl * 2, "", (int) fr_sbuff_used(sbuff), fr_sbuff_start(sbuff));
                        _fr_pair_list_debug(fp, lvl + 1, child, &child->vp_group);
                        fprintf(fp, "%*s}\n", lvl * 2, "");
                        break;
 
                default:
-                       if (fr_value_box_print_quoted(sbuff, &child->data, T_DOUBLE_QUOTED_STRING)< 0) break;
+                       if (fr_value_box_print_quoted(sbuff, &child->data, T_DOUBLE_QUOTED_STRING) < 0) break;
 
                        fprintf(fp, "%*s%*s\n", lvl * 2, "", (int) fr_sbuff_used(sbuff), fr_sbuff_start(sbuff));
                }