]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
catch more types when printing
authorAlan T. DeKok <aland@freeradius.org>
Tue, 1 Feb 2022 16:55:48 +0000 (11:55 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 1 Feb 2022 16:55:48 +0000 (11:55 -0500)
src/lib/unlang/xlat_tokenize.c

index fb224d43813ad4ae22967eefd2acb0f131780f7f..88b8c223de1978f78ab4dbdb1089f9a8fb91e0dd 100644 (file)
@@ -1152,6 +1152,17 @@ static ssize_t xlat_print_node(fr_sbuff_t *out, xlat_exp_t const *head, fr_sbuff
                        FR_SBUFF_RETURN(fr_value_box_print_quoted, out, tmpl_value(node->vpt), node->vpt->quote);
                        goto done;
                }
+               if (tmpl_needs_resolving(node->vpt)) {
+                       if (node->vpt->quote != T_BARE_WORD) {
+                               FR_SBUFF_IN_CHAR_RETURN(out, fr_token_quote[node->vpt->quote]);
+                       }
+                       FR_SBUFF_IN_STRCPY_RETURN(out, node->vpt->name);
+                       goto done;
+               }
+               if (tmpl_is_xlat(node->vpt)) {
+                       xlat_print(out, tmpl_xlat(node->vpt), fr_value_escape_by_quote[node->quote]);
+                       goto done;
+               }
                break;
 
        case XLAT_ONE_LETTER: