]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Evaluate all chained method groups when searching for methods or printing methods
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 20 Jun 2024 23:36:01 +0000 (17:36 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 20 Jun 2024 23:36:01 +0000 (17:36 -0600)
47 files changed:
src/lib/server/module_rlm.c
src/lib/server/module_rlm.h
src/modules/rlm_always/rlm_always.c
src/modules/rlm_attr_filter/rlm_attr_filter.c
src/modules/rlm_cache/rlm_cache.c
src/modules/rlm_chap/rlm_chap.c
src/modules/rlm_client/rlm_client.c
src/modules/rlm_couchbase/rlm_couchbase.c
src/modules/rlm_csv/rlm_csv.c
src/modules/rlm_delay/rlm_delay.c
src/modules/rlm_detail/rlm_detail.c
src/modules/rlm_dhcpv4/rlm_dhcpv4.c
src/modules/rlm_digest/rlm_digest.c
src/modules/rlm_eap/rlm_eap.c
src/modules/rlm_exec/rlm_exec.c
src/modules/rlm_files/rlm_files.c
src/modules/rlm_imap/rlm_imap.c
src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
src/modules/rlm_krb5/rlm_krb5.c
src/modules/rlm_ldap/rlm_ldap.c
src/modules/rlm_linelog/rlm_linelog.c
src/modules/rlm_logtee/rlm_logtee.c
src/modules/rlm_mschap/rlm_mschap.c
src/modules/rlm_opendirectory/rlm_opendirectory.c
src/modules/rlm_pam/rlm_pam.c
src/modules/rlm_pap/rlm_pap.c
src/modules/rlm_passwd/rlm_passwd.c
src/modules/rlm_perl/rlm_perl.c
src/modules/rlm_python/rlm_python.c
src/modules/rlm_radius/rlm_radius.c
src/modules/rlm_radutmp/rlm_radutmp.c
src/modules/rlm_redis_ippool/rlm_redis_ippool.c
src/modules/rlm_rediswho/rlm_rediswho.c
src/modules/rlm_rest/rlm_rest.c
src/modules/rlm_smtp/rlm_smtp.c
src/modules/rlm_sometimes/rlm_sometimes.c
src/modules/rlm_sql/rlm_sql.c
src/modules/rlm_sqlcounter/rlm_sqlcounter.c
src/modules/rlm_sqlippool/rlm_sqlippool.c
src/modules/rlm_stats/rlm_stats.c
src/modules/rlm_tacacs/rlm_tacacs.c
src/modules/rlm_test/rlm_test.c
src/modules/rlm_totp/rlm_totp.c
src/modules/rlm_unix/rlm_unix.c
src/modules/rlm_utf8/rlm_utf8.c
src/modules/rlm_wimax/rlm_wimax.c
src/modules/rlm_yubikey/rlm_yubikey.c

index 18b3260cbb4f90bf1e7bae315acdd48900a620c3..1559ecfc620ccfa03ede71b420dbc26701a7f13d 100644 (file)
@@ -446,9 +446,9 @@ bool module_rlm_section_type_set(request_t *request, fr_dict_attr_t const *type_
 
 /** Iterate over an array of named module methods, looking for matches
  *
- * @param[in] bindings         A terminated array of module method bindings.
- *                             pre-sorted using #section_name_cmp with name2
- *                             sublists populated.
+ * @param[in] mmg              A structure containing a terminated array of
+ *                             module method bindings. pre-sorted using #section_name_cmp
+ *                             with name2 sublists populated.
  * @param[in] section          name1 of the method being called can be one of the following:
  *                             - An itenfier.
  *                             - CF_IDENT_ANY if the method is a wildcard.
@@ -461,40 +461,48 @@ bool module_rlm_section_type_set(request_t *request, fr_dict_attr_t const *type_
  *     - NULL on not found.
  */
 static CC_HINT(nonnull)
-module_method_binding_t const *module_binding_find(module_method_binding_t const *bindings, section_name_t const *section)
+module_method_binding_t const *module_binding_find(module_method_group_t const *mmg, section_name_t const *section)
 {
+       module_method_group_t const *mmg_p = mmg;
        module_method_binding_t const *p;
 
-       /*
-        *      This could potentially be improved by using a binary search
-        *      but given the small number of items, reduced branches and
-        *      sequential access just scanning the list, it's probably not
-        *      worth it.
-        */
-       for (p = bindings; p->section; p++) {
-               switch (section_name_match(p->section, section)) {
-               case 1:         /* match */
-                       return p;
+       while (mmg_p) {
+               /*
+                *      This could potentially be improved by using a binary search
+                *      but given the small number of items, reduced branches and
+                *      sequential access just scanning the list, it's probably not
+                *      worth it.
+                */
+               for (p = mmg_p->bindings; p->section; p++) {
+                       switch (section_name_match(p->section, section)) {
+                       case 1:         /* match */
+                               return p;
 
-               case -1:        /* name1 didn't match, skip to the end of the sub-list */
-                       p = fr_dlist_tail(&p->same_name1);
-                       break;
+                       case -1:        /* name1 didn't match, skip to the end of the sub-list */
+                               p = fr_dlist_tail(&p->same_name1);
+                               break;
 
-               case 0:         /* name1 did match - see if we can find a matching name2 */
-               {
-                       fr_dlist_head_t const *same_name1 = &p->same_name1;
+                       case 0:         /* name1 did match - see if we can find a matching name2 */
+                       {
+                               fr_dlist_head_t const *same_name1 = &p->same_name1;
 
-                       while ((p = fr_dlist_next(same_name1, p))) {
-                               if (section_name2_match(p->section, section)) return p;
+                               while ((p = fr_dlist_next(same_name1, p))) {
+                                       if (section_name2_match(p->section, section)) return p;
+                               }
+                               p = fr_dlist_tail(same_name1);
+                       }
+                               break;
                        }
-                       p = fr_dlist_tail(same_name1);
-               }
-                       break;
-               }
 #ifdef __clang_analyzer__
-               /* Will never be NULL, worse case, p doesn't change*/
-               if (!p) break;
+                       /* Will never be NULL, worse case, p doesn't change*/
+                       if (!p) break;
 #endif
+               }
+
+               /*
+                *      Failed to match, search the next deepest group in the chain.
+                */
+               mmg_p = mmg_p->next;
        }
 
        return NULL;
@@ -502,25 +510,39 @@ module_method_binding_t const *module_binding_find(module_method_binding_t const
 
 /** Dump the available bindings for the module into the strerror stack
  *
- * @param[in] mmb      bindings to push onto the strerror stack.
+ * @note Methods from _all_ linked module method groups will be pushed onto the error stack.
+ *
+ * @param[in] mmg      module method group to evaluate.
  */
-static void module_rlm_methods_to_strerror(module_method_binding_t const *mmb)
+static void module_rlm_methods_to_strerror(module_method_group_t const *mmg)
 {
-       module_method_binding_t const *mmb_p;
+       module_method_group_t const     *mmg_p = mmg;
+       module_method_binding_t const   *mmb_p;
+       bool                            first = true;
 
-       if (!mmb || !mmb[0].section) {
-               fr_strerror_const_push("Module provides no methods");
-               return;
-       }
+       while (mmg_p) {
+               mmb_p = mmg_p->bindings;
 
-       fr_strerror_const_push("Available methods are:");
+               if (!mmb_p || !mmb_p[0].section) goto next;
 
-       for (mmb_p = mmb; mmb_p->section; mmb_p++) {
-               char const *name1 = section_name_str(mmb_p->section->name1);
-               char const *name2 = section_name_str(mmb_p->section->name2);
+               if (first) {
+                       fr_strerror_const_push("Available methods are:");
+                       first = false;
+               }
+
+               for (; mmb_p->section; mmb_p++) {
+                       char const *name1 = section_name_str(mmb_p->section->name1);
+                       char const *name2 = section_name_str(mmb_p->section->name2);
+
+                       fr_strerror_printf_push("  %s%s%s",
+                                               name1, name2 ? "." : "", name2 ? name2 : "");
+               }
+       next:
+               mmg_p = mmg_p->next;
+       }
 
-               fr_strerror_printf_push("  %s%s%s",
-                                       name1, name2 ? "." : "", name2 ? name2 : "");
+       if (first) {
+               fr_strerror_const_push("No methods available");
        }
 }
 
@@ -726,7 +748,7 @@ fr_slen_t module_rlm_by_name_and_method(TALLOC_CTX *ctx, module_method_call_t *m
                        .name2 = fr_sbuff_used(elem2) ? elem2->start : NULL
                };
 
-               mmb = module_binding_find(mmc->rlm->method.bindings, &method);
+               mmb = module_binding_find(&mmc->rlm->method_group, &method);
                if (!mmb) {
                        fr_strerror_printf("Module \"%s\" does not have method %s%s%s",
                                           mmc->mi->name,
@@ -735,7 +757,7 @@ fr_slen_t module_rlm_by_name_and_method(TALLOC_CTX *ctx, module_method_call_t *m
                                           method.name2 ? method.name2 : ""
                                           );
 
-                       module_rlm_methods_to_strerror(mmc->rlm->method.bindings);
+                       module_rlm_methods_to_strerror(&mmc->rlm->method_group);
                        return fr_sbuff_error(&meth_start);
                }
                mmc->mmb = *mmb;        /* For locality of reference and fewer derefs */
@@ -752,12 +774,12 @@ by_section:
         *
         *      If that fails, we're done.
         */
-       mmb = module_binding_find(mmc->rlm->method.bindings, section);
+       mmb = module_binding_find(&mmc->rlm->method_group, section);
        if (!mmb) {
                section_name_t const **alt_p = virtual_server_section_methods(vs, section);
                if (alt_p) {
                        for (; *alt_p; alt_p++) {
-                               mmb = module_binding_find(mmc->rlm->method.bindings, *alt_p);
+                               mmb = module_binding_find(&mmc->rlm->method_group, *alt_p);
                                if (mmb) {
                                        if (mmc_out) section_name_dup(ctx, &mmc->asked, *alt_p);
                                        break;
@@ -776,7 +798,7 @@ by_section:
                                   section->name2 ? "." : "",
                                   section->name2 ? section->name2 : ""
                                   );
-               module_rlm_methods_to_strerror(mmc->rlm->method.bindings);
+               module_rlm_methods_to_strerror(&mmc->rlm->method_group);
 
                return fr_sbuff_error(&meth_start);
        }
@@ -1067,7 +1089,7 @@ static int module_method_validate(module_instance_t *mi)
 {
        module_rlm_t *mrlm = module_rlm_from_module(mi->exported);
 
-       return module_method_group_validate(&mrlm->method);
+       return module_method_group_validate(&mrlm->method_group);
 }
 
 /** Allocate a rlm module instance
index 4fb008a8f012ab1d3748517eac72cd6e857cbcf3..c0d00984ebc7cc1959e036ae89c057e104683e80 100644 (file)
@@ -37,7 +37,7 @@ typedef struct module_rlm_instance_s module_rlm_instance_t;
 
 struct module_rlm_s {
        module_t                        common;                 //!< Common fields presented by all modules.
-       module_method_group_t           method;                 //!< named methods
+       module_method_group_t           method_group;           //!< named methods
 };
 
 struct module_rlm_instance_s {
index d7dd8adf54983fab1105a7d0a6553fbd52a22e10..f954669b977ef0da53694bfe10ae3ed4889588f1 100644 (file)
@@ -191,7 +191,7 @@ module_rlm_t rlm_always = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_always_return },
                        MODULE_BINDING_TERMINATOR
index 386efd66b92b6fec48c83022657d45dad21faf8f..489f63025bdf8af61578e91e9eb46fb9984429fa 100644 (file)
@@ -376,7 +376,7 @@ module_rlm_t rlm_attr_filter = {
                .config         = module_config,
                .instantiate    = mod_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                         *      Hack to support old configurations
index 1241a21498b060d9389d6ddbe390d66b20d05cc1..0d97c1c102644de454f3c1d4172751bdc16b5738 100644 (file)
@@ -1515,7 +1515,7 @@ module_rlm_t rlm_cache = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("clear", CF_IDENT_ANY), .method = mod_method_clear, .method_env = &cache_method_env },
                        { .section = SECTION_NAME("load", CF_IDENT_ANY), .method = mod_method_load, .method_env = &cache_method_env },
index b8a96f012b7044ff06bb2135bbcaa08d5656e14f..770156e5666917114753a2976460ecd582b8837c 100644 (file)
@@ -388,7 +388,7 @@ module_rlm_t rlm_chap = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate, .method_env = &chap_auth_method_env },
                        { .section = SECTION_NAME("recv", "Access-Request"), .method = mod_authorize, .method_env = &chap_autz_method_env },
index 78a25f9d235119fa90ed46dfef51da0a67fa351f..b6fbff0dfcd0570fa97dfe40577d722a66276e8d 100644 (file)
@@ -385,7 +385,7 @@ module_rlm_t rlm_client = {
                .onload         = mod_load,
                .unload         = mod_unload
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_authorize },
                        MODULE_BINDING_TERMINATOR
index 94e28d1b53daaa8d82ea8f2a0159b028ef4820fc..f9f8ed9a9821e19e25921bfdf5c71ef82d5cd5bf 100644 (file)
@@ -555,7 +555,7 @@ module_rlm_t rlm_couchbase = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("accounting", CF_IDENT_ANY), .method = mod_accounting },
                        { .section = SECTION_NAME("recv", CF_IDENT_ANY), .method = mod_authorize },
index a0f261b7a56799e8d35e1c47e2a10fac0a9bcc6c..853bde97c05416d2b4df74c6f09b3a019a81517e 100644 (file)
@@ -1058,7 +1058,7 @@ module_rlm_t rlm_csv = {
                .bootstrap      = mod_bootstrap,
                .instantiate    = mod_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_process },
                        MODULE_BINDING_TERMINATOR
index eb2a120c208809c4c47f0b7d64433f0256a2733a..352777044219b981f7253768e7ce5d7edf05dc9b 100644 (file)
@@ -279,7 +279,7 @@ module_rlm_t rlm_delay = {
                .config         = module_config,
                .bootstrap      = mod_bootstrap
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_delay },
                        MODULE_BINDING_TERMINATOR
index 6104463b8699ec49d479f794a39ad8ec4513bf04..dceb8bc9a748dd9e5b4576ffe5937568c0f81e14 100644 (file)
@@ -508,7 +508,7 @@ module_rlm_t rlm_detail = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("accounting", CF_IDENT_ANY), .method = mod_accounting, .method_env = &method_env },
                        { .section = SECTION_NAME("recv", "accounting-request"), .method = mod_accounting, .method_env = &method_env },
index 4c3ca74fb68933c25e045dd48eb225ab5a0097fa..87c14390c62c87bc45580335ac3bcdb85566515a 100644 (file)
@@ -333,7 +333,7 @@ module_rlm_t rlm_dhcpv4 = {
                .thread_inst_type       = "rlm_dhcpv4_thread_t",
                .thread_instantiate     = mod_thread_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY),  .method = mod_process },
                        MODULE_BINDING_TERMINATOR
index acc4a896f70af6f40601e348499db3f197b31e32..dfbb50bbb97289a16bf43d165357505cf370beba 100644 (file)
@@ -480,7 +480,7 @@ module_rlm_t rlm_digest = {
                .inst_size      = sizeof(rlm_digest_t),
                .instantiate    = mod_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
                        { .section = SECTION_NAME("recv", "Access-Request"), .method = mod_authorize },
index 4a4dfe23dccafed0d379fc481979de9b97c9792b..f68982e8e897dfd60ea714546b2008b4040c414c 100644 (file)
@@ -1196,7 +1196,7 @@ module_rlm_t rlm_eap = {
                .unload         = mod_unload,
                .instantiate    = mod_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
                        { .section = SECTION_NAME("recv", "Access-Request"), .method = mod_authorize },
index 3027b51460a66bd4b50d2e696952788c2c134299..3c1ac23a4d58ee9062aece1f3ee762b0f1fd16f4 100644 (file)
@@ -531,7 +531,7 @@ module_rlm_t rlm_exec = {
                .bootstrap      = mod_bootstrap,
                .instantiate    = mob_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_exec_dispatch_oneshot, .method_env = &exec_method_env },
                        MODULE_BINDING_TERMINATOR
index 320f04610e9699abe86eb71e1279c258990a5161..f7e8d85ba9e4c0c19ce4b8345a9a2ebdd35d0ea0 100644 (file)
@@ -674,7 +674,7 @@ module_rlm_t rlm_files = {
                .inst_size      = sizeof(rlm_files_t),
                .config         = module_config,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_files, .method_env = &method_env },
                        MODULE_BINDING_TERMINATOR
index 4281425c8ee2102ceb9c316ae7a39c1287968b0f..816e6231a0dd9558741e933e5a48c618899d517b 100644 (file)
@@ -292,7 +292,7 @@ module_rlm_t rlm_imap = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
                        MODULE_BINDING_TERMINATOR
index 6f0077a0aaab731d97f53f4efbc54c19d5bfc1fe..d1cedaf327f1b6bae8effb50c4e4bfd602c62e2c 100644 (file)
@@ -2240,7 +2240,7 @@ module_rlm_t rlm_isc_dhcp = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("recv", CF_IDENT_ANY), .method = mod_authorize },
                        { .section = SECTION_NAME("send", CF_IDENT_ANY), .method = mod_post_auth },
index 71a857806dd20471f57a25fe0a49e312ccda25e0..033f6148c216b1211ebc6f88ef4d121c50c44441 100644 (file)
@@ -504,7 +504,7 @@ module_rlm_t rlm_krb5 = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
                        MODULE_BINDING_TERMINATOR
index 38f6a2de598c228447813c7515e9e6f381a278c7..6db3c53f2386fa51465411343fc97af9920e0ec8 100644 (file)
@@ -2729,7 +2729,7 @@ module_rlm_t rlm_ldap = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                         *      Hack to support old configurations
index b0bc7201b733dd562b06421772c36bb0aaa2adcb..71fd2a96883e26bf890120907fdaf6adcf2126a5 100644 (file)
@@ -1059,7 +1059,7 @@ module_rlm_t rlm_linelog = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_do_linelog, .method_env = &linelog_method_env },
                        MODULE_BINDING_TERMINATOR
index 0bcf4c1ca339d989c6cd99238b0482964f043e0c..aec818b235d3370dca58f4a520869ed077c9e7f7 100644 (file)
@@ -665,7 +665,7 @@ module_rlm_t rlm_logtee = {
                .instantiate            = mod_instantiate,
                .thread_instantiate     = mod_thread_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_insert_logtee },
                        MODULE_BINDING_TERMINATOR
index 8cb4487afb8475d96bb1eaaab9c37c49d6f7ce7b..1b540f45bfc70c98670a3b0317b9051e804d17e5 100644 (file)
@@ -2527,7 +2527,7 @@ module_rlm_t rlm_mschap = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate, .method_env = &mschap_auth_method_env },
                        { .section = SECTION_NAME("recv", CF_IDENT_ANY), .method = mod_authorize, .method_env = &mschap_autz_method_env },
index 25acedcc6afae70b790bef9ccfd7697f7c2b62eb..55c4c26babbcb88883144c0f55ad9caf33c682fc 100644 (file)
@@ -536,7 +536,7 @@ module_rlm_t rlm_opendirectory = {
                .inst_size      = sizeof(rlm_opendirectory_t),
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
                        { .section = SECTION_NAME("recv", CF_IDENT_ANY), .method = mod_authorize },
index a9a3c5ab57e6ab7c2d880906db480e7856d7b743..9686d20a9d38e616f127d4abdf342911220b08ea 100644 (file)
@@ -277,7 +277,7 @@ module_rlm_t rlm_pam = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
                        MODULE_BINDING_TERMINATOR
index 208343cedda422bb3a8def37dc48d03fbfe68896..9e5430140560bc3cc79ac017842df36c05280dec 100644 (file)
@@ -1073,7 +1073,7 @@ module_rlm_t rlm_pap = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                         *      Hack to support old configurations
index 6e28d99da533f42e8f64f819294e8a84b718cb6a..727587dc4ad1b7d5750e8c5d2ebacf1e8fdbce16 100644 (file)
@@ -616,7 +616,7 @@ module_rlm_t rlm_passwd = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_passwd_map },
                        MODULE_BINDING_TERMINATOR
index d181a198781ffb3eb4425be4a7b18a81df441d0e..ac56f0599d38f1a585da8efd975c1abab1231162 100644 (file)
@@ -1182,7 +1182,7 @@ module_rlm_t rlm_perl = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                         *      Hack to support old configurations
index 1ea5d2c7c3c3a34a2e0aad2a681857a5e9bf67dc..f4590db1b5ad3daab3573d9a2a208cae7161aff7 100644 (file)
@@ -1182,7 +1182,7 @@ module_rlm_t rlm_python = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                         *      Hack to support old configurations
index aac7b64389d2f43f01b0ce1daffbf09a1e5378d1..40d56a30d6bf75cd7b57ec3e1bce0ca5f82e33a9 100644 (file)
@@ -663,7 +663,7 @@ module_rlm_t rlm_radius = {
 
                .instantiate    = mod_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_process },
                        MODULE_BINDING_TERMINATOR
index 5ee9911663f5dc76b4958ab011692352497c91e6..0b05b0049344d6f9bf4ae6138b25cf3a227c90df 100644 (file)
@@ -586,7 +586,7 @@ module_rlm_t rlm_radutmp = {
                .instantiate    = mod_instantiate,
                .detach         = mod_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("accounting", CF_IDENT_ANY), .method = mod_accounting, .method_env = &method_env },
                        MODULE_BINDING_TERMINATOR
index 025cb3cd2156d624925a3162675a809be179d6b3..d164d1f3bf09da743e90979d6d6a7a9c464aeda2 100644 (file)
@@ -1291,7 +1291,7 @@ module_rlm_t rlm_redis_ippool = {
                .onload         = mod_load,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("recv", "Access-Request"), .method = mod_alloc, .method_env = &redis_ippool_alloc_method_env },                       /* radius */
                        { .section = SECTION_NAME("accounting", "Start"), .method = mod_update, .method_env = &redis_ippool_update_method_env },                        /* radius */
index 647daa049dc555dce237824c6780ba6c0ffc37b9..1c8a9200957305b9d3be94ddf8a30077c6fad248 100644 (file)
@@ -257,7 +257,7 @@ module_rlm_t rlm_rediswho = {
                .onload         = mod_load,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("accounting", CF_IDENT_ANY), .method = mod_accounting },
                        MODULE_BINDING_TERMINATOR
index a0a7123cd2c9d447dea25f1176c234b1fe1bf778..c2c34245671c474b8e0234e587e042e34f82c611 100644 (file)
@@ -1418,7 +1418,7 @@ module_rlm_t rlm_rest = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                         *      Hack to support old configurations
index 1a7b24d5f425f2ed6a9a92b32e2e4170deb0205f..cd165f6e2dc4fb089e4a94710351a6e5a40059ea 100644 (file)
@@ -1050,7 +1050,7 @@ module_rlm_t rlm_smtp = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate, .method_env = &auth_env },
                        { .section = SECTION_NAME("mail", CF_IDENT_ANY), .method = mod_mail, .method_env = &method_env },
index 25b13c47e3599e11e846241f0291dd8497358846..5db3c666482776066857f6a25939f3137f3dfac4 100644 (file)
@@ -161,7 +161,7 @@ module_rlm_t rlm_sometimes = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("send", CF_IDENT_ANY), .method = mod_sometimes_reply },
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_sometimes_packet },
index e063423380ec91c4700c5250cf80877b78e84cf3..4d30c5b9feb2febd0f85d5e1ebb7fba12bad20a6 100644 (file)
@@ -2300,7 +2300,7 @@ module_rlm_t rlm_sql = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                         *      Hack to support old configurations
index ead809f43d9725b4d682977f15d748095247ad8c..d2eb231889e74277b94e51f573b56c9de0afef38 100644 (file)
@@ -583,7 +583,7 @@ module_rlm_t rlm_sqlcounter = {
                .bootstrap      = mod_bootstrap,
                .instantiate    = mod_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_authorize, .method_env = &sqlcounter_call_env },
                        MODULE_BINDING_TERMINATOR
index 77d0a09cd33d96eaf715f293b6bba216a15c4d32..b3173ff859fc8706951c094fde817229ae8f7b71 100644 (file)
@@ -815,7 +815,7 @@ module_rlm_t rlm_sqlippool = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        /*
                        *       RADIUS specific
index a67fc779a3b945dca28a92939d8b9f2026d1eede..4c28094fcf90c1f6056fcc1b0213c9a74a3be38d 100644 (file)
@@ -458,7 +458,7 @@ module_rlm_t rlm_stats = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_stats },
                        MODULE_BINDING_TERMINATOR
index 594bf1e6cadc6437db3428ffe99d8817fb5a78f4..7726cc5ca69687a52d4766188008f39f9679184d 100644 (file)
@@ -264,7 +264,7 @@ module_rlm_t rlm_tacacs = {
 
                .instantiate    = mod_instantiate,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_process },
                        MODULE_BINDING_TERMINATOR
index ed05d69769358290c05f50cce2ec25f5c933ceb0..ff3e1336ee384078ce1e3bb49f99e00307df4f91 100644 (file)
@@ -528,7 +528,7 @@ module_rlm_t rlm_test = {
                .thread_instantiate     = mod_thread_instantiate,
                .thread_detach          = mod_thread_detach
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("accounting", CF_IDENT_ANY),          .method = mod_accounting },
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY),        .method = mod_authenticate },
index aef581702dc774e5094577f1da27603cc4d58c09..9e6800ec4bfaf776927b5adfd62a4e698a5a2c94 100644 (file)
@@ -181,7 +181,7 @@ module_rlm_t rlm_totp = {
                .config         = module_config,
                .instantiate    = mod_instantiate
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate, .method_env = &method_env },
                        MODULE_BINDING_TERMINATOR
index 6114f2f0902d5cb846a3b556b04897c1e5e03273..a66913ce637742e487bb83adf444be9da014964f 100644 (file)
@@ -560,7 +560,7 @@ module_rlm_t rlm_unix = {
                .config         = module_config,
                .bootstrap      = mod_bootstrap
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("accounting", CF_IDENT_ANY), .method = mod_accounting },
                        { .section = SECTION_NAME("recv", "Access-Request"), .method = mod_authorize },
index e76738f7be31ff0be21ded198aae6b0420e12596..2b4c50b4f7faff8ce2658265ff1265913cd00f71 100644 (file)
@@ -60,7 +60,7 @@ module_rlm_t rlm_utf8 = {
                .magic          = MODULE_MAGIC_INIT,
                .name           = "utf8"
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME(CF_IDENT_ANY, CF_IDENT_ANY), .method = mod_utf8_clean },
                        MODULE_BINDING_TERMINATOR
index 1b92c4039e3213f85104e9cbd84cdb234af8dc9b..856d8f7e893e873ec02f6bd23194dcfc0f1414c8 100644 (file)
@@ -460,7 +460,7 @@ module_rlm_t rlm_wimax = {
                .inst_size      = sizeof(rlm_wimax_t),
                .config         = module_config,
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("recv", "accounting-request"), .method = mod_preacct },
                        { .section = SECTION_NAME("recv", CF_IDENT_ANY), .method = mod_authorize },
index 3072080fb7a4cf06ec5ea24efa85e78bdc4d520d..5806b080de1f9d079885f4c026342b0eb945fb8e 100644 (file)
@@ -468,7 +468,7 @@ module_rlm_t rlm_yubikey = {
                .detach         = mod_detach,
 #endif
        },
-       .method = {
+       .method_group = {
                .bindings = (module_method_binding_t[]){
                        { .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
                        { .section = SECTION_NAME("recv", "Access-Request"), .method = mod_authorize },