]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
...an xlat can yield multiple times
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 28 Jan 2018 22:36:30 +0000 (15:36 -0700)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 28 Jan 2018 23:06:19 +0000 (16:06 -0700)
src/main/xlat_eval.c

index 9eae6f612177e84d143ab910de3141e408516baf..98a7d5fc8e601588be26c580440d98a2c155a388 100644 (file)
@@ -655,13 +655,18 @@ xlat_action_t xlat_frame_eval_resume(TALLOC_CTX *ctx, fr_cursor_t *out,
        if (*result) (void) talloc_list_get_type_abort(*result, fr_value_box_t);
        xa = resume(ctx, out, request, exp->inst, thread_inst->data, result, rctx);
        if (*result) (void) talloc_list_get_type_abort(*result, fr_value_box_t);
+
+       RDEBUG2("EXPAND %%{%s:...}", exp->xlat->name);
        switch (xa) {
        default:
                break;
 
+       case XLAT_ACTION_YIELD:
+               RDEBUG2("   -- YIELD");
+               break;
+
        case XLAT_ACTION_DONE:
                fr_cursor_next(out);            /* Wind to the start of this functions output */
-               RDEBUG2("EXPAND %%{%s:...}", exp->xlat->name);
                RDEBUG2("   --> %pM", fr_cursor_current(out));
                break;