From: Arran Cudbard-Bell Date: Sat, 16 May 2015 17:36:39 +0000 (-0400) Subject: Fix tmpl_prints to print lists correctly X-Git-Tag: release_3_0_9~352 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8cff867c28003c321226ddace22c0f1f5da54b2c;p=thirdparty%2Ffreeradius-server.git Fix tmpl_prints to print lists correctly --- diff --git a/src/main/tmpl.c b/src/main/tmpl.c index 6b9a1ab36c6..c54d8476b53 100644 --- a/src/main/tmpl.c +++ b/src/main/tmpl.c @@ -1577,6 +1577,19 @@ size_t tmpl_prints(char *out, size_t outlen, vp_tmpl_t const *vpt, DICT_ATTR con c = '`'; break; + case TMPL_TYPE_LIST: + out[0] = '&'; + if (vpt->tmpl_request == REQUEST_CURRENT) { + snprintf(out + 1, outlen - 1, "%s", + fr_int2str(pair_lists, vpt->tmpl_list, "")); + } else { + snprintf(out + 1, outlen - 1, "%s.%s", + fr_int2str(request_refs, vpt->tmpl_request, ""), + fr_int2str(pair_lists, vpt->tmpl_list, "")); + } + len = strlen(out); + goto attr_inst_tag; + case TMPL_TYPE_ATTR: out[0] = '&'; if (vpt->tmpl_request == REQUEST_CURRENT) { @@ -1597,6 +1610,7 @@ size_t tmpl_prints(char *out, size_t outlen, vp_tmpl_t const *vpt, DICT_ATTR con len = strlen(out); + attr_inst_tag: if ((vpt->tmpl_tag == TAG_ANY) && (vpt->tmpl_num == NUM_ANY)) return len; q = out + len;