]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
unlang_register() no longer needs a type argument
authorAlan T. DeKok <aland@freeradius.org>
Thu, 3 Jul 2025 19:02:37 +0000 (15:02 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 4 Jul 2025 15:20:45 +0000 (11:20 -0400)
the type is now in the unlang_op_t.  And even that will be removed.

also reformat for consistency.

and add unlang_t size and name for each instruction

26 files changed:
src/lib/unlang/base.c
src/lib/unlang/call.c
src/lib/unlang/caller.c
src/lib/unlang/catch.c
src/lib/unlang/child_request.c
src/lib/unlang/condition.c
src/lib/unlang/detach.c
src/lib/unlang/edit.c
src/lib/unlang/finally.c
src/lib/unlang/foreach.c
src/lib/unlang/function.c
src/lib/unlang/group.c
src/lib/unlang/limit.c
src/lib/unlang/load_balance.c
src/lib/unlang/map.c
src/lib/unlang/module.c
src/lib/unlang/parallel.c
src/lib/unlang/return.c
src/lib/unlang/subrequest.c
src/lib/unlang/switch.c
src/lib/unlang/timeout.c
src/lib/unlang/tmpl.c
src/lib/unlang/transaction.c
src/lib/unlang/try.c
src/lib/unlang/unlang_priv.h
src/lib/unlang/xlat.c

index 415eaf692edf364dd1112620a912554ae87ba1d8..7358bf696313a5cbe3514f88a9ebf13fc5c66cd8 100644 (file)
@@ -51,31 +51,21 @@ fr_hash_table_t *unlang_op_table = NULL;
  * functionality can be in their own source files, and we don't need to include
  * supporting types and function declarations in the interpreter.
  *
- * Later, this could potentially be used to register custom operations for modules.
- *
- * The reason why there's a function instead of accessing the unlang_op array
- * directly, is because 'type' really needs to go away, as needing to add ops to
- * the unlang_type_t enum breaks the pluggable module model. If there's no
- * explicit/consistent type values we need to enumerate the operations ourselves.
- *
- * @param[in] type             Operation identifier.  Used to map compiled unlang code
- *                             to operations.
- * @param[in] op               unlang_op to register.
+ * @param[in] op               #unlang_op_t to register.
  */
-void unlang_register(int type, unlang_op_t *op)
+void unlang_register(unlang_op_t *op)
 {
-       fr_assert(type < UNLANG_TYPE_MAX);      /* Unlang max isn't a valid type */
+       fr_assert(op->type < UNLANG_TYPE_MAX);  /* Unlang max isn't a valid type */
        fr_assert(unlang_op_table != NULL);
-       fr_assert(op->type == (unlang_type_t) type);
 
-       memcpy(&unlang_ops[type], op, sizeof(unlang_ops[type]));
+       memcpy(&unlang_ops[op->type], op, sizeof(unlang_ops[op->type]));
 
        /*
         *      Some instruction types are internal, and are not real keywords.
         */
        if ((op->flag & UNLANG_OP_FLAG_INTERNAL) != 0) return;
 
-       MEM(fr_hash_table_insert(unlang_op_table, &unlang_ops[type]));
+       MEM(fr_hash_table_insert(unlang_op_table, &unlang_ops[op->type]));
 }
 
 static TALLOC_CTX *unlang_ctx = NULL;
index aef7a3a5c747b746eea19676d438fa1ebfbad9a4..e0248321391729faf892e31958620fd596520db3 100644 (file)
@@ -323,17 +323,15 @@ static unlang_t *unlang_compile_call(unlang_t *parent, unlang_compile_ctx_t *unl
 
 void unlang_call_init(void)
 {
-       unlang_register(UNLANG_TYPE_CALL,
-                          &(unlang_op_t){
-                               .name           = "call",
-                               .flag           = UNLANG_OP_FLAG_RCODE_SET | UNLANG_OP_FLAG_DEBUG_BRACES,
-                               .type           = UNLANG_TYPE_CALL,
+       unlang_register(&(unlang_op_t){
+                       .name           = "call",
+                       .flag           = UNLANG_OP_FLAG_RCODE_SET | UNLANG_OP_FLAG_DEBUG_BRACES,
+                       .type           = UNLANG_TYPE_CALL,
 
-                               .compile        = unlang_compile_call,
-                               .interpret      = unlang_call_frame_init,
+                       .compile        = unlang_compile_call,
+                       .interpret      = unlang_call_frame_init,
 
-
-                               .unlang_size    = sizeof(unlang_call_t),
-                               .unlang_name    = "unlang_call_t",
-                          });
+                       .unlang_size    = sizeof(unlang_call_t),
+                       .unlang_name    = "unlang_call_t",
+               });
 }
index ad21042c8817dede93c1f01319236ab8d29f21b4..30e187d22cc5ce7f386ff5b5dd5e75357cacce50 100644 (file)
@@ -141,16 +141,15 @@ static unlang_t *unlang_compile_caller(unlang_t *parent, unlang_compile_ctx_t *u
 
 void unlang_caller_init(void)
 {
-       unlang_register(UNLANG_TYPE_CALLER,
-                          &(unlang_op_t){
-                               .name = "caller",
-                               .type = UNLANG_TYPE_CALLER,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_caller,
-                               .interpret = unlang_caller,
-
-                               .unlang_size = sizeof(unlang_caller_t),
-                               .unlang_name = "unlang_caller_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "caller",
+                       .type = UNLANG_TYPE_CALLER,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_caller,
+                       .interpret = unlang_caller,
+
+                       .unlang_size = sizeof(unlang_caller_t),
+                       .unlang_name = "unlang_caller_t",
+               });
 }
index 5be1865910758b07de91b27c0314586066fce466..2d73c9cfe146050f02ca2d63e1df7d8cb2565aac 100644 (file)
@@ -195,16 +195,15 @@ static unlang_t *unlang_compile_catch(unlang_t *parent, unlang_compile_ctx_t *un
 
 void unlang_catch_init(void)
 {
-       unlang_register(UNLANG_TYPE_CATCH,
-                          &(unlang_op_t){
-                               .name = "catch",
-                               .type = UNLANG_TYPE_CATCH,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_catch,
-                               .interpret = unlang_catch,
-
-                               .unlang_size = sizeof(unlang_catch_t),
-                               .unlang_name = "unlang_catch_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "catch",
+                       .type = UNLANG_TYPE_CATCH,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_catch,
+                       .interpret = unlang_catch,
+
+                       .unlang_size = sizeof(unlang_catch_t),
+                       .unlang_name = "unlang_catch_t",
+               });
 }
index 1677ad4f272a8a9f4ee424d1d7263a592f1de25f..2236e48d67ec059263e88d7f2ae21f6f7ae61beb 100644 (file)
@@ -278,30 +278,29 @@ int unlang_child_request_init(TALLOC_CTX *ctx, unlang_child_request_t *out, requ
 
 int unlang_child_request_op_init(void)
 {
-       unlang_register(UNLANG_TYPE_CHILD_REQUEST,
-                       &(unlang_op_t){
-                               .name = "child-request",
-                               .type = UNLANG_TYPE_CHILD_REQUEST,
-
-                               /*
-                                *      Frame can't be cancelled, because children need to
-                                *      write out status to the parent.  If we don't do this,
-                                *      then all children must be detachable and must detach
-                                *      so they don't try and write out status to a "done"
-                                *      parent.
-                                *
-                                *      It's easier to allow the child/parent relationship
-                                *      to end normally so that non-detachable requests are
-                                *      guaranteed the parent still exists.
-                                */
-                               .flag = UNLANG_OP_FLAG_NO_FORCE_UNWIND | UNLANG_OP_FLAG_INTERNAL,
-
-                               .interpret = unlang_child_request_done,
-                               .signal = unlang_child_request_signal,
-
-                               .frame_state_size = sizeof(unlang_frame_state_child_request_t),
-                               .frame_state_type = "unlang_frame_state_child_request_t"
-                       });
+       unlang_register(&(unlang_op_t){
+                       .name = "child-request",
+                       .type = UNLANG_TYPE_CHILD_REQUEST,
+
+                       /*
+                        *      Frame can't be cancelled, because children need to
+                        *      write out status to the parent.  If we don't do this,
+                        *      then all children must be detachable and must detach
+                        *      so they don't try and write out status to a "done"
+                        *      parent.
+                        *
+                        *      It's easier to allow the child/parent relationship
+                        *      to end normally so that non-detachable requests are
+                        *      guaranteed the parent still exists.
+                        */
+                       .flag = UNLANG_OP_FLAG_NO_FORCE_UNWIND | UNLANG_OP_FLAG_INTERNAL,
+
+                       .interpret = unlang_child_request_done,
+                       .signal = unlang_child_request_signal,
+
+                       .frame_state_size = sizeof(unlang_frame_state_child_request_t),
+                       .frame_state_type = "unlang_frame_state_child_request_t"
+               });
 
        return 0;
 }
index 206cf2a5cb75381e99d1d9dcce1e80b3aaf91603..bccda50f6ba70de66f8134cb3e50dce15be0d34a 100644 (file)
@@ -265,52 +265,49 @@ static unlang_t *unlang_compile_else(unlang_t *parent, unlang_compile_ctx_t *unl
 
 void unlang_condition_init(void)
 {
-       unlang_register(UNLANG_TYPE_IF,
-                          &(unlang_op_t){
-                               .name = "if",
-                               .type = UNLANG_TYPE_IF,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_if,
-                               .interpret = unlang_if,
-
-                               .unlang_size = sizeof(unlang_cond_t),
-                               .unlang_name = "unlang_cond_t",
-                               .pool_headers = 1 + 1 + (TMPL_POOL_DEF_HEADERS * 2),
-                               .pool_len = sizeof(map_t) + (TMPL_POOL_DEF_LEN * 2),
-
-                               .frame_state_size = sizeof(unlang_frame_state_cond_t),
-                               .frame_state_type = "unlang_frame_state_cond_t",
-                          });
-
-       unlang_register(UNLANG_TYPE_ELSE,
-                          &(unlang_op_t){
-                               .name = "else",
-                               .type = UNLANG_TYPE_ELSE,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_else,
-                               .interpret = unlang_group,
-
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t" 
-                  });
-
-       unlang_register(UNLANG_TYPE_ELSIF,
-                          &(unlang_op_t){
-                               .name = "elsif",
-                               .type = UNLANG_TYPE_ELSIF,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_elsif,
-                               .interpret = unlang_if,
-
-                               .unlang_size = sizeof(unlang_cond_t),
-                               .unlang_name = "unlang_cond_t",
-                               .pool_headers = 1 + 1 + (TMPL_POOL_DEF_HEADERS * 2),
-                               .pool_len = sizeof(map_t) + (TMPL_POOL_DEF_LEN * 2),
-
-                               .frame_state_size = sizeof(unlang_frame_state_cond_t),
-                               .frame_state_type = "unlang_frame_state_cond_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "if",
+                       .type = UNLANG_TYPE_IF,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_if,
+                       .interpret = unlang_if,
+
+                       .unlang_size = sizeof(unlang_cond_t),
+                       .unlang_name = "unlang_cond_t",
+                       .pool_headers = 1 + 1 + (TMPL_POOL_DEF_HEADERS * 2),
+                       .pool_len = sizeof(map_t) + (TMPL_POOL_DEF_LEN * 2),
+
+                       .frame_state_size = sizeof(unlang_frame_state_cond_t),
+                       .frame_state_type = "unlang_frame_state_cond_t",
+               });
+
+       unlang_register(&(unlang_op_t){
+                       .name = "else",
+                       .type = UNLANG_TYPE_ELSE,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_else,
+                       .interpret = unlang_group,
+
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t" 
+               });
+
+       unlang_register(&(unlang_op_t){
+                       .name = "elsif",
+                       .type = UNLANG_TYPE_ELSIF,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_elsif,
+                       .interpret = unlang_if,
+
+                       .unlang_size = sizeof(unlang_cond_t),
+                       .unlang_name = "unlang_cond_t",
+                       .pool_headers = 1 + 1 + (TMPL_POOL_DEF_HEADERS * 2),
+                       .pool_len = sizeof(map_t) + (TMPL_POOL_DEF_LEN * 2),
+
+                       .frame_state_size = sizeof(unlang_frame_state_cond_t),
+                       .frame_state_type = "unlang_frame_state_cond_t",
+               });
 }
index 76c112e93dae5ec5f56893b66f0c7a0d42bc41f2..374320ef33d86d7f95ae366d487a711c1a563ac5 100644 (file)
@@ -81,16 +81,15 @@ static unlang_t *unlang_compile_detach(unlang_t *parent, unlang_compile_ctx_t *u
  */
 void unlang_detach_init(void)
 {
-       unlang_register(UNLANG_TYPE_DETACH,
-                       &(unlang_op_t){
-                               .name = "detach",
-                               .type = UNLANG_TYPE_DETACH,
-                               .flag = UNLANG_OP_FLAG_SINGLE_WORD,
+       unlang_register(&(unlang_op_t){
+                       .name = "detach",
+                       .type = UNLANG_TYPE_DETACH,
+                       .flag = UNLANG_OP_FLAG_SINGLE_WORD,
 
-                               .compile = unlang_compile_detach,
-                               .interpret = unlang_detach,
+                       .compile = unlang_compile_detach,
+                       .interpret = unlang_detach,
 
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t",        
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",        
                });
 }
index 240b9f81c131bfd76abc0e186e8a6aca1b8430f5..5449f18bb46f9f1a19c8194723256a8a8280b3db 100644 (file)
@@ -1760,15 +1760,17 @@ int unlang_edit_push(request_t *request, bool *success, fr_edit_list_t *el, map_
 
 void unlang_edit_init(void)
 {
-       unlang_register(UNLANG_TYPE_EDIT,
-                          &(unlang_op_t){
-                               .name = "edit",
-                               .type = UNLANG_TYPE_EDIT,
-                               .flag = UNLANG_OP_FLAG_INTERNAL,
+       unlang_register(&(unlang_op_t){
+                       .name = "edit",
+                       .type = UNLANG_TYPE_EDIT,
+                       .flag = UNLANG_OP_FLAG_INTERNAL,
 
-                               .interpret = unlang_edit_state_init,
+                       .interpret = unlang_edit_state_init,
 
-                               .frame_state_size = sizeof(unlang_frame_state_edit_t),
-                               .frame_state_type = "unlang_frame_state_edit_t",
-                          });
+                       .unlang_size = sizeof(unlang_edit_t),
+                       .unlang_name = "unlang_edit_t",
+
+                       .frame_state_size = sizeof(unlang_frame_state_edit_t),
+                       .frame_state_type = "unlang_frame_state_edit_t",
+               });
 }
index 000f66c15d90deb0e290df9d964a403c3a0023a2..7c23b8ca43303c1ecf8d7d20e9603e6ce2a87dd5 100644 (file)
@@ -185,21 +185,20 @@ int unlang_finally_push_instruction(request_t *request, void *instruction, fr_ti
 
 void unlang_finally_init(void)
 {
-       unlang_register(UNLANG_TYPE_FINALLY,
-                       &(unlang_op_t){
-                               .name = "finally",
-                               .type = UNLANG_TYPE_FINALLY,
-
-                               .interpret = unlang_finally,
-
-                               /*
-                                 *     No debug braces, the thing
-                                 *     that's pushed in unlang
-                                 *     finally should have braces
-                                 */
-                               .flag = UNLANG_OP_FLAG_NO_FORCE_UNWIND | UNLANG_OP_FLAG_INTERNAL,
-
-                               .frame_state_size = sizeof(unlang_frame_state_finally_t),
-                               .frame_state_type = "unlang_frame_state_finally_t",
-                       });
+       unlang_register(&(unlang_op_t){
+                       .name = "finally",
+                       .type = UNLANG_TYPE_FINALLY,
+
+                       .interpret = unlang_finally,
+
+                       /*
+                        *      No debug braces, the thing
+                        *      that's pushed in unlang
+                        *      finally should have braces
+                        */
+                       .flag = UNLANG_OP_FLAG_NO_FORCE_UNWIND | UNLANG_OP_FLAG_INTERNAL,
+
+                       .frame_state_size = sizeof(unlang_frame_state_finally_t),
+                       .frame_state_type = "unlang_frame_state_finally_t",
+               });
 }
index c02fe49dbd2b1e2ee03e4d1c2f19950818c71039..594b51663c6221e43be7394f59fe9fca676000c6 100644 (file)
@@ -840,45 +840,42 @@ static unlang_t *unlang_compile_continue(unlang_t *parent, unlang_compile_ctx_t
 
 void unlang_foreach_init(void)
 {
-       unlang_register(UNLANG_TYPE_FOREACH,
-                          &(unlang_op_t){
-                               .name = "foreach",
-                               .type = UNLANG_TYPE_FOREACH,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_BREAK_POINT | UNLANG_OP_FLAG_CONTINUE_POINT,
-
-                               .compile = unlang_compile_foreach,
-                               .interpret = unlang_foreach,
-
-                               .unlang_size = sizeof(unlang_foreach_t),
-                               .unlang_name = "unlang_foreach_t",
-
-                               .pool_headers = TMPL_POOL_DEF_HEADERS,
-                               .pool_len = TMPL_POOL_DEF_LEN
-                          });
-
-       unlang_register(UNLANG_TYPE_BREAK,
-                          &(unlang_op_t){
-                               .name = "break",
-                               .type = UNLANG_TYPE_BREAK,
-                               .flag = UNLANG_OP_FLAG_SINGLE_WORD
+       unlang_register(&(unlang_op_t){
+                       .name = "foreach",
+                       .type = UNLANG_TYPE_FOREACH,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_BREAK_POINT | UNLANG_OP_FLAG_CONTINUE_POINT,
+
+                       .compile = unlang_compile_foreach,
+                       .interpret = unlang_foreach,
+
+                       .unlang_size = sizeof(unlang_foreach_t),
+                       .unlang_name = "unlang_foreach_t",
+
+                       .pool_headers = TMPL_POOL_DEF_HEADERS,
+                       .pool_len = TMPL_POOL_DEF_LEN
+               });
+
+       unlang_register(&(unlang_op_t){
+                       .name = "break",
+                       .type = UNLANG_TYPE_BREAK,
+                       .flag = UNLANG_OP_FLAG_SINGLE_WORD
 ,
-                               .compile = unlang_compile_break,
-                               .interpret = unlang_break,
+                       .compile = unlang_compile_break,
+                       .interpret = unlang_break,
 
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t",
-                          });
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",
+               });                             
 
-       unlang_register(UNLANG_TYPE_CONTINUE,
-                          &(unlang_op_t){
-                               .name = "continue",
-                               .type = UNLANG_TYPE_CONTINUE,
-                               .flag = UNLANG_OP_FLAG_SINGLE_WORD,
+       unlang_register(&(unlang_op_t){
+                       .name = "continue",
+                       .type = UNLANG_TYPE_CONTINUE,
+                       .flag = UNLANG_OP_FLAG_SINGLE_WORD,
 
-                               .compile = unlang_compile_continue,
-                               .interpret = unlang_continue,
+                       .compile = unlang_compile_continue,
+                       .interpret = unlang_continue,
 
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t",
-                          });
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",
+               });
 }
index 63c425688b58b6c330ecae6cec7606af9b55b54f..b4ea4a795d817ac19a7be05710011892151371fd 100644 (file)
@@ -579,17 +579,19 @@ static void unlang_function_dump(request_t *request, unlang_stack_frame_t *frame
 
 void unlang_function_init(void)
 {
-       unlang_register(UNLANG_TYPE_FUNCTION,
-                       &(unlang_op_t){
-                               .name = "function",
-                               .type = UNLANG_TYPE_FUNCTION,
-                               .flag = UNLANG_OP_FLAG_RETURN_POINT | UNLANG_OP_FLAG_INTERNAL,
-
-                               .interpret = call_no_result,
-                               .signal = unlang_function_signal,
-                               .dump = unlang_function_dump,
-                               .frame_state_size = sizeof(unlang_frame_state_func_t),
-                               .frame_state_type = "unlang_frame_state_func_t",
-                       });
+       unlang_register(&(unlang_op_t){
+                       .name = "function",
+                       .type = UNLANG_TYPE_FUNCTION,
+                       .flag = UNLANG_OP_FLAG_RETURN_POINT | UNLANG_OP_FLAG_INTERNAL,
 
+                       .interpret = call_no_result,
+                       .signal = unlang_function_signal,
+                       .dump = unlang_function_dump,
+
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",        
+
+                       .frame_state_size = sizeof(unlang_frame_state_func_t),
+                       .frame_state_type = "unlang_frame_state_func_t",
+               });
 }
index f6eb11b915feacf078ae1ab25454a444cb06c00c..a46ae3656fdb5135c290309f51b0210f6d7ace0f 100644 (file)
@@ -70,41 +70,38 @@ static unlang_t *unlang_compile_redundant(unlang_t *parent, unlang_compile_ctx_t
 
 void unlang_group_init(void)
 {
-       unlang_register(UNLANG_TYPE_GROUP,
-                          &(unlang_op_t){
-                               .name = "group",
-                               .type = UNLANG_TYPE_GROUP,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_group,
-                               .interpret = unlang_group,
-
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t",
-                          });
-
-       unlang_register(UNLANG_TYPE_REDUNDANT,
-                          &(unlang_op_t){
-                               .name = "redundant",
-                               .type = UNLANG_TYPE_REDUNDANT,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_redundant,
-                               .interpret = unlang_group,
-
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t",
-                          });
-
-       unlang_register(UNLANG_TYPE_POLICY,
-                          &(unlang_op_t){
-                               .name = "policy",
-                               .type = UNLANG_TYPE_POLICY,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RETURN_POINT,
-
-                               .interpret = unlang_policy,
-
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t",        
-                  });
+       unlang_register(&(unlang_op_t){
+                       .name = "group",
+                       .type = UNLANG_TYPE_GROUP,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_group,
+                       .interpret = unlang_group,
+
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",
+               });
+
+       unlang_register(&(unlang_op_t){
+                       .name = "redundant",
+                       .type = UNLANG_TYPE_REDUNDANT,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_redundant,
+                       .interpret = unlang_group,
+
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",
+               });
+
+       unlang_register(&(unlang_op_t){
+                       .name = "policy",
+                       .type = UNLANG_TYPE_POLICY,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RETURN_POINT | UNLANG_OP_FLAG_INTERNAL,
+
+                       .interpret = unlang_policy,
+
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",        
+               });
 }
index 436aa685c8741f16aa9f5925590a52a6873b8863..5a1291e1da6ac3ca8fb52630126965db7f37592a 100644 (file)
@@ -227,23 +227,22 @@ static unlang_t *unlang_compile_limit(unlang_t *parent, unlang_compile_ctx_t *un
 
 void unlang_limit_init(void)
 {
-       unlang_register(UNLANG_TYPE_LIMIT,
-                          &(unlang_op_t){
-                               .name = "limit",
-                               .type = UNLANG_TYPE_LIMIT,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+       unlang_register(&(unlang_op_t){
+                       .name = "limit",
+                       .type = UNLANG_TYPE_LIMIT,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
 
-                               .compile = unlang_compile_limit,
-                               .interpret = unlang_limit,
-                               .signal = unlang_limit_signal,
+                       .compile = unlang_compile_limit,
+                       .interpret = unlang_limit,
+                       .signal = unlang_limit_signal,
 
-                               .unlang_size = sizeof(unlang_limit_t),
-                               .unlang_name = "unlang_limit_t",
+                       .unlang_size = sizeof(unlang_limit_t),
+                       .unlang_name = "unlang_limit_t",
 
-                               .frame_state_size = sizeof(unlang_frame_state_limit_t),
-                               .frame_state_type = "unlang_frame_state_limit_t",
+                       .frame_state_size = sizeof(unlang_frame_state_limit_t),
+                       .frame_state_type = "unlang_frame_state_limit_t",
 
-                               .thread_inst_size = sizeof(unlang_thread_limit_t),
-                               .thread_inst_type = "unlang_thread_limit_t",
-                          });
+                       .thread_inst_size = sizeof(unlang_thread_limit_t),
+                       .thread_inst_type = "unlang_thread_limit_t",
+               });
 }
index 4f6cc533fdf9cfb55e32d048f0fcc8578daa21ca..94604b7c5521bb22792aea19e4f8fd4fec0bf27d 100644 (file)
@@ -352,35 +352,33 @@ static unlang_t *unlang_compile_redundant_load_balance(unlang_t *parent, unlang_
 
 void unlang_load_balance_init(void)
 {
-       unlang_register(UNLANG_TYPE_LOAD_BALANCE,
-                          &(unlang_op_t){
-                               .name = "load-balance",
-                               .type = UNLANG_TYPE_LOAD_BALANCE,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET,
+       unlang_register(&(unlang_op_t){
+                       .name = "load-balance",
+                       .type = UNLANG_TYPE_LOAD_BALANCE,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET,
 
-                               .compile = unlang_compile_load_balance,
-                               .interpret = unlang_load_balance,
+                       .compile = unlang_compile_load_balance,
+                       .interpret = unlang_load_balance,
 
-                               .unlang_size = sizeof(unlang_load_balance_t),
-                               .unlang_name = "unlang_load_balance_t",
+                       .unlang_size = sizeof(unlang_load_balance_t),
+                       .unlang_name = "unlang_load_balance_t",
 
-                               .frame_state_size = sizeof(unlang_frame_state_redundant_t),
-                               .frame_state_type = "unlang_frame_state_redundant_t",
-                          });
+                       .frame_state_size = sizeof(unlang_frame_state_redundant_t),
+                       .frame_state_type = "unlang_frame_state_redundant_t",
+               });
 
-       unlang_register(UNLANG_TYPE_REDUNDANT_LOAD_BALANCE,
-                          &(unlang_op_t){
-                               .name = "redundant-load-balance",
-                               .type = UNLANG_TYPE_REDUNDANT_LOAD_BALANCE,     
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET,
+       unlang_register(&(unlang_op_t){
+                       .name = "redundant-load-balance",
+                       .type = UNLANG_TYPE_REDUNDANT_LOAD_BALANCE,     
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET,
 
-                               .compile = unlang_compile_redundant_load_balance,
-                               .interpret = unlang_redundant_load_balance,
+                       .compile = unlang_compile_redundant_load_balance,
+                       .interpret = unlang_redundant_load_balance,
 
-                               .unlang_size = sizeof(unlang_load_balance_t),
-                               .unlang_name = "unlang_load_balance_t",
+                       .unlang_size = sizeof(unlang_load_balance_t),
+                       .unlang_name = "unlang_load_balance_t",
 
-                               .frame_state_size = sizeof(unlang_frame_state_redundant_t),
-                               .frame_state_type = "unlang_frame_state_redundant_t",
-                          });
+                       .frame_state_size = sizeof(unlang_frame_state_redundant_t),
+                       .frame_state_type = "unlang_frame_state_redundant_t",
+               });
 }
index 46904a59c347c27b00a37735fb63ed98361a98ad..00b314fdf06bf991d01e74fbe4cf79be2d7e4633 100644 (file)
@@ -1060,32 +1060,30 @@ static unlang_t *unlang_compile_map(unlang_t *parent, unlang_compile_ctx_t *unla
 
 void unlang_map_init(void)
 {
-       unlang_register(UNLANG_TYPE_UPDATE,
-                          &(unlang_op_t){
-                               .name = "update",
-                               .type = UNLANG_TYPE_UPDATE,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_update,
-                               .interpret = unlang_update_state_init,
-
-                               .unlang_size = sizeof(unlang_map_t),
-                               .unlang_name = "unlang_map_t",
-                          });
-
-       unlang_register(UNLANG_TYPE_MAP,
-                          &(unlang_op_t){
-                               .name = "map",
-                               .type = UNLANG_TYPE_MAP,
-                               .flag = UNLANG_OP_FLAG_RCODE_SET,
-
-                               .compile = unlang_compile_map,
-                               .interpret = unlang_map_state_init,
-
-                               .unlang_size = sizeof(unlang_map_t),
-                               .unlang_name = "unlang_map_t",
-
-                               .frame_state_size = sizeof(unlang_frame_state_map_proc_t),
-                               .frame_state_type = "unlang_frame_state_map_proc_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "update",
+                       .type = UNLANG_TYPE_UPDATE,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_update,
+                       .interpret = unlang_update_state_init,
+
+                       .unlang_size = sizeof(unlang_map_t),
+                       .unlang_name = "unlang_map_t",
+               });
+
+       unlang_register(&(unlang_op_t){
+                       .name = "map",
+                       .type = UNLANG_TYPE_MAP,
+                       .flag = UNLANG_OP_FLAG_RCODE_SET,
+
+                       .compile = unlang_compile_map,
+                       .interpret = unlang_map_state_init,
+
+                       .unlang_size = sizeof(unlang_map_t),
+                       .unlang_name = "unlang_map_t",
+
+                       .frame_state_size = sizeof(unlang_frame_state_map_proc_t),
+                       .frame_state_type = "unlang_frame_state_map_proc_t",
+               });
 }
index 08404ef10f42a264b14b828ae3ba20597bfec398..48f24cb643f25902d2fe2364efebc5d0da21a704 100644 (file)
@@ -995,25 +995,27 @@ done:
 
 void unlang_module_init(void)
 {
-       unlang_register(UNLANG_TYPE_MODULE,
-                          &(unlang_op_t){
-                               .name = "module",
-                               .type = UNLANG_TYPE_MODULE,
-
-                               /*
-                                *      - UNLANG_OP_FLAG_RCODE_SET
-                                *        Set request->rcode to be the rcode from the module.
-                                *      - UNLANG_OP_FLAG_RETURN_POINT
-                                *        Set the return point to be the module.
-                                */
-                               .flag = UNLANG_OP_FLAG_RCODE_SET |
-                                       UNLANG_OP_FLAG_RETURN_POINT |
-                                       UNLANG_OP_FLAG_INTERNAL,
-
-                               .interpret = unlang_module,
-                               .signal = unlang_module_signal,
-
-                               .frame_state_size = sizeof(unlang_frame_state_module_t),
-                               .frame_state_type = "unlang_frame_state_module_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "module",
+                       .type = UNLANG_TYPE_MODULE,
+
+                       /*
+                        *      - UNLANG_OP_FLAG_RCODE_SET
+                        *        Set request->rcode to be the rcode from the module.
+                        *      - UNLANG_OP_FLAG_RETURN_POINT
+                        *        Set the return point to be the module.
+                        */
+                       .flag = UNLANG_OP_FLAG_RCODE_SET |
+                               UNLANG_OP_FLAG_RETURN_POINT |
+                               UNLANG_OP_FLAG_INTERNAL,
+
+                       .interpret = unlang_module,
+                       .signal = unlang_module_signal,
+
+                       .unlang_size = sizeof(unlang_module_t),
+                       .unlang_name = "unlang_module_t",
+
+                       .frame_state_size = sizeof(unlang_frame_state_module_t),
+                       .frame_state_type = "unlang_frame_state_module_t",
+               });
 }
index 257f9343d9e9dde90e5cfb6ebf0ed7bf473f5554..d9b279192341e0d10943b1cf9c0321e90b9eb199 100644 (file)
@@ -434,17 +434,16 @@ static unlang_t *unlang_compile_parallel(unlang_t *parent, unlang_compile_ctx_t
 
 void unlang_parallel_init(void)
 {
-       unlang_register(UNLANG_TYPE_PARALLEL,
-                          &(unlang_op_t){
-                               .name = "parallel",
-                               .type = UNLANG_TYPE_PARALLEL,   
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET | UNLANG_OP_FLAG_NO_FORCE_UNWIND,
-
-                               .compile = unlang_compile_parallel,
-                               .interpret = unlang_parallel,
-                               .signal = unlang_parallel_signal,
-
-                               .unlang_size = sizeof(unlang_parallel_t),
-                               .unlang_name = "unlang_parallel_t"
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "parallel",
+                       .type = UNLANG_TYPE_PARALLEL,   
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET | UNLANG_OP_FLAG_NO_FORCE_UNWIND,
+
+                       .compile = unlang_compile_parallel,
+                       .interpret = unlang_parallel,
+                       .signal = unlang_parallel_signal,
+
+                       .unlang_size = sizeof(unlang_parallel_t),
+                       .unlang_name = "unlang_parallel_t"
+               });
 }
index 8fec974e6969b87969752b76393a2d92d082bfc6..198684ac1262b05a8e6c2d89ea8ae70d2ffd6874 100644 (file)
@@ -67,16 +67,15 @@ static unlang_t *unlang_compile_return(unlang_t *parent, unlang_compile_ctx_t *u
 
 void unlang_return_init(void)
 {
-       unlang_register(UNLANG_TYPE_RETURN,
-                          &(unlang_op_t){
-                               .name = "return",
-                               .type = UNLANG_TYPE_RETURN,
-                               .flag = UNLANG_OP_FLAG_SINGLE_WORD,
+       unlang_register(&(unlang_op_t){
+                       .name = "return",
+                       .type = UNLANG_TYPE_RETURN,
+                       .flag = UNLANG_OP_FLAG_SINGLE_WORD,
 
-                               .compile = unlang_compile_return,
-                               .interpret = unlang_return,
+                       .compile = unlang_compile_return,
+                       .interpret = unlang_return,
 
-                               .unlang_size = sizeof(unlang_group_t),
-                               .unlang_name = "unlang_group_t",
-                          });
+                       .unlang_size = sizeof(unlang_group_t),
+                       .unlang_name = "unlang_group_t",
+               });
 }
index c16e629825e1c4138a985f02981a14fbaa443048..5cfa9ba0b8f13e52287a24e1057817d49bdad142 100644 (file)
@@ -813,37 +813,35 @@ get_packet_type:
  */
 int unlang_subrequest_op_init(void)
 {
-       unlang_register(UNLANG_TYPE_SUBREQUEST,
-                       &(unlang_op_t){
-                               .name = "subrequest",
-                               .type = UNLANG_TYPE_SUBREQUEST,
-
-                               /*
-                                *      Frame can't be cancelled, because children need to
-                                *      write out status to the parent.  If we don't do this,
-                                *      then all children must be detachable and must detach
-                                *      so they don't try and write out status to a "done"
-                                *      parent.
-                                *
-                                *      It's easier to allow the child/parent relationship
-                                *      to end normally so that non-detachable requests are
-                                *      guaranteed the parent still exists.
-                                */
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET | UNLANG_OP_FLAG_NO_FORCE_UNWIND,
+       unlang_register(&(unlang_op_t) {
+                       .name = "subrequest",
+                       .type = UNLANG_TYPE_SUBREQUEST,
 
-                               .compile = unlang_compile_subrequest,
-                               .interpret = unlang_subrequest_init,
-                               .signal = unlang_subrequest_signal,
+                       /*
+                        *      Frame can't be cancelled, because children need to
+                        *      write out status to the parent.  If we don't do this,
+                        *      then all children must be detachable and must detach
+                        *      so they don't try and write out status to a "done"
+                        *      parent.
+                        *
+                        *      It's easier to allow the child/parent relationship
+                        *      to end normally so that non-detachable requests are
+                        *      guaranteed the parent still exists.
+                                */
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET | UNLANG_OP_FLAG_NO_FORCE_UNWIND,
 
+                       .compile = unlang_compile_subrequest,
+                       .interpret = unlang_subrequest_init,
+                       .signal = unlang_subrequest_signal,
 
-                               .unlang_size = sizeof(unlang_subrequest_t),
-                               .unlang_name = "unlang_subrequest_t",
-                               .pool_headers = (TMPL_POOL_DEF_HEADERS * 3),
-                               .pool_len = (TMPL_POOL_DEF_LEN * 3),
+                       .unlang_size = sizeof(unlang_subrequest_t),
+                       .unlang_name = "unlang_subrequest_t",
+                       .pool_headers = (TMPL_POOL_DEF_HEADERS * 3),
+                       .pool_len = (TMPL_POOL_DEF_LEN * 3),
 
-                               .frame_state_size = sizeof(unlang_child_request_t),
-                               .frame_state_type = "unlang_child_request_t",
-                       });
+                       .frame_state_size = sizeof(unlang_child_request_t),
+                       .frame_state_type = "unlang_child_request_t",
+               });
 
        if (unlang_child_request_op_init() < 0) return -1;
 
index 64fb3783c224979bcf167269a1f2ede604d66708..8e4d7a381505ff8c0be982acfd0b597e6b68d067 100644 (file)
@@ -521,34 +521,31 @@ static unlang_t *unlang_compile_switch(unlang_t *parent, unlang_compile_ctx_t *u
 
 void unlang_switch_init(void)
 {
-       unlang_register(UNLANG_TYPE_SWITCH,
-                          &(unlang_op_t){
-                               .name = "switch",
-                               .type = UNLANG_TYPE_SWITCH,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+       unlang_register(&(unlang_op_t) {
+                       .name = "switch",
+                       .type = UNLANG_TYPE_SWITCH,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
 
-                               .compile = unlang_compile_switch,
-                               .interpret = unlang_switch,
-                                       
+                       .compile = unlang_compile_switch,
+                       .interpret = unlang_switch,
+                               
+                       .unlang_size = sizeof(unlang_switch_t),
+                       .unlang_name = "unlang_switch_t",
 
-                               .unlang_size = sizeof(unlang_switch_t),
-                               .unlang_name = "unlang_switch_t",
+                       .pool_headers = TMPL_POOL_DEF_HEADERS,
+                       .pool_len = TMPL_POOL_DEF_LEN
+               });
 
-                               .pool_headers = TMPL_POOL_DEF_HEADERS,
-                               .pool_len = TMPL_POOL_DEF_LEN
-                          });
 
+       unlang_register(&(unlang_op_t){
+                       .name = "case",
+                       .type = UNLANG_TYPE_CASE,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_BREAK_POINT,
 
-       unlang_register(UNLANG_TYPE_CASE,
-                          &(unlang_op_t){
-                               .name = "case",
-                               .type = UNLANG_TYPE_CASE,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_BREAK_POINT,
+                       .compile = unlang_compile_case,
+                       .interpret = unlang_case,
 
-                               .compile = unlang_compile_case,
-                               .interpret = unlang_case,
-
-                               .unlang_size = sizeof(unlang_case_t),
-                               .unlang_name = "unlang_case_t",
-                          });
+                       .unlang_size = sizeof(unlang_case_t),
+                       .unlang_name = "unlang_case_t",
+               });
 }
index b93cba8b32e7799f0a8aea0954ad3e5adb8b6969..bdc07ef5282bf445410591536b2900242529c2e9 100644 (file)
@@ -369,20 +369,19 @@ static unlang_t *unlang_compile_timeout(unlang_t *parent, unlang_compile_ctx_t *
 
 void unlang_timeout_init(void)
 {
-       unlang_register(UNLANG_TYPE_TIMEOUT,
-                       &(unlang_op_t){
-                               .name = "timeout",
-                               .type = UNLANG_TYPE_TIMEOUT,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET,
-
-                               .compile = unlang_compile_timeout,
-                               .interpret = unlang_timeout,
-                               .signal = unlang_timeout_signal,
-
-                               .unlang_size = sizeof(unlang_timeout_t),
-                               .unlang_name = "unlang_timeout_t",
-
-                               .frame_state_size = sizeof(unlang_frame_state_timeout_t),
-                               .frame_state_type = "unlang_frame_state_timeout_t",
-                       });
+       unlang_register(&(unlang_op_t){
+                       .name = "timeout",
+                       .type = UNLANG_TYPE_TIMEOUT,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES | UNLANG_OP_FLAG_RCODE_SET,
+
+                       .compile = unlang_compile_timeout,
+                       .interpret = unlang_timeout,
+                       .signal = unlang_timeout_signal,
+
+                       .unlang_size = sizeof(unlang_timeout_t),
+                       .unlang_name = "unlang_timeout_t",
+
+                       .frame_state_size = sizeof(unlang_frame_state_timeout_t),
+                       .frame_state_type = "unlang_frame_state_timeout_t",
+               });
 }
index 0b1c249c44c0d058440fb9ec95788900b1ca30c1..83e677cd6770dd8eb107e8d2d30890b85d385044 100644 (file)
@@ -327,16 +327,18 @@ int unlang_tmpl_push(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t *reque
 
 void unlang_tmpl_init(void)
 {
-       unlang_register(UNLANG_TYPE_TMPL,
-                          &(unlang_op_t){
-                               .name = "tmpl",
-                               .type = UNLANG_TYPE_TMPL,
-                               .flag = UNLANG_OP_FLAG_INTERNAL,
-
-                               .interpret = unlang_tmpl,
-                               .signal = unlang_tmpl_signal,
-
-                               .frame_state_size = sizeof(unlang_frame_state_tmpl_t),
-                               .frame_state_type = "unlang_frame_state_tmpl_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "tmpl",
+                       .type = UNLANG_TYPE_TMPL,
+                       .flag = UNLANG_OP_FLAG_INTERNAL,
+
+                       .interpret = unlang_tmpl,
+                       .signal = unlang_tmpl_signal,
+
+                       .unlang_size = sizeof(unlang_tmpl_t),
+                       .unlang_name = "unlang_tmpl_t",
+
+                       .frame_state_size = sizeof(unlang_frame_state_tmpl_t),
+                       .frame_state_type = "unlang_frame_state_tmpl_t",
+               });
 }
index 6e02ab3c353e4ee93a2c575ce202ac1a411b2e3e..8c1779cb7057f10e1af34651a187ac5d772e15c5 100644 (file)
@@ -268,20 +268,19 @@ static unlang_t *unlang_compile_transaction(unlang_t *parent, unlang_compile_ctx
 
 void unlang_transaction_init(void)
 {
-       unlang_register(UNLANG_TYPE_TRANSACTION,
-                          &(unlang_op_t){
-                               .name = "transaction",
-                               .type = UNLANG_TYPE_TRANSACTION,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_transaction,
-                               .interpret = unlang_transaction,
-                               .signal = unlang_transaction_signal,
-
-                               .unlang_size = sizeof(unlang_transaction_t),
-                               .unlang_name = "unlang_transaction_t",
-
-                               .frame_state_size = sizeof(unlang_frame_state_transaction_t),
-                               .frame_state_type = "unlang_frame_state_transaction_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "transaction",
+                       .type = UNLANG_TYPE_TRANSACTION,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_transaction,
+                       .interpret = unlang_transaction,
+                       .signal = unlang_transaction_signal,
+
+                       .unlang_size = sizeof(unlang_transaction_t),
+                       .unlang_name = "unlang_transaction_t",
+
+                       .frame_state_size = sizeof(unlang_frame_state_transaction_t),
+                       .frame_state_type = "unlang_frame_state_transaction_t",
+               });
 }
index 398433ebf062b034387d101cb011b1a2d8421611..65e07a869ef5668a78da1c39f678e1fcb4b78ac9 100644 (file)
@@ -83,16 +83,15 @@ static unlang_t *unlang_compile_try(unlang_t *parent, unlang_compile_ctx_t *unla
 
 void unlang_try_init(void)
 {
-       unlang_register(UNLANG_TYPE_TRY,
-                          &(unlang_op_t){
-                               .name = "try",
-                               .type = UNLANG_TYPE_TRY,
-                               .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
-
-                               .compile = unlang_compile_try,
-                               .interpret = unlang_try,
-
-                               .unlang_size = sizeof(unlang_try_t),
-                               .unlang_name = "unlang_try_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "try",
+                       .type = UNLANG_TYPE_TRY,
+                       .flag = UNLANG_OP_FLAG_DEBUG_BRACES,
+
+                       .compile = unlang_compile_try,
+                       .interpret = unlang_try,
+
+                       .unlang_size = sizeof(unlang_try_t),
+                       .unlang_name = "unlang_try_t",
+               });
 }
index 5054fa296c0c9c89edd2d2cefacbd251d69ecc88..69c0b13b1e42b4aba4df1f10aa112c2ffd4b71db 100644 (file)
@@ -883,7 +883,7 @@ request_t           *unlang_io_subrequest_alloc(request_t *parent, fr_dict_t const *names
  *
  * @{
  */
-void           unlang_register(int type, unlang_op_t *op);
+void           unlang_register(unlang_op_t *op) CC_HINT(nonnull);
 
 void           unlang_call_init(void);
 
index b389921599306d0a1b789ca6eaaf2695c414baa8..658480d0fc6a5767f252c60da1a3dda97c526d52 100644 (file)
@@ -821,17 +821,16 @@ static void unlang_xlat_dump(request_t *request, unlang_stack_frame_t *frame)
  */
 void unlang_xlat_init(void)
 {
-       unlang_register(UNLANG_TYPE_XLAT,
-                          &(unlang_op_t){
-                               .name = "xlat",
-                               .type = UNLANG_TYPE_XLAT,
-                               .flag = UNLANG_OP_FLAG_INTERNAL,
-
-                               .interpret = unlang_xlat,
-                               .signal = unlang_xlat_signal,
-                               .dump = unlang_xlat_dump,
-
-                               .frame_state_size = sizeof(unlang_frame_state_xlat_t),
-                               .frame_state_type = "unlang_frame_state_xlat_t",
-                          });
+       unlang_register(&(unlang_op_t){
+                       .name = "xlat",
+                       .type = UNLANG_TYPE_XLAT,
+                       .flag = UNLANG_OP_FLAG_INTERNAL,
+
+                       .interpret = unlang_xlat,
+                       .signal = unlang_xlat_signal,
+                       .dump = unlang_xlat_dump,
+
+                       .frame_state_size = sizeof(unlang_frame_state_xlat_t),
+                       .frame_state_type = "unlang_frame_state_xlat_t",
+               });
 }