add it to more code, and correct the output for all code paths.
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;
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;
* 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;
}
}
} else {
size_t slen;
- char const *name;
fr_sbuff_t sbuff;
char buffer[1024];
*/
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();
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;
}
}
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();
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;
*/
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, "");
*/
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));
}