]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add "retry" subsection to actions
authorAlan T. DeKok <aland@freeradius.org>
Wed, 25 Aug 2021 13:06:23 +0000 (09:06 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 25 Aug 2021 21:03:24 +0000 (17:03 -0400)
src/lib/unlang/call.c
src/lib/unlang/compile.c
src/lib/unlang/compile.h
src/lib/unlang/function.c
src/lib/unlang/module.c
src/lib/unlang/subrequest_child.c
src/lib/unlang/tmpl.c
src/lib/unlang/xlat.c

index 84d56de20a25dc5cb105b6abba7bf5d5dc7bd209..d8bc70ceb5123cf339d30aa71075a62dc6d4e0b9 100644 (file)
@@ -176,6 +176,7 @@ unlang_action_t unlang_call_push(request_t *request, CONF_SECTION *server_cs, bo
                                                [RLM_MODULE_NOOP]       = 0,
                                                [RLM_MODULE_UPDATED]    = 0
                                        },
+                                       .retry = RETRY_INIT,
                                },
                        }
                },
index 714454168a778a78419b427e9c040ac4a785fcdc..0c85a6a85562db72b57419575d565f45e8418b47 100644 (file)
@@ -99,63 +99,78 @@ static const unlang_actions_t default_actions[MOD_COUNT] =
 {
        /* authenticate */
        {
-               MOD_ACTION_RETURN,      /* reject   */
-               MOD_ACTION_RETURN,      /* fail     */
-               4,                      /* ok       */
-               MOD_ACTION_RETURN,      /* handled  */
-               MOD_ACTION_RETURN,      /* invalid  */
-               MOD_ACTION_RETURN,      /* disallow */
-               1,                      /* notfound */
-               2,                      /* noop     */
-               3                       /* updated  */
+               .actions = {
+                       MOD_ACTION_RETURN,      /* reject   */
+                       MOD_ACTION_RETURN,      /* fail     */
+                       4,                      /* ok       */
+                       MOD_ACTION_RETURN,      /* handled  */
+                       MOD_ACTION_RETURN,      /* invalid  */
+                       MOD_ACTION_RETURN,      /* disallow */
+                       1,                      /* notfound */
+                       2,                      /* noop     */
+                       3                       /* updated  */
+               },
+               .retry = RETRY_INIT,
        },
        /* authorize */
        {
-               MOD_ACTION_RETURN,      /* reject   */
-               MOD_ACTION_RETURN,      /* fail     */
-               3,                      /* ok       */
-               MOD_ACTION_RETURN,      /* handled  */
-               MOD_ACTION_RETURN,      /* invalid  */
-               MOD_ACTION_RETURN,      /* disallow */
-               1,                      /* notfound */
-               2,                      /* noop     */
-               4                       /* updated  */
+               .actions = {
+                       MOD_ACTION_RETURN,      /* reject   */
+                       MOD_ACTION_RETURN,      /* fail     */
+                       3,                      /* ok       */
+                       MOD_ACTION_RETURN,      /* handled  */
+                       MOD_ACTION_RETURN,      /* invalid  */
+                       MOD_ACTION_RETURN,      /* disallow */
+                       1,                      /* notfound */
+                       2,                      /* noop     */
+                       4                       /* updated  */
+               },
+               .retry = RETRY_INIT,
        },
        /* preacct */
        {
-               MOD_ACTION_RETURN,      /* reject   */
-               MOD_ACTION_RETURN,      /* fail     */
-               2,                      /* ok       */
-               MOD_ACTION_RETURN,      /* handled  */
-               MOD_ACTION_RETURN,      /* invalid  */
-               MOD_ACTION_RETURN,      /* disallow */
-               MOD_ACTION_RETURN,      /* notfound */
-               1,                      /* noop     */
-               3                       /* updated  */
+               .actions = {
+                       MOD_ACTION_RETURN,      /* reject   */
+                       MOD_ACTION_RETURN,      /* fail     */
+                       2,                      /* ok       */
+                       MOD_ACTION_RETURN,      /* handled  */
+                       MOD_ACTION_RETURN,      /* invalid  */
+                       MOD_ACTION_RETURN,      /* disallow */
+                       MOD_ACTION_RETURN,      /* notfound */
+                       1,                      /* noop     */
+                       3                       /* updated  */
+               },
+               .retry = RETRY_INIT,
        },
        /* accounting */
        {
-               MOD_ACTION_RETURN,      /* reject   */
-               MOD_ACTION_RETURN,      /* fail     */
-               2,                      /* ok       */
-               MOD_ACTION_RETURN,      /* handled  */
-               MOD_ACTION_RETURN,      /* invalid  */
-               MOD_ACTION_RETURN,      /* disallow */
-               MOD_ACTION_RETURN,      /* notfound */
-               1,                      /* noop     */
-               3                       /* updated  */
+               .actions = {
+                       MOD_ACTION_RETURN,      /* reject   */
+                       MOD_ACTION_RETURN,      /* fail     */
+                       2,                      /* ok       */
+                       MOD_ACTION_RETURN,      /* handled  */
+                       MOD_ACTION_RETURN,      /* invalid  */
+                       MOD_ACTION_RETURN,      /* disallow */
+                       MOD_ACTION_RETURN,      /* notfound */
+                       1,                      /* noop     */
+                       3                       /* updated  */
+               },
+               .retry = RETRY_INIT,
        },
        /* post-auth */
        {
-               MOD_ACTION_RETURN,      /* reject   */
-               MOD_ACTION_RETURN,      /* fail     */
-               3,                      /* ok       */
-               MOD_ACTION_RETURN,      /* handled  */
-               MOD_ACTION_RETURN,      /* invalid  */
-               MOD_ACTION_RETURN,      /* disallow */
-               1,                      /* notfound */
-               2,                      /* noop     */
-               4                       /* updated  */
+               .actions = {
+                       MOD_ACTION_RETURN,      /* reject   */
+                       MOD_ACTION_RETURN,      /* fail     */
+                       3,                      /* ok       */
+                       MOD_ACTION_RETURN,      /* handled  */
+                       MOD_ACTION_RETURN,      /* invalid  */
+                       MOD_ACTION_RETURN,      /* disallow */
+                       1,                      /* notfound */
+                       2,                      /* noop     */
+                       4                       /* updated  */
+               },
+               .retry = RETRY_INIT,
        }
 };
 
index 6f23fd99d916e77f5d9da7dfa75578922b352568..035cdadd7cb419a8dc98d556f61708fb1763f028 100644 (file)
@@ -31,9 +31,11 @@ extern "C" {
 #include <freeradius-devel/server/cf_util.h>
 #include <freeradius-devel/server/components.h>
 #include <freeradius-devel/server/tmpl.h>
+#include <freeradius-devel/util/retry.h>
 
 typedef struct {
-       int actions[RLM_MODULE_NUMCODES];
+       int                     actions[RLM_MODULE_NUMCODES];
+       fr_retry_config_t       retry;
 } unlang_actions_t;
 
 int            unlang_compile(CONF_SECTION *cs, rlm_components_t component, tmpl_rules_t const *rules, void **instruction);
index 063c9b8602aa3e9a5c90a04cdae07dd8575c93af..69616d88ce117036134a3e4ea3b534cbd5d8e103 100644 (file)
@@ -60,6 +60,7 @@ static unlang_t function_instruction = {
                        [RLM_MODULE_NOOP]       = 0,
                        [RLM_MODULE_UPDATED]    = 0
                },
+               .retry = RETRY_INIT,
        },
 };
 
index 668cc8507c4e1165b6ada8f3a0563f849a32d131..75e6d6004ac8d367128a9de7d4fcc45e13210436 100644 (file)
@@ -374,6 +374,7 @@ int unlang_module_push(rlm_rcode_t *p_result, request_t *request,
                                        [RLM_MODULE_NOOP]       = 0,
                                        [RLM_MODULE_UPDATED]    = 0
                                },
+                               .retry = RETRY_INIT,
                        },
                },
                .instance = module_instance,
index 21d8969e0e5df17dfec3967a346e830f2de5640a..bc87d93fcf0969a6a10d37f2a242d656d26e192c 100644 (file)
@@ -397,9 +397,10 @@ int unlang_subrequest_child_op_init(void)
                                                [RLM_MODULE_INVALID]    = 0,
                                                [RLM_MODULE_DISALLOW]   = 0,
                                                [RLM_MODULE_NOTFOUND]   = 0,
-                                       [RLM_MODULE_NOOP]       = 0,
+                                               [RLM_MODULE_NOOP]       = 0,
                                                [RLM_MODULE_UPDATED]    = 0
                                        },
+                                       .retry = RETRY_INIT,
                                },
                        }
                }
index ac8bd63ccc0c39e57c52755f1eef648d5cadbc7d..f06959ccc3114edd52ef14b2a09f9dfe333b2510 100644 (file)
@@ -148,6 +148,7 @@ int unlang_tmpl_push(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t *reque
                                [RLM_MODULE_NOOP]       = 0,
                                [RLM_MODULE_UPDATED]    = 0
                        },
+                       .retry = RETRY_INIT,
                },
        };
 
index 446b88c61343b17eea77ae91bbbd7e80a4d8cdbc..6c5909204823f64fc869735a534bed1e41f6f994 100644 (file)
@@ -90,6 +90,7 @@ static unlang_t xlat_instruction = {
                        [RLM_MODULE_NOOP]       = 0,
                        [RLM_MODULE_UPDATED]    = 0
                },
+               .retry = RETRY_INIT,
        },
 };